From c429d51eec9418544d20dab561e7a1d98f75675e Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Tue, 22 Oct 2024 21:10:34 +0530
Subject: [PATCH 01/78] Fix Errant GTID detection logic in
`SetReplicationSource` (#17031)
Signed-off-by: Manan Gupta
---
go/mysql/replication/mysql56_gtid_set.go | 10 +-
go/mysql/replication/mysql56_gtid_set_test.go | 21 ++-
go/mysql/replication/primary_status.go | 3 +
go/test/endtoend/utils/mysql_test.go | 7 +
go/vt/mysqlctl/fakemysqldaemon.go | 10 +-
go/vt/mysqlctl/replication.go | 10 +-
go/vt/mysqlctl/replication_test.go | 2 +
.../replicationdata/replicationdata.pb.go | 166 ++++++++++--------
.../replicationdata_vtproto.pb.go | 44 +++++
.../vttablet/tabletmanager/framework_test.go | 11 ++
.../vttablet/tabletmanager/rpc_replication.go | 10 +-
go/vt/vttablet/tabletmanager/tm_init.go | 20 ++-
go/vt/wrangler/testlib/reparent_utils_test.go | 1 +
proto/replicationdata.proto | 1 +
web/vtadmin/src/proto/vtadmin.d.ts | 6 +
web/vtadmin/src/proto/vtadmin.js | 23 +++
16 files changed, 250 insertions(+), 95 deletions(-)
diff --git a/go/mysql/replication/mysql56_gtid_set.go b/go/mysql/replication/mysql56_gtid_set.go
index 48241215c10..77142272c6a 100644
--- a/go/mysql/replication/mysql56_gtid_set.go
+++ b/go/mysql/replication/mysql56_gtid_set.go
@@ -468,7 +468,7 @@ func (set Mysql56GTIDSet) SIDBlock() []byte {
}
// ErrantGTIDsOnReplica gets the errant GTIDs on the replica by comparing against the primary position and UUID.
-func ErrantGTIDsOnReplica(replicaPosition Position, primaryPosition Position) (string, error) {
+func ErrantGTIDsOnReplica(replicaPosition Position, primaryPosition Position, primarySid SID) (string, error) {
replicaGTIDSet, replicaOk := replicaPosition.GTIDSet.(Mysql56GTIDSet)
primaryGTIDSet, primaryOk := primaryPosition.GTIDSet.(Mysql56GTIDSet)
@@ -478,7 +478,13 @@ func ErrantGTIDsOnReplica(replicaPosition Position, primaryPosition Position) (s
}
// Calculate the difference between the replica and primary GTID sets.
- diffSet := replicaGTIDSet.Difference(primaryGTIDSet)
+ // We discount the writes from the primary server first. This is required because sometimes
+ // the replica might advertise itself as more advanced than the primary, and we don't want to
+ // incorrectly mark GTIDs errant.
+ // For example, it is perfectly valid to see the replica GTID set be `ff8ecd9a-8f92-11ef-b369-733dd679dde6:1-33`
+ // while that of the primary be `ff8ecd9a-8f92-11ef-b369-733dd679dde6:1-29` when `ff8ecd9a-8f92-11ef-b369-733dd679dde6`
+ // is the primary server UUID. In this case, the replica is not errant.
+ diffSet := replicaGTIDSet.RemoveUUID(primarySid).Difference(primaryGTIDSet)
return diffSet.String(), nil
}
diff --git a/go/mysql/replication/mysql56_gtid_set_test.go b/go/mysql/replication/mysql56_gtid_set_test.go
index bcb2a68af72..bc5d5a6d6ec 100644
--- a/go/mysql/replication/mysql56_gtid_set_test.go
+++ b/go/mysql/replication/mysql56_gtid_set_test.go
@@ -756,6 +756,7 @@ func TestErrantGTIDsOnReplica(t *testing.T) {
name string
replicaPosition string
primaryPosition string
+ primarySID string
errantGtidWanted string
wantErr string
}{
@@ -763,27 +764,43 @@ func TestErrantGTIDsOnReplica(t *testing.T) {
name: "Empty replica position",
replicaPosition: "MySQL56/",
primaryPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8",
+ primarySID: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9",
errantGtidWanted: "",
}, {
name: "Empty primary position",
replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8",
primaryPosition: "MySQL56/",
+ primarySID: "8bc65cca-3fe4-11ed-bbfb-091034d48b3e",
errantGtidWanted: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8",
+ }, {
+ name: "Primary seen as lagging for its own writes",
+ replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-33",
+ primaryPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-29",
+ primarySID: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9",
}, {
name: "Empty primary position - with multiple errant gtids",
replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1",
primaryPosition: "MySQL56/",
+ primarySID: "8bc65cca-3fe4-11ed-bbfb-091034d49c4f",
errantGtidWanted: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1",
}, {
name: "Single errant GTID",
replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:34",
primaryPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-50,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1-30",
+ primarySID: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9",
errantGtidWanted: "8bc65cca-3fe4-11ed-bbfb-091034d48bd3:34",
}, {
name: "Multiple errant GTID",
replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1-32,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:3-35",
primaryPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-50,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1-30,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:34",
+ primarySID: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9",
errantGtidWanted: "8bc65cca-3fe4-11ed-bbfb-091034d48b3e:31-32,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:3-33:35",
+ }, {
+ name: "Multiple errant GTID after discounting primary writes",
+ replicaPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-10,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1-32,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:3-35",
+ primaryPosition: "MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8,8bc65cca-3fe4-11ed-bbfb-091034d48b3e:1-30,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:34",
+ primarySID: "8bc65cca-3fe4-11ed-bbfb-091034d48b3e",
+ errantGtidWanted: "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:9-10,8bc65cca-3fe4-11ed-bbfb-091034d48bd3:3-33:35",
},
}
for _, tt := range tests {
@@ -792,7 +809,9 @@ func TestErrantGTIDsOnReplica(t *testing.T) {
require.NoError(t, err)
primaryPos, err := DecodePosition(tt.primaryPosition)
require.NoError(t, err)
- errantGTIDs, err := ErrantGTIDsOnReplica(replPos, primaryPos)
+ primarySID, err := ParseSID(tt.primarySID)
+ require.NoError(t, err)
+ errantGTIDs, err := ErrantGTIDsOnReplica(replPos, primaryPos, primarySID)
if tt.wantErr != "" {
require.ErrorContains(t, err, tt.wantErr)
} else {
diff --git a/go/mysql/replication/primary_status.go b/go/mysql/replication/primary_status.go
index 511777a5a4a..220fce3cfde 100644
--- a/go/mysql/replication/primary_status.go
+++ b/go/mysql/replication/primary_status.go
@@ -30,6 +30,8 @@ type PrimaryStatus struct {
Position Position
// FilePosition represents the server's file based position.
FilePosition Position
+ // ServerUUID is the UUID of the server.
+ ServerUUID string
}
// PrimaryStatusToProto translates a PrimaryStatus to proto3.
@@ -37,6 +39,7 @@ func PrimaryStatusToProto(s PrimaryStatus) *replicationdatapb.PrimaryStatus {
return &replicationdatapb.PrimaryStatus{
Position: EncodePosition(s.Position),
FilePosition: EncodePosition(s.FilePosition),
+ ServerUuid: s.ServerUUID,
}
}
diff --git a/go/test/endtoend/utils/mysql_test.go b/go/test/endtoend/utils/mysql_test.go
index d2b10f1d0a8..41b74583f69 100644
--- a/go/test/endtoend/utils/mysql_test.go
+++ b/go/test/endtoend/utils/mysql_test.go
@@ -233,6 +233,13 @@ func TestPrimaryStatus(t *testing.T) {
assert.NoError(t, err)
assert.True(t, res.Position.Equal(r.Position), "primary replication status should be same as replication status here")
+
+ suuid, err := mysqld.GetServerUUID(context.Background())
+ assert.NoError(t, err)
+ assert.NotEmpty(t, suuid)
+
+ // The server UUID read from primary status and GetServerUUID should match
+ assert.Equal(t, suuid, res.ServerUUID)
}
func TestReplicationConfiguration(t *testing.T) {
diff --git a/go/vt/mysqlctl/fakemysqldaemon.go b/go/vt/mysqlctl/fakemysqldaemon.go
index ef62f0ccb85..e6afe7917f1 100644
--- a/go/vt/mysqlctl/fakemysqldaemon.go
+++ b/go/vt/mysqlctl/fakemysqldaemon.go
@@ -67,6 +67,9 @@ type FakeMysqlDaemon struct {
// return an error.
MysqlPort atomic.Int32
+ // ServerUUID is the server's UUID.
+ ServerUUID string
+
// Replicating is updated when calling StartReplication /
// StopReplication (it is not used at all when calling
// ReplicationStatus, it is the test owner responsibility
@@ -299,7 +302,10 @@ func (fmd *FakeMysqlDaemon) GetServerID(ctx context.Context) (uint32, error) {
// GetServerUUID is part of the MysqlDaemon interface.
func (fmd *FakeMysqlDaemon) GetServerUUID(ctx context.Context) (string, error) {
- return "000000", nil
+ if fmd.ServerUUID != "" {
+ return fmd.ServerUUID, nil
+ }
+ return "00000000-0000-0000-0000-000000000000", nil
}
// ReplicationStatus is part of the MysqlDaemon interface.
@@ -331,9 +337,11 @@ func (fmd *FakeMysqlDaemon) PrimaryStatus(ctx context.Context) (replication.Prim
if fmd.PrimaryStatusError != nil {
return replication.PrimaryStatus{}, fmd.PrimaryStatusError
}
+ serverUUID, _ := fmd.GetServerUUID(ctx)
return replication.PrimaryStatus{
Position: fmd.CurrentPrimaryPosition,
FilePosition: fmd.CurrentSourceFilePosition,
+ ServerUUID: serverUUID,
}, nil
}
diff --git a/go/vt/mysqlctl/replication.go b/go/vt/mysqlctl/replication.go
index dd82794b42c..bd244d4f5c7 100644
--- a/go/vt/mysqlctl/replication.go
+++ b/go/vt/mysqlctl/replication.go
@@ -434,7 +434,15 @@ func (mysqld *Mysqld) PrimaryStatus(ctx context.Context) (replication.PrimarySta
}
defer conn.Recycle()
- return conn.Conn.ShowPrimaryStatus()
+ primaryStatus, err := conn.Conn.ShowPrimaryStatus()
+ if err != nil {
+ return replication.PrimaryStatus{}, err
+ }
+ primaryStatus.ServerUUID, err = conn.Conn.GetServerUUID()
+ if err != nil {
+ return replication.PrimaryStatus{}, err
+ }
+ return primaryStatus, nil
}
func (mysqld *Mysqld) ReplicationConfiguration(ctx context.Context) (*replicationdata.Configuration, error) {
diff --git a/go/vt/mysqlctl/replication_test.go b/go/vt/mysqlctl/replication_test.go
index 1ca41437ea7..d3745bff88c 100644
--- a/go/vt/mysqlctl/replication_test.go
+++ b/go/vt/mysqlctl/replication_test.go
@@ -287,6 +287,7 @@ func TestPrimaryStatus(t *testing.T) {
db.AddQuery("SELECT 1", &sqltypes.Result{})
db.AddQuery("SHOW MASTER STATUS", sqltypes.MakeTestResult(sqltypes.MakeTestFields("test_field", "varchar"), "test_status"))
+ db.AddQuery("SELECT @@global.server_uuid", sqltypes.MakeTestResult(sqltypes.MakeTestFields("test_field", "varchar"), "test_uuid"))
testMysqld := NewMysqld(dbc)
defer testMysqld.Close()
@@ -295,6 +296,7 @@ func TestPrimaryStatus(t *testing.T) {
res, err := testMysqld.PrimaryStatus(ctx)
assert.NoError(t, err)
assert.NotNil(t, res)
+ assert.EqualValues(t, "test_uuid", res.ServerUUID)
db.AddQuery("SHOW MASTER STATUS", &sqltypes.Result{})
_, err = testMysqld.PrimaryStatus(ctx)
diff --git a/go/vt/proto/replicationdata/replicationdata.pb.go b/go/vt/proto/replicationdata/replicationdata.pb.go
index 10a0406d851..29ee0e5b67e 100644
--- a/go/vt/proto/replicationdata/replicationdata.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata.pb.go
@@ -425,6 +425,7 @@ type PrimaryStatus struct {
Position string `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"`
FilePosition string `protobuf:"bytes,2,opt,name=file_position,json=filePosition,proto3" json:"file_position,omitempty"`
+ ServerUuid string `protobuf:"bytes,3,opt,name=server_uuid,json=serverUuid,proto3" json:"server_uuid,omitempty"`
}
func (x *PrimaryStatus) Reset() {
@@ -473,6 +474,13 @@ func (x *PrimaryStatus) GetFilePosition() string {
return ""
}
+func (x *PrimaryStatus) GetServerUuid() string {
+ if x != nil {
+ return x.ServerUuid
+ }
+ return ""
+}
+
// FullStatus contains the full status of MySQL including the replication information, semi-sync information, GTID information among others
type FullStatus struct {
state protoimpl.MessageState
@@ -766,88 +774,90 @@ var file_replicationdata_proto_rawDesc = []byte{
0x74, 0x75, 0x73, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61,
0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x50, 0x0a, 0x0d, 0x50, 0x72,
+ 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x72,
0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f,
0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x66, 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x08, 0x0a,
- 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69, 0x64,
- 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67,
- 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
- 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09,
- 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74, 0x69,
- 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x74,
- 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
- 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62,
- 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x62,
- 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,
- 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f, 0x77,
- 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69, 0x6e,
- 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
- 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a,
- 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a,
- 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69,
- 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65, 0x6e,
- 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d,
- 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61, 0x62,
- 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63,
- 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x18,
- 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15,
- 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79,
- 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e,
- 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79,
- 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73,
- 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20,
- 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20, 0x73,
- 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f,
- 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x57,
- 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75,
- 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64,
- 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75, 0x70,
- 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12,
- 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44,
- 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f, 0x4e,
- 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69,
- 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x66, 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0xc8, 0x08,
+ 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69,
+ 0x64, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x67, 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a,
+ 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74,
+ 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67,
+ 0x74, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
+ 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+ 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10,
+ 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f,
+ 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69,
+ 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0d, 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e,
+ 0x0a, 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39,
+ 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d,
+ 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65,
+ 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e,
+ 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a,
+ 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73,
+ 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53,
+ 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
+ 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13,
+ 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20,
+ 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66,
+ 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63,
+ 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f,
+ 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61,
+ 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75,
+ 0x70, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
+ 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18,
+ 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12,
+ 0x12, 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41,
+ 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f,
+ 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e,
+ 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
index 35c5db137a0..b81b2125566 100644
--- a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
@@ -102,6 +102,7 @@ func (m *PrimaryStatus) CloneVT() *PrimaryStatus {
r := new(PrimaryStatus)
r.Position = m.Position
r.FilePosition = m.FilePosition
+ r.ServerUuid = m.ServerUuid
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -484,6 +485,13 @@ func (m *PrimaryStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if len(m.ServerUuid) > 0 {
+ i -= len(m.ServerUuid)
+ copy(dAtA[i:], m.ServerUuid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ServerUuid)))
+ i--
+ dAtA[i] = 0x1a
+ }
if len(m.FilePosition) > 0 {
i -= len(m.FilePosition)
copy(dAtA[i:], m.FilePosition)
@@ -861,6 +869,10 @@ func (m *PrimaryStatus) SizeVT() (n int) {
if l > 0 {
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ l = len(m.ServerUuid)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
n += len(m.unknownFields)
return n
}
@@ -1852,6 +1864,38 @@ func (m *PrimaryStatus) UnmarshalVT(dAtA []byte) error {
}
m.FilePosition = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ServerUuid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ServerUuid = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/go/vt/vttablet/tabletmanager/framework_test.go b/go/vt/vttablet/tabletmanager/framework_test.go
index 6376f5ee2a7..235187a910a 100644
--- a/go/vt/vttablet/tabletmanager/framework_test.go
+++ b/go/vt/vttablet/tabletmanager/framework_test.go
@@ -27,6 +27,7 @@ import (
"github.com/stretchr/testify/require"
+ replicationdatapb "vitess.io/vitess/go/vt/proto/replicationdata"
vttablet "vitess.io/vitess/go/vt/vttablet/common"
"vitess.io/vitess/go/mysql/fakesqldb"
@@ -54,6 +55,7 @@ import (
const (
gtidFlavor = "MySQL56"
+ serverUUID = "16b1039f-22b6-11ed-b765-0a43f95f28a3"
gtidPosition = "16b1039f-22b6-11ed-b765-0a43f95f28a3:1-220"
)
@@ -497,6 +499,15 @@ func (tmc *fakeTMClient) PrimaryPosition(ctx context.Context, tablet *topodatapb
return fmt.Sprintf("%s/%s", gtidFlavor, gtidPosition), nil
}
+func (tmc *fakeTMClient) PrimaryStatus(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error) {
+ pos, _ := tmc.PrimaryPosition(ctx, tablet)
+ return &replicationdatapb.PrimaryStatus{
+ Position: pos,
+ FilePosition: pos,
+ ServerUuid: serverUUID,
+ }, nil
+}
+
func (tmc *fakeTMClient) VReplicationWaitForPos(ctx context.Context, tablet *topodatapb.Tablet, id int32, pos string) error {
return nil
}
diff --git a/go/vt/vttablet/tabletmanager/rpc_replication.go b/go/vt/vttablet/tabletmanager/rpc_replication.go
index 6fe4e779cbb..e76f857853c 100644
--- a/go/vt/vttablet/tabletmanager/rpc_replication.go
+++ b/go/vt/vttablet/tabletmanager/rpc_replication.go
@@ -768,15 +768,19 @@ func (tm *TabletManager) setReplicationSourceLocked(ctx context.Context, parentA
// We will then compare our own position against it to verify that we don't
// have an errant GTID. If we find any GTID that we have, but the primary doesn't,
// we will not enter the replication graph and instead fail replication.
- primaryPositionStr, err := tm.tmc.PrimaryPosition(ctx, parent.Tablet)
+ primaryStatus, err := tm.tmc.PrimaryStatus(ctx, parent.Tablet)
if err != nil {
return err
}
- primaryPosition, err := replication.DecodePosition(primaryPositionStr)
+ primaryPosition, err := replication.DecodePosition(primaryStatus.Position)
if err != nil {
return err
}
- errantGtid, err := replication.ErrantGTIDsOnReplica(replicaPosition, primaryPosition)
+ primarySid, err := replication.ParseSID(primaryStatus.ServerUuid)
+ if err != nil {
+ return err
+ }
+ errantGtid, err := replication.ErrantGTIDsOnReplica(replicaPosition, primaryPosition, primarySid)
if err != nil {
return err
}
diff --git a/go/vt/vttablet/tabletmanager/tm_init.go b/go/vt/vttablet/tabletmanager/tm_init.go
index 7f540b51546..84150c82be8 100644
--- a/go/vt/vttablet/tabletmanager/tm_init.go
+++ b/go/vt/vttablet/tabletmanager/tm_init.go
@@ -970,7 +970,7 @@ func (tm *TabletManager) hookExtraEnv() map[string]string {
// initializeReplication is used to initialize the replication when the tablet starts.
// It returns the current primary tablet for use externally
-func (tm *TabletManager) initializeReplication(ctx context.Context, tabletType topodatapb.TabletType) (primaryPosStr string, err error) {
+func (tm *TabletManager) initializeReplication(ctx context.Context, tabletType topodatapb.TabletType) (string, error) {
// If active reparents are disabled, we do not touch replication.
// There is nothing to do
if mysqlctl.DisableActiveReparents {
@@ -1045,27 +1045,29 @@ func (tm *TabletManager) initializeReplication(ctx context.Context, tabletType t
return "", err
}
- primaryPosStr, err = tm.tmc.PrimaryPosition(ctx, currentPrimary.Tablet)
+ primaryStatus, err := tm.tmc.PrimaryStatus(ctx, currentPrimary.Tablet)
if err != nil {
return "", err
}
-
- primaryPosition, err := replication.DecodePosition(primaryPosStr)
+ primaryPosition, err := replication.DecodePosition(primaryStatus.Position)
if err != nil {
return "", err
}
-
- errantGTIDs, err := replication.ErrantGTIDsOnReplica(replicaPos, primaryPosition)
+ primarySid, err := replication.ParseSID(primaryStatus.ServerUuid)
+ if err != nil {
+ return "", err
+ }
+ errantGtid, err := replication.ErrantGTIDsOnReplica(replicaPos, primaryPosition, primarySid)
if err != nil {
return "", err
}
- if errantGTIDs != "" {
- return "", vterrors.New(vtrpc.Code_FAILED_PRECONDITION, fmt.Sprintf("Errant GTID detected - %s", errantGTIDs))
+ if errantGtid != "" {
+ return "", vterrors.New(vtrpc.Code_FAILED_PRECONDITION, fmt.Sprintf("Errant GTID detected - %s; Primary GTID - %s, Replica GTID - %s", errantGtid, primaryPosition, replicaPos.String()))
}
if err := tm.MysqlDaemon.SetReplicationSource(ctx, currentPrimary.Tablet.MysqlHostname, currentPrimary.Tablet.MysqlPort, 0, true, true); err != nil {
return "", vterrors.Wrap(err, "MysqlDaemon.SetReplicationSource failed")
}
- return primaryPosStr, nil
+ return primaryStatus.Position, nil
}
diff --git a/go/vt/wrangler/testlib/reparent_utils_test.go b/go/vt/wrangler/testlib/reparent_utils_test.go
index 6f66968ba80..b199a64340a 100644
--- a/go/vt/wrangler/testlib/reparent_utils_test.go
+++ b/go/vt/wrangler/testlib/reparent_utils_test.go
@@ -208,6 +208,7 @@ func TestSetReplicationSource(t *testing.T) {
pos, err := replication.DecodePosition("MySQL56/8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-8")
require.NoError(t, err)
primary.FakeMysqlDaemon.SetPrimaryPositionLocked(pos)
+ primary.FakeMysqlDaemon.ServerUUID = "8bc65c84-3fe4-11ed-a912-257f0fcdd6c9"
// primary action loop (to initialize host and port)
primary.StartActionLoop(t, wr)
diff --git a/proto/replicationdata.proto b/proto/replicationdata.proto
index 1a8b608f984..7107332233b 100644
--- a/proto/replicationdata.proto
+++ b/proto/replicationdata.proto
@@ -77,6 +77,7 @@ enum StopReplicationMode {
message PrimaryStatus {
string position = 1;
string file_position = 2;
+ string server_uuid = 3;
}
// FullStatus contains the full status of MySQL including the replication information, semi-sync information, GTID information among others
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index 4b79f2f65f2..a7612f7325c 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -47567,6 +47567,9 @@ export namespace replicationdata {
/** PrimaryStatus file_position */
file_position?: (string|null);
+
+ /** PrimaryStatus server_uuid */
+ server_uuid?: (string|null);
}
/** Represents a PrimaryStatus. */
@@ -47584,6 +47587,9 @@ export namespace replicationdata {
/** PrimaryStatus file_position. */
public file_position: string;
+ /** PrimaryStatus server_uuid. */
+ public server_uuid: string;
+
/**
* Creates a new PrimaryStatus instance using the specified properties.
* @param [properties] Properties to set
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 2afe7e4fb87..04838eef324 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -115721,6 +115721,7 @@ export const replicationdata = $root.replicationdata = (() => {
* @interface IPrimaryStatus
* @property {string|null} [position] PrimaryStatus position
* @property {string|null} [file_position] PrimaryStatus file_position
+ * @property {string|null} [server_uuid] PrimaryStatus server_uuid
*/
/**
@@ -115754,6 +115755,14 @@ export const replicationdata = $root.replicationdata = (() => {
*/
PrimaryStatus.prototype.file_position = "";
+ /**
+ * PrimaryStatus server_uuid.
+ * @member {string} server_uuid
+ * @memberof replicationdata.PrimaryStatus
+ * @instance
+ */
+ PrimaryStatus.prototype.server_uuid = "";
+
/**
* Creates a new PrimaryStatus instance using the specified properties.
* @function create
@@ -115782,6 +115791,8 @@ export const replicationdata = $root.replicationdata = (() => {
writer.uint32(/* id 1, wireType 2 =*/10).string(message.position);
if (message.file_position != null && Object.hasOwnProperty.call(message, "file_position"))
writer.uint32(/* id 2, wireType 2 =*/18).string(message.file_position);
+ if (message.server_uuid != null && Object.hasOwnProperty.call(message, "server_uuid"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.server_uuid);
return writer;
};
@@ -115824,6 +115835,10 @@ export const replicationdata = $root.replicationdata = (() => {
message.file_position = reader.string();
break;
}
+ case 3: {
+ message.server_uuid = reader.string();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -115865,6 +115880,9 @@ export const replicationdata = $root.replicationdata = (() => {
if (message.file_position != null && message.hasOwnProperty("file_position"))
if (!$util.isString(message.file_position))
return "file_position: string expected";
+ if (message.server_uuid != null && message.hasOwnProperty("server_uuid"))
+ if (!$util.isString(message.server_uuid))
+ return "server_uuid: string expected";
return null;
};
@@ -115884,6 +115902,8 @@ export const replicationdata = $root.replicationdata = (() => {
message.position = String(object.position);
if (object.file_position != null)
message.file_position = String(object.file_position);
+ if (object.server_uuid != null)
+ message.server_uuid = String(object.server_uuid);
return message;
};
@@ -115903,11 +115923,14 @@ export const replicationdata = $root.replicationdata = (() => {
if (options.defaults) {
object.position = "";
object.file_position = "";
+ object.server_uuid = "";
}
if (message.position != null && message.hasOwnProperty("position"))
object.position = message.position;
if (message.file_position != null && message.hasOwnProperty("file_position"))
object.file_position = message.file_position;
+ if (message.server_uuid != null && message.hasOwnProperty("server_uuid"))
+ object.server_uuid = message.server_uuid;
return object;
};
From 03b93a1e3b4cb2300c533832cc43e30b24d36106 Mon Sep 17 00:00:00 2001
From: Arthur Schreiber
Date: Tue, 22 Oct 2024 19:21:03 +0200
Subject: [PATCH 02/78] Add support for `MultiEqual` opcode for lookup
vindexes. (#16975)
Signed-off-by: Arthur Schreiber
---
go/test/endtoend/vtgate/lookup_test.go | 16 +++
go/test/endtoend/vtgate/schema.sql | 2 +-
go/vt/vtgate/engine/vindex_lookup.go | 2 +-
go/vt/vtgate/executor_select_test.go | 61 +++++++++++
.../planbuilder/testdata/filter_cases.json | 102 ++++++++++++++++++
5 files changed, 181 insertions(+), 2 deletions(-)
diff --git a/go/test/endtoend/vtgate/lookup_test.go b/go/test/endtoend/vtgate/lookup_test.go
index 75f4a007076..82cd63e5401 100644
--- a/go/test/endtoend/vtgate/lookup_test.go
+++ b/go/test/endtoend/vtgate/lookup_test.go
@@ -552,6 +552,22 @@ func TestConsistentLookupUpdate(t *testing.T) {
require.Empty(t, qr.Rows)
}
+func TestSelectMultiEqualLookup(t *testing.T) {
+ conn, closer := start(t)
+ defer closer()
+
+ utils.Exec(t, conn, "insert into t10 (id, sharding_key, col1) values (1, 1, 'bar'), (2, 1, 'bar'), (3, 1, 'bar'), (4, 2, 'bar'), (5, 2, 'bar')")
+
+ for _, workload := range []string{"oltp", "olap"} {
+ t.Run(workload, func(t *testing.T) {
+ utils.Exec(t, conn, "set workload = "+workload)
+
+ utils.AssertMatches(t, conn, "select id from t10 WHERE (col1, id) IN (('bar', 1), ('baz', 2), ('qux', 3), ('barbar', 4))", "[[INT64(1)]]")
+ utils.AssertMatches(t, conn, "select id from t10 WHERE (col1 = 'bar' AND id = 1) OR (col1 = 'baz' AND id = 2) OR (col1 = 'qux' AND id = 3) OR (col1 = 'barbar' AND id = 4)", "[[INT64(1)]]")
+ })
+ }
+}
+
func TestSelectNullLookup(t *testing.T) {
conn, closer := start(t)
defer closer()
diff --git a/go/test/endtoend/vtgate/schema.sql b/go/test/endtoend/vtgate/schema.sql
index 4c9ed46fe9a..8e7eed0b594 100644
--- a/go/test/endtoend/vtgate/schema.sql
+++ b/go/test/endtoend/vtgate/schema.sql
@@ -164,4 +164,4 @@ create table t11
col2 int,
col3 int,
primary key (id)
-) Engine = InnoDB;
\ No newline at end of file
+) Engine = InnoDB;
diff --git a/go/vt/vtgate/engine/vindex_lookup.go b/go/vt/vtgate/engine/vindex_lookup.go
index 8bf8755c40e..2e0e2857498 100644
--- a/go/vt/vtgate/engine/vindex_lookup.go
+++ b/go/vt/vtgate/engine/vindex_lookup.go
@@ -252,7 +252,7 @@ func (vr *VindexLookup) generateIds(ctx context.Context, vcursor VCursor, bindVa
switch vr.Opcode {
case Equal, EqualUnique:
return []sqltypes.Value{value.Value(vcursor.ConnCollation())}, nil
- case IN:
+ case IN, MultiEqual:
return value.TupleValues(), nil
}
return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "opcode %s not supported for VindexLookup", vr.Opcode.String())
diff --git a/go/vt/vtgate/executor_select_test.go b/go/vt/vtgate/executor_select_test.go
index 2e95e438c22..8ba89d25daf 100644
--- a/go/vt/vtgate/executor_select_test.go
+++ b/go/vt/vtgate/executor_select_test.go
@@ -2966,6 +2966,67 @@ func TestSubQueryAndQueryWithLimit(t *testing.T) {
assert.Equal(t, `type:INT64 value:"100"`, sbc2.Queries[1].BindVariables["__upper_limit"].String())
}
+func TestSelectUsingMultiEqualOnLookupColumn(t *testing.T) {
+ executor, sbc1, sbc2, sbclookup, _ := createExecutorEnv(t)
+
+ // No results on shard `-20` (`sbc1`), but some lookup results on shard `40-60` (`sbc2`)
+ sbclookup.SetResults([]*sqltypes.Result{{
+ Fields: []*querypb.Field{
+ {Name: "lu_col", Type: sqltypes.Int32, Charset: collations.CollationBinaryID, Flags: uint32(querypb.MySqlFlag_NUM_FLAG)},
+ {Name: "keyspace_id", Type: sqltypes.VarBinary, Charset: collations.CollationBinaryID, Flags: uint32(querypb.MySqlFlag_BINARY_FLAG)},
+ },
+ Rows: [][]sqltypes.Value{{
+ sqltypes.NewInt32(2),
+ sqltypes.MakeTrusted(sqltypes.VarBinary, []byte("\x45")),
+ }},
+ }})
+
+ sbc1.SetResults([]*sqltypes.Result{{
+ Fields: []*querypb.Field{
+ {Name: "nv_lu_col", Type: sqltypes.Int32, Charset: collations.CollationBinaryID, Flags: uint32(querypb.MySqlFlag_NUM_FLAG)},
+ {Name: "other", Type: sqltypes.VarChar, Charset: collations.CollationUtf8mb4ID},
+ },
+ Rows: [][]sqltypes.Value{},
+ }})
+
+ sbc2.SetResults([]*sqltypes.Result{{
+ Fields: []*querypb.Field{
+ {Name: "nv_lu_col", Type: sqltypes.Int32, Charset: collations.CollationBinaryID, Flags: uint32(querypb.MySqlFlag_NUM_FLAG)},
+ {Name: "other", Type: sqltypes.VarChar, Charset: collations.CollationUtf8mb4ID},
+ },
+ Rows: [][]sqltypes.Value{{
+ sqltypes.NewInt32(2),
+ sqltypes.NewVarChar("baz"),
+ }},
+ }})
+
+ result, err := exec(executor, NewSafeSession(&vtgatepb.Session{
+ TargetString: KsTestSharded,
+ }), "select nv_lu_col, other from t2_lookup WHERE (nv_lu_col = 1 AND other = 'bar') OR (nv_lu_col = 2 AND other = 'baz') OR (nv_lu_col = 3 AND other = 'qux') OR (nv_lu_col = 4 AND other = 'brz') OR (nv_lu_col = 5 AND other = 'brz')")
+
+ require.NoError(t, err)
+
+ require.Len(t, sbc1.Queries, 0)
+ require.Len(t, sbc2.Queries, 1)
+
+ require.Equal(t, []*querypb.BoundQuery{{
+ Sql: "select nv_lu_col, other from t2_lookup where nv_lu_col = 1 and other = 'bar' or nv_lu_col = 2 and other = 'baz' or nv_lu_col = 3 and other = 'qux' or nv_lu_col = 4 and other = 'brz' or nv_lu_col = 5 and other = 'brz'",
+ BindVariables: map[string]*querypb.BindVariable{},
+ }}, sbc2.Queries)
+
+ wantResult := &sqltypes.Result{
+ Fields: []*querypb.Field{
+ {Name: "nv_lu_col", Type: sqltypes.Int32, Charset: collations.CollationBinaryID, Flags: uint32(querypb.MySqlFlag_NUM_FLAG)},
+ {Name: "other", Type: sqltypes.VarChar, Charset: collations.CollationUtf8mb4ID},
+ },
+ Rows: [][]sqltypes.Value{{
+ sqltypes.NewInt32(2),
+ sqltypes.NewVarChar("baz"),
+ }},
+ }
+ require.Equal(t, wantResult, result)
+}
+
func TestCrossShardSubqueryStream(t *testing.T) {
executor, sbc1, sbc2, _, ctx := createExecutorEnv(t)
result1 := []*sqltypes.Result{{
diff --git a/go/vt/vtgate/planbuilder/testdata/filter_cases.json b/go/vt/vtgate/planbuilder/testdata/filter_cases.json
index 3dc379b9aae..4194a369bd6 100644
--- a/go/vt/vtgate/planbuilder/testdata/filter_cases.json
+++ b/go/vt/vtgate/planbuilder/testdata/filter_cases.json
@@ -797,6 +797,108 @@
]
}
},
+ {
+ "comment": "Disjunction of conjunctions with 4 or more disjunctions",
+ "query": "select id from user where (col = 'aa' AND name = 'bb') OR (col = 'cc' AND name = 'dd') OR (col = 'ee' AND name = 'ff') OR (col = 'gg' AND name = 'hh')",
+ "plan": {
+ "QueryType": "SELECT",
+ "Original": "select id from user where (col = 'aa' AND name = 'bb') OR (col = 'cc' AND name = 'dd') OR (col = 'ee' AND name = 'ff') OR (col = 'gg' AND name = 'hh')",
+ "Instructions": {
+ "OperatorType": "VindexLookup",
+ "Variant": "MultiEqual",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "Values": [
+ "('bb', 'dd', 'ff', 'hh')"
+ ],
+ "Vindex": "name_user_map",
+ "Inputs": [
+ {
+ "OperatorType": "Route",
+ "Variant": "IN",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "FieldQuery": "select `name`, keyspace_id from name_user_vdx where 1 != 1",
+ "Query": "select `name`, keyspace_id from name_user_vdx where `name` in ::__vals",
+ "Table": "name_user_vdx",
+ "Values": [
+ "::name"
+ ],
+ "Vindex": "user_index"
+ },
+ {
+ "OperatorType": "Route",
+ "Variant": "ByDestination",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "FieldQuery": "select id from `user` where 1 != 1",
+ "Query": "select id from `user` where col = 'aa' and `name` = 'bb' or col = 'cc' and `name` = 'dd' or col = 'ee' and `name` = 'ff' or col = 'gg' and `name` = 'hh'",
+ "Table": "`user`"
+ }
+ ]
+ },
+ "TablesUsed": [
+ "user.user"
+ ]
+ }
+ },
+ {
+ "comment": "Disjunction of conjunctions with 3 or less disjunctions",
+ "query": "select id from user where (col = 'aa' AND name = 'bb') OR (col = 'cc' AND name = 'dd') OR (col = 'ee' AND name = 'ff')",
+ "plan": {
+ "QueryType": "SELECT",
+ "Original": "select id from user where (col = 'aa' AND name = 'bb') OR (col = 'cc' AND name = 'dd') OR (col = 'ee' AND name = 'ff')",
+ "Instructions": {
+ "OperatorType": "VindexLookup",
+ "Variant": "IN",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "Values": [
+ "('bb', 'dd', 'ff')"
+ ],
+ "Vindex": "name_user_map",
+ "Inputs": [
+ {
+ "OperatorType": "Route",
+ "Variant": "IN",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "FieldQuery": "select `name`, keyspace_id from name_user_vdx where 1 != 1",
+ "Query": "select `name`, keyspace_id from name_user_vdx where `name` in ::__vals",
+ "Table": "name_user_vdx",
+ "Values": [
+ "::name"
+ ],
+ "Vindex": "user_index"
+ },
+ {
+ "OperatorType": "Route",
+ "Variant": "ByDestination",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "FieldQuery": "select id from `user` where 1 != 1",
+ "Query": "select id from `user` where col in ('aa', 'cc', 'ee') and (col in ('aa', 'cc') or `name` = 'ff') and (col = 'aa' or `name` = 'dd' or col = 'ee') and (col = 'aa' or `name` = 'dd' or `name` = 'ff') and (`name` = 'bb' or col = 'cc' or col = 'ee') and (`name` = 'bb' or col = 'cc' or `name` = 'ff') and (`name` in ('bb', 'dd') or col = 'ee') and `name` in ::__vals",
+ "Table": "`user`"
+ }
+ ]
+ },
+ "TablesUsed": [
+ "user.user"
+ ]
+ }
+ },
{
"comment": "Single table complex in clause",
"query": "select id from user where name in (col, 'bb')",
From 2203cfb6cbb5b224fc8fbf3da902a2ae033f9524 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Tue, 22 Oct 2024 16:34:35 -0400
Subject: [PATCH 03/78] Use proper zstd decoder pool for binlog event
compression handling (#17042)
Signed-off-by: Matt Lord
---
go/mysql/binlog_event_compression.go | 77 ++++++++++++++---------
go/mysql/binlog_event_compression_test.go | 75 ++++++++++++++++++++++
2 files changed, 121 insertions(+), 31 deletions(-)
create mode 100644 go/mysql/binlog_event_compression_test.go
diff --git a/go/mysql/binlog_event_compression.go b/go/mysql/binlog_event_compression.go
index 378698bc64b..1cb38d5cb16 100644
--- a/go/mysql/binlog_event_compression.go
+++ b/go/mysql/binlog_event_compression.go
@@ -25,7 +25,6 @@ import (
"github.com/klauspost/compress/zstd"
"vitess.io/vitess/go/stats"
- "vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/vt/vterrors"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
@@ -89,26 +88,9 @@ var (
// allocations and GC overhead so this pool allows us to handle
// concurrent cases better while still scaling to 0 when there's no
// usage.
- statefulDecoderPool sync.Pool
+ statefulDecoderPool = &decoderPool{}
)
-func init() {
- var err error
- statelessDecoder, err = zstd.NewReader(nil, zstd.WithDecoderConcurrency(0))
- if err != nil { // Should only happen e.g. due to ENOMEM
- log.Errorf("Error creating stateless decoder: %v", err)
- }
- statefulDecoderPool = sync.Pool{
- New: func() any {
- d, err := zstd.NewReader(nil, zstd.WithDecoderMaxMemory(zstdInMemoryDecompressorMaxSize))
- if err != nil { // Should only happen e.g. due to ENOMEM
- log.Errorf("Error creating stateful decoder: %v", err)
- }
- return d
- },
- }
-}
-
type TransactionPayload struct {
size uint64
compressionType uint64
@@ -304,12 +286,9 @@ func (tp *TransactionPayload) decompress() error {
// larger payloads.
if tp.uncompressedSize > zstdInMemoryDecompressorMaxSize {
in := bytes.NewReader(tp.payload)
- streamDecoder := statefulDecoderPool.Get().(*zstd.Decoder)
- if streamDecoder == nil {
- return vterrors.New(vtrpcpb.Code_INTERNAL, "failed to create stateful stream decoder")
- }
- if err := streamDecoder.Reset(in); err != nil {
- return vterrors.Wrap(err, "error resetting stateful stream decoder")
+ streamDecoder, err := statefulDecoderPool.Get(in)
+ if err != nil {
+ return err
}
compressedTrxPayloadsUsingStream.Add(1)
tp.reader = streamDecoder
@@ -317,8 +296,12 @@ func (tp *TransactionPayload) decompress() error {
}
// Process smaller payloads using only in-memory buffers.
- if statelessDecoder == nil { // Should never happen
- return vterrors.New(vtrpcpb.Code_INTERNAL, "failed to create stateless decoder")
+ if statelessDecoder == nil { // Should only need to be done once
+ var err error
+ statelessDecoder, err = zstd.NewReader(nil, zstd.WithDecoderConcurrency(0))
+ if err != nil { // Should only happen e.g. due to ENOMEM
+ return vterrors.Wrap(err, "failed to create stateless decoder")
+ }
}
decompressedBytes := make([]byte, 0, tp.uncompressedSize) // Perform a single pre-allocation
decompressedBytes, err := statelessDecoder.DecodeAll(tp.payload, decompressedBytes[:0])
@@ -340,11 +323,8 @@ func (tp *TransactionPayload) decompress() error {
func (tp *TransactionPayload) Close() {
switch reader := tp.reader.(type) {
case *zstd.Decoder:
- if err := reader.Reset(nil); err == nil || err == io.EOF {
- readersPool.Put(reader)
- }
+ statefulDecoderPool.Put(reader)
default:
- reader = nil
}
tp.iterator = nil
}
@@ -368,3 +348,38 @@ func (tp *TransactionPayload) GetNextEvent() (BinlogEvent, error) {
//func (tp *TransactionPayload) Events() iter.Seq[BinlogEvent] {
// return tp.iterator
//}
+
+// decoderPool manages a sync.Pool of *zstd.Decoders.
+type decoderPool struct {
+ pool sync.Pool
+}
+
+// Get gets a pooled OR new *zstd.Decoder.
+func (dp *decoderPool) Get(reader io.Reader) (*zstd.Decoder, error) {
+ var (
+ decoder *zstd.Decoder
+ ok bool
+ )
+ if pooled := dp.pool.Get(); pooled != nil {
+ decoder, ok = pooled.(*zstd.Decoder)
+ if !ok {
+ return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "[BUG] expected *zstd.Decoder but got %T", pooled)
+ }
+ } else {
+ d, err := zstd.NewReader(nil, zstd.WithDecoderMaxMemory(zstdInMemoryDecompressorMaxSize))
+ if err != nil { // Should only happen e.g. due to ENOMEM
+ return nil, vterrors.Wrap(err, "failed to create stateful stream decoder")
+ }
+ decoder = d
+ }
+ if err := decoder.Reset(reader); err != nil {
+ return nil, vterrors.Wrap(err, "error resetting stateful stream decoder")
+ }
+ return decoder, nil
+}
+
+func (dp *decoderPool) Put(decoder *zstd.Decoder) {
+ if err := decoder.Reset(nil); err == nil || err == io.EOF {
+ dp.pool.Put(decoder)
+ }
+}
diff --git a/go/mysql/binlog_event_compression_test.go b/go/mysql/binlog_event_compression_test.go
new file mode 100644
index 00000000000..4c6418a1aa0
--- /dev/null
+++ b/go/mysql/binlog_event_compression_test.go
@@ -0,0 +1,75 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package mysql
+
+import (
+ "bytes"
+ "io"
+ "testing"
+
+ "github.com/klauspost/compress/zstd"
+ "github.com/stretchr/testify/require"
+)
+
+func TestDecoderPool(t *testing.T) {
+ validateDecoder := func(t *testing.T, err error, decoder *zstd.Decoder) {
+ require.NoError(t, err)
+ require.NotNil(t, decoder)
+ require.IsType(t, &zstd.Decoder{}, decoder)
+ }
+ tests := []struct {
+ name string
+ reader io.Reader
+ wantErr bool
+ }{
+ {
+ name: "happy path",
+ reader: bytes.NewReader([]byte{0x68, 0x61, 0x70, 0x70, 0x79}),
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ // It's not guaranteed that we get the same decoder back from the pool
+ // that we just put in, so we use a loop and ensure that it worked at
+ // least one of the times. Without doing this the test would be flaky.
+ poolingUsed := false
+
+ for i := 0; i < 20; i++ {
+ decoder, err := statefulDecoderPool.Get(tt.reader)
+ validateDecoder(t, err, decoder)
+ statefulDecoderPool.Put(decoder)
+
+ decoder2, err := statefulDecoderPool.Get(tt.reader)
+ validateDecoder(t, err, decoder2)
+ if decoder2 == decoder {
+ poolingUsed = true
+ }
+ statefulDecoderPool.Put(decoder2)
+
+ decoder3, err := statefulDecoderPool.Get(tt.reader)
+ validateDecoder(t, err, decoder3)
+ if decoder3 == decoder || decoder3 == decoder2 {
+ poolingUsed = true
+ }
+ statefulDecoderPool.Put(decoder3)
+ }
+
+ require.True(t, poolingUsed)
+ })
+ }
+}
From 0f9a985f2ffcf6c58b81d97e8b488bd8c64f4c05 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Tue, 22 Oct 2024 17:08:48 -0400
Subject: [PATCH 04/78] VDiff: Comment the VDiffCreate proto msg and set
reasonable server side defaults (#17026)
Signed-off-by: Matt Lord
---
.../command/vreplication/vdiff/vdiff.go | 16 +--
go/vt/proto/vtctldata/vtctldata.pb.go | 102 ++++++++++++++----
go/vt/vtctl/workflow/server.go | 8 +-
proto/vtctldata.proto | 58 ++++++++++
4 files changed, 154 insertions(+), 30 deletions(-)
diff --git a/go/cmd/vtctldclient/command/vreplication/vdiff/vdiff.go b/go/cmd/vtctldclient/command/vreplication/vdiff/vdiff.go
index 2a4143172a7..54b2eec0840 100644
--- a/go/cmd/vtctldclient/command/vreplication/vdiff/vdiff.go
+++ b/go/cmd/vtctldclient/command/vreplication/vdiff/vdiff.go
@@ -417,12 +417,14 @@ type summary struct {
RowsCompared int64
HasMismatch bool
Shards string
- StartedAt string `json:"StartedAt,omitempty"`
- CompletedAt string `json:"CompletedAt,omitempty"`
- TableSummaryMap map[string]tableSummary `json:"TableSummary,omitempty"`
- Reports map[string]map[string]vdiff.DiffReport `json:"Reports,omitempty"`
- Errors map[string]string `json:"Errors,omitempty"`
- Progress *vdiff.ProgressReport `json:"Progress,omitempty"`
+ StartedAt string `json:"StartedAt,omitempty"`
+ CompletedAt string `json:"CompletedAt,omitempty"`
+ TableSummaryMap map[string]tableSummary `json:"TableSummary,omitempty"`
+ // This is keyed by table name and then by shard name.
+ Reports map[string]map[string]vdiff.DiffReport `json:"Reports,omitempty"`
+ // This is keyed by shard name.
+ Errors map[string]string `json:"Errors,omitempty"`
+ Progress *vdiff.ProgressReport `json:"Progress,omitempty"`
}
const summaryTextTemplate = `
@@ -892,7 +894,7 @@ func registerCommands(root *cobra.Command) {
create.Flags().Int64Var(&createOptions.Limit, "limit", math.MaxInt64, "Max rows to stop comparing after.")
create.Flags().BoolVar(&createOptions.DebugQuery, "debug-query", false, "Adds a mysql query to the report that can be used for further debugging.")
create.Flags().Int64Var(&createOptions.MaxReportSampleRows, "max-report-sample-rows", 10, "Maximum number of row differences to report (0 for all differences). NOTE: when increasing this value it is highly recommended to also specify --only-pks")
- create.Flags().BoolVar(&createOptions.OnlyPKs, "only-pks", false, "When reporting missing rows, only show primary keys in the report.")
+ create.Flags().BoolVar(&createOptions.OnlyPKs, "only-pks", false, "When reporting row differences, only show primary keys in the report.")
create.Flags().StringSliceVar(&createOptions.Tables, "tables", nil, "Only run vdiff for these tables in the workflow.")
create.Flags().Int64Var(&createOptions.MaxExtraRowsToCompare, "max-extra-rows-to-compare", 1000, "If there are collation differences between the source and target, you can have rows that are identical but simply returned in a different order from MySQL. We will do a second pass to compare the rows for any actual differences in this case and this flag allows you to control the resources used for this operation.")
create.Flags().BoolVar(&createOptions.Wait, "wait", false, "When creating or resuming a vdiff, wait for it to finish before exiting.")
diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go
index 585fb93ce35..d9697e29a21 100644
--- a/go/vt/proto/vtctldata/vtctldata.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata.pb.go
@@ -14580,28 +14580,86 @@ type VDiffCreateRequest struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Workflow string `protobuf:"bytes,1,opt,name=workflow,proto3" json:"workflow,omitempty"`
- TargetKeyspace string `protobuf:"bytes,2,opt,name=target_keyspace,json=targetKeyspace,proto3" json:"target_keyspace,omitempty"`
- Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"`
- SourceCells []string `protobuf:"bytes,4,rep,name=source_cells,json=sourceCells,proto3" json:"source_cells,omitempty"`
- TargetCells []string `protobuf:"bytes,5,rep,name=target_cells,json=targetCells,proto3" json:"target_cells,omitempty"`
- TabletTypes []topodata.TabletType `protobuf:"varint,6,rep,packed,name=tablet_types,json=tabletTypes,proto3,enum=topodata.TabletType" json:"tablet_types,omitempty"`
- TabletSelectionPreference tabletmanagerdata.TabletSelectionPreference `protobuf:"varint,7,opt,name=tablet_selection_preference,json=tabletSelectionPreference,proto3,enum=tabletmanagerdata.TabletSelectionPreference" json:"tablet_selection_preference,omitempty"`
- Tables []string `protobuf:"bytes,8,rep,name=tables,proto3" json:"tables,omitempty"`
- Limit int64 `protobuf:"varint,9,opt,name=limit,proto3" json:"limit,omitempty"`
- FilteredReplicationWaitTime *vttime.Duration `protobuf:"bytes,10,opt,name=filtered_replication_wait_time,json=filteredReplicationWaitTime,proto3" json:"filtered_replication_wait_time,omitempty"`
- DebugQuery bool `protobuf:"varint,11,opt,name=debug_query,json=debugQuery,proto3" json:"debug_query,omitempty"`
- OnlyPKs bool `protobuf:"varint,12,opt,name=only_p_ks,json=onlyPKs,proto3" json:"only_p_ks,omitempty"`
- UpdateTableStats bool `protobuf:"varint,13,opt,name=update_table_stats,json=updateTableStats,proto3" json:"update_table_stats,omitempty"`
- MaxExtraRowsToCompare int64 `protobuf:"varint,14,opt,name=max_extra_rows_to_compare,json=maxExtraRowsToCompare,proto3" json:"max_extra_rows_to_compare,omitempty"`
- Wait bool `protobuf:"varint,15,opt,name=wait,proto3" json:"wait,omitempty"`
- WaitUpdateInterval *vttime.Duration `protobuf:"bytes,16,opt,name=wait_update_interval,json=waitUpdateInterval,proto3" json:"wait_update_interval,omitempty"`
- AutoRetry bool `protobuf:"varint,17,opt,name=auto_retry,json=autoRetry,proto3" json:"auto_retry,omitempty"`
- Verbose bool `protobuf:"varint,18,opt,name=verbose,proto3" json:"verbose,omitempty"`
- MaxReportSampleRows int64 `protobuf:"varint,19,opt,name=max_report_sample_rows,json=maxReportSampleRows,proto3" json:"max_report_sample_rows,omitempty"`
- MaxDiffDuration *vttime.Duration `protobuf:"bytes,20,opt,name=max_diff_duration,json=maxDiffDuration,proto3" json:"max_diff_duration,omitempty"`
- RowDiffColumnTruncateAt int64 `protobuf:"varint,21,opt,name=row_diff_column_truncate_at,json=rowDiffColumnTruncateAt,proto3" json:"row_diff_column_truncate_at,omitempty"`
- AutoStart *bool `protobuf:"varint,22,opt,name=auto_start,json=autoStart,proto3,oneof" json:"auto_start,omitempty"`
+ // The name of the workflow that we're diffing tables for.
+ Workflow string `protobuf:"bytes,1,opt,name=workflow,proto3" json:"workflow,omitempty"`
+ // The keyspace where the vreplication workflow is running.
+ TargetKeyspace string `protobuf:"bytes,2,opt,name=target_keyspace,json=targetKeyspace,proto3" json:"target_keyspace,omitempty"`
+ // A unique identifier for the vdiff.
+ // If empty, a new UUID will be generated.
+ Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ // The cells to look for source tablets in.
+ // If empty, all cells are used.
+ SourceCells []string `protobuf:"bytes,4,rep,name=source_cells,json=sourceCells,proto3" json:"source_cells,omitempty"`
+ // The cells to look for target tablets in.
+ // If empty, all cells are used.
+ TargetCells []string `protobuf:"bytes,5,rep,name=target_cells,json=targetCells,proto3" json:"target_cells,omitempty"`
+ // The tablet types to use when searching for tablets to use when streaming
+ // results.
+ // A default value of "replica,rdonly,primary" is used by the tablet picker.
+ TabletTypes []topodata.TabletType `protobuf:"varint,6,rep,packed,name=tablet_types,json=tabletTypes,proto3,enum=topodata.TabletType" json:"tablet_types,omitempty"`
+ // When performing source tablet selection, look for candidates in the type
+ // order as they are listed in the tablet_types value (or the default of
+ // "replica,rdonly,primary" that the tablet picker uses).
+ // The default is ANY (0) and you can use INORDER (1) to e.g. ensure that a
+ // primary tablet is only used if there are no available replica or rdonly
+ // tablets.
+ TabletSelectionPreference tabletmanagerdata.TabletSelectionPreference `protobuf:"varint,7,opt,name=tablet_selection_preference,json=tabletSelectionPreference,proto3,enum=tabletmanagerdata.TabletSelectionPreference" json:"tablet_selection_preference,omitempty"`
+ // The tables to compare. If empty, all tables in the workflow are compared.
+ Tables []string `protobuf:"bytes,8,rep,name=tables,proto3" json:"tables,omitempty"`
+ // The maximum number of rows to compare for each table on each shard.
+ // The default is a max int64 value: 2^63 - 1 or 9,223,372,036,854,775,807.
+ Limit int64 `protobuf:"varint,9,opt,name=limit,proto3" json:"limit,omitempty"`
+ // How long to wait for the relevant vreplication stream(s) to catch up when
+ // attempting to setup the table snapshots on the source and target to use for
+ // the diff on each shard.
+ // The default is 30s.
+ FilteredReplicationWaitTime *vttime.Duration `protobuf:"bytes,10,opt,name=filtered_replication_wait_time,json=filteredReplicationWaitTime,proto3" json:"filtered_replication_wait_time,omitempty"`
+ // Include the MySQL query used for the diff in the report that is stored on
+ // each shard primary tablet in the _vt.vdiff_table records.
+ DebugQuery bool `protobuf:"varint,11,opt,name=debug_query,json=debugQuery,proto3" json:"debug_query,omitempty"`
+ // Only show the Primary Key columns in any row diff output. You would
+ // typically want to use this if you set the max_sample_rows very high.
+ OnlyPKs bool `protobuf:"varint,12,opt,name=only_p_ks,json=onlyPKs,proto3" json:"only_p_ks,omitempty"`
+ // Update the table statistics, using ANALYZE TABLE, on each table involved
+ // in the vdiff during initialization on each target shard. This will ensure
+ // that progress estimates are as accurate as possible -- but it does involve
+ // locks and can potentially impact query processing on the target keyspace.
+ UpdateTableStats bool `protobuf:"varint,13,opt,name=update_table_stats,json=updateTableStats,proto3" json:"update_table_stats,omitempty"`
+ // If there are collation differences between the source and target, you can
+ // have rows that are identical but simply returned in a different order from
+ // MySQL. We will do a second pass to compare the rows for any actual
+ // differences in this case and this flag allows you to control the resources
+ // used for this operation.
+ // The default is 0, comparing no extra rows.
+ MaxExtraRowsToCompare int64 `protobuf:"varint,14,opt,name=max_extra_rows_to_compare,json=maxExtraRowsToCompare,proto3" json:"max_extra_rows_to_compare,omitempty"`
+ // Wait for the vdiff to complete before returning (making the call synchronous
+ // vs asynchronous by default).
+ Wait bool `protobuf:"varint,15,opt,name=wait,proto3" json:"wait,omitempty"`
+ // When wait is true, this is how frequently the vdiff progress will be shown.
+ WaitUpdateInterval *vttime.Duration `protobuf:"bytes,16,opt,name=wait_update_interval,json=waitUpdateInterval,proto3" json:"wait_update_interval,omitempty"`
+ // Automatically retry the vdiff if we encounter an error. This should almost
+ // always be set to true (default is false).
+ AutoRetry bool `protobuf:"varint,17,opt,name=auto_retry,json=autoRetry,proto3" json:"auto_retry,omitempty"`
+ // Include additional information in the vdiff report that is produced and
+ // stored on each target shard primary's _vt sidecar database.
+ Verbose bool `protobuf:"varint,18,opt,name=verbose,proto3" json:"verbose,omitempty"`
+ // The maximum number of rows to include in the row diff report (when
+ // differences are found) for each table on each shard.
+ // The default is 0, which will include no sample rows that differed.
+ MaxReportSampleRows int64 `protobuf:"varint,19,opt,name=max_report_sample_rows,json=maxReportSampleRows,proto3" json:"max_report_sample_rows,omitempty"`
+ // The maximum time that a diff of a single table can run on each target shard
+ // before it is stopped and then later resumed from where we left off. This
+ // can be helpful in limiting the impact of holding open that large transaction
+ // where we scan up to every row in the table.
+ // The default is 0 or no limit.
+ MaxDiffDuration *vttime.Duration `protobuf:"bytes,20,opt,name=max_diff_duration,json=maxDiffDuration,proto3" json:"max_diff_duration,omitempty"`
+ // At what length should we truncate the column values in the row diff report
+ // generated for each table on each shard when differences are detected.
+ // The default is 0, meaning do not truncate.
+ RowDiffColumnTruncateAt int64 `protobuf:"varint,21,opt,name=row_diff_column_truncate_at,json=rowDiffColumnTruncateAt,proto3" json:"row_diff_column_truncate_at,omitempty"`
+ // Auto start the vdiff after creating it.
+ // The default is true if no value is specified.
+ AutoStart *bool `protobuf:"varint,22,opt,name=auto_start,json=autoStart,proto3,oneof" json:"auto_start,omitempty"`
}
func (x *VDiffCreateRequest) Reset() {
diff --git a/go/vt/vtctl/workflow/server.go b/go/vt/vtctl/workflow/server.go
index a9242016f40..4a7d5ed7725 100644
--- a/go/vt/vtctl/workflow/server.go
+++ b/go/vt/vtctl/workflow/server.go
@@ -1850,6 +1850,9 @@ func (s *Server) VDiffCreate(ctx context.Context, req *vtctldatapb.VDiffCreateRe
tabletTypesStr := discovery.BuildTabletTypesString(req.TabletTypes, req.TabletSelectionPreference)
+ if req.Limit == 0 { // This would produce no useful results
+ req.Limit = math.MaxInt64
+ }
// This is a pointer so there's no ZeroValue in the message
// and an older v18 client will not provide it.
if req.MaxDiffDuration == nil {
@@ -1859,7 +1862,10 @@ func (s *Server) VDiffCreate(ctx context.Context, req *vtctldatapb.VDiffCreateRe
// client should always provide them, but we check anyway to
// be safe.
if req.FilteredReplicationWaitTime == nil {
- req.FilteredReplicationWaitTime = &vttimepb.Duration{}
+ // A value of 0 is not valid as the vdiff will never succeed.
+ req.FilteredReplicationWaitTime = &vttimepb.Duration{
+ Seconds: int64(DefaultTimeout.Seconds()),
+ }
}
if req.WaitUpdateInterval == nil {
req.WaitUpdateInterval = &vttimepb.Duration{}
diff --git a/proto/vtctldata.proto b/proto/vtctldata.proto
index 406503a4be3..a77c28c1e99 100644
--- a/proto/vtctldata.proto
+++ b/proto/vtctldata.proto
@@ -1896,27 +1896,85 @@ message ValidateVSchemaResponse {
}
message VDiffCreateRequest {
+ // The name of the workflow that we're diffing tables for.
string workflow = 1;
+ // The keyspace where the vreplication workflow is running.
string target_keyspace = 2;
+ // A unique identifier for the vdiff.
+ // If empty, a new UUID will be generated.
string uuid = 3;
+ // The cells to look for source tablets in.
+ // If empty, all cells are used.
repeated string source_cells = 4;
+ // The cells to look for target tablets in.
+ // If empty, all cells are used.
repeated string target_cells = 5;
+ // The tablet types to use when searching for tablets to use when streaming
+ // results.
+ // A default value of "replica,rdonly,primary" is used by the tablet picker.
repeated topodata.TabletType tablet_types = 6;
+ // When performing source tablet selection, look for candidates in the type
+ // order as they are listed in the tablet_types value (or the default of
+ // "replica,rdonly,primary" that the tablet picker uses).
+ // The default is ANY (0) and you can use INORDER (1) to e.g. ensure that a
+ // primary tablet is only used if there are no available replica or rdonly
+ // tablets.
tabletmanagerdata.TabletSelectionPreference tablet_selection_preference = 7;
+ // The tables to compare. If empty, all tables in the workflow are compared.
repeated string tables = 8;
+ // The maximum number of rows to compare for each table on each shard.
+ // The default is a max int64 value: 2^63 - 1 or 9,223,372,036,854,775,807.
int64 limit = 9;
+ // How long to wait for the relevant vreplication stream(s) to catch up when
+ // attempting to setup the table snapshots on the source and target to use for
+ // the diff on each shard.
+ // The default is 30s.
vttime.Duration filtered_replication_wait_time = 10;
+ // Include the MySQL query used for the diff in the report that is stored on
+ // each shard primary tablet in the _vt.vdiff_table records.
bool debug_query = 11;
+ // Only show the Primary Key columns in any row diff output. You would
+ // typically want to use this if you set the max_sample_rows very high.
bool only_p_ks = 12;
+ // Update the table statistics, using ANALYZE TABLE, on each table involved
+ // in the vdiff during initialization on each target shard. This will ensure
+ // that progress estimates are as accurate as possible -- but it does involve
+ // locks and can potentially impact query processing on the target keyspace.
bool update_table_stats = 13;
+ // If there are collation differences between the source and target, you can
+ // have rows that are identical but simply returned in a different order from
+ // MySQL. We will do a second pass to compare the rows for any actual
+ // differences in this case and this flag allows you to control the resources
+ // used for this operation.
+ // The default is 0, comparing no extra rows.
int64 max_extra_rows_to_compare = 14;
+ // Wait for the vdiff to complete before returning (making the call synchronous
+ // vs asynchronous by default).
bool wait = 15;
+ // When wait is true, this is how frequently the vdiff progress will be shown.
vttime.Duration wait_update_interval = 16;
+ // Automatically retry the vdiff if we encounter an error. This should almost
+ // always be set to true (default is false).
bool auto_retry = 17;
+ // Include additional information in the vdiff report that is produced and
+ // stored on each target shard primary's _vt sidecar database.
bool verbose = 18;
+ // The maximum number of rows to include in the row diff report (when
+ // differences are found) for each table on each shard.
+ // The default is 0, which will include no sample rows that differed.
int64 max_report_sample_rows = 19;
+ // The maximum time that a diff of a single table can run on each target shard
+ // before it is stopped and then later resumed from where we left off. This
+ // can be helpful in limiting the impact of holding open that large transaction
+ // where we scan up to every row in the table.
+ // The default is 0 or no limit.
vttime.Duration max_diff_duration = 20;
+ // At what length should we truncate the column values in the row diff report
+ // generated for each table on each shard when differences are detected.
+ // The default is 0, meaning do not truncate.
int64 row_diff_column_truncate_at = 21;
+ // Auto start the vdiff after creating it.
+ // The default is true if no value is specified.
optional bool auto_start = 22;
}
From dbf2c6ae136f12b85ccc665d97520d964a559034 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Tue, 22 Oct 2024 22:06:36 -0600
Subject: [PATCH 05/78] Build `vttestserver` in GHA and send Slack message on
Docker Build failure (#16963)
Signed-off-by: Florent Poinsard
---
.github/workflows/docker_build_images.yml | 115 ++++++++++++++++++----
docker/vttestserver/README.md | 17 ++++
2 files changed, 111 insertions(+), 21 deletions(-)
create mode 100644 docker/vttestserver/README.md
diff --git a/.github/workflows/docker_build_images.yml b/.github/workflows/docker_build_images.yml
index 6d5e12119b3..827946a43dc 100644
--- a/.github/workflows/docker_build_images.yml
+++ b/.github/workflows/docker_build_images.yml
@@ -1,4 +1,4 @@
-name: Docker Build Images
+name: Build Docker Images
on:
push:
branches:
@@ -8,14 +8,68 @@ on:
workflow_dispatch:
concurrency:
- group: format('{0}-{1}', ${{ github.ref }}, 'Docker Build Images (v20+)')
+ group: format('{0}-{1}', ${{ github.ref }}, 'Build Docker Images')
cancel-in-progress: true
permissions: read-all
jobs:
+ build_and_push_vttestserver:
+ name: Build and push vttestserver
+ runs-on: gh-hosted-runners-16cores-1
+ if: github.repository == 'vitessio/vitess'
+
+ strategy:
+ fail-fast: true
+ matrix:
+ branch: [ mysql80 ]
+
+ steps:
+ - name: Check out code
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Set Dockerfile path
+ run: |
+ echo "DOCKERFILE=./docker/vttestserver/Dockerfile.${{ matrix.branch }}" >> $GITHUB_ENV
+
+ - name: Build and push on main
+ if: startsWith(github.ref, 'refs/tags/') == false
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
+ with:
+ context: .
+ file: ${{ env.DOCKERFILE }}
+ push: true
+ tags: vitess/vttestserver:${{ matrix.branch }}
+
+ ######
+ # All code below only applies to new tags
+ ######
+ - name: Get the Git tag
+ if: startsWith(github.ref, 'refs/tags/')
+ run: echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+
+ - name: Set Docker tag name
+ if: startsWith(github.ref, 'refs/tags/')
+ run: |
+ echo "DOCKER_TAG=vitess/vttestserver:${TAG_NAME}-${{ matrix.branch }}" >> $GITHUB_ENV
+
+ - name: Build and push on tags
+ if: startsWith(github.ref, 'refs/tags/')
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
+ with:
+ context: .
+ file: ${{ env.DOCKERFILE }}
+ push: true
+ tags: ${{ env.DOCKER_TAG }}
+
build_and_push_lite:
- name: Build and push vitess/lite Docker images
+ name: Build and push lite
runs-on: ubuntu-latest
if: github.repository == 'vitessio/vitess'
@@ -26,10 +80,10 @@ jobs:
steps:
- name: Check out code
- uses: actions/checkout@v4
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Login to Docker Hub
- uses: docker/login-action@v3
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -43,8 +97,8 @@ jobs:
fi
- name: Build and push on main
- if: github.ref == 'refs/heads/main'
- uses: docker/build-push-action@v5
+ if: startsWith(github.ref, 'refs/tags/') == false
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: .
file: ${{ env.DOCKERFILE }}
@@ -69,7 +123,7 @@ jobs:
- name: Build and push on tags
if: startsWith(github.ref, 'refs/tags/')
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: .
file: ${{ env.DOCKERFILE }}
@@ -77,23 +131,24 @@ jobs:
tags: ${{ env.DOCKER_TAG }}
build_and_push_components:
- name: Build and push vitess components Docker images
- needs: build_and_push_lite
+ name: Build and push
runs-on: gh-hosted-runners-16cores-1
- if: github.repository == 'vitessio/vitess'
+ if: github.repository == 'vitessio/vitess' && needs.build_and_push_lite.result == 'success'
+ needs:
+ - build_and_push_lite
strategy:
fail-fast: true
matrix:
debian: [ bullseye, bookworm ]
- component: [ vtadmin, vtorc, vtgate, vttablet, mysqlctld, mysqlctl, vtctl, vtctlclient, vtctld, logrotate, logtail, vtbackup, vtexplain ]
+ component: [ vtadmin, vtorc, vtgate, vttablet, mysqlctld, mysqlctl, vtctl, vtctlclient, vtctld, vtctldclient, logrotate, logtail, vtbackup, vtexplain ]
steps:
- name: Check out code
- uses: actions/checkout@v4
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Login to Docker Hub
- uses: docker/login-action@v3
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -103,8 +158,8 @@ jobs:
echo "DOCKER_CTX=./docker/binaries/${{ matrix.component }}" >> $GITHUB_ENV
- name: Build and push on main latest tag
- if: github.ref == 'refs/heads/main' && matrix.debian == 'bookworm'
- uses: docker/build-push-action@v5
+ if: startsWith(github.ref, 'refs/tags/') == false && matrix.debian == 'bookworm'
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: ${{ env.DOCKER_CTX }}
push: true
@@ -114,8 +169,8 @@ jobs:
DEBIAN_VER=${{ matrix.debian }}-slim
- name: Build and push on main debian specific tag
- if: github.ref == 'refs/heads/main'
- uses: docker/build-push-action@v5
+ if: startsWith(github.ref, 'refs/tags/') == false
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: ${{ env.DOCKER_CTX }}
push: true
@@ -147,7 +202,7 @@ jobs:
# Build and Push component image to DOCKER_TAG, applies to both debian version
- name: Build and push on tags using Debian extension
if: startsWith(github.ref, 'refs/tags/')
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: ${{ env.DOCKER_CTX }}
push: true
@@ -160,11 +215,29 @@ jobs:
# It is fine to build a second time here when "matrix.debian == 'bookworm'" as we have cached the first build already
- name: Build and push on tags without Debian extension
if: startsWith(github.ref, 'refs/tags/') && matrix.debian == 'bookworm'
- uses: docker/build-push-action@v5
+ uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
with:
context: ${{ env.DOCKER_CTX }}
push: true
tags: ${{ env.DOCKER_TAG_DEFAULT_DEBIAN }}
build-args: |
VT_BASE_VER=${{ env.TAG_NAME }}
- DEBIAN_VER=${{ matrix.debian }}-slim
\ No newline at end of file
+ DEBIAN_VER=${{ matrix.debian }}-slim
+
+ slack_notification:
+ name: Slack Notification if failed
+ runs-on: ubuntu-latest
+ needs:
+ - build_and_push_vttestserver
+ - build_and_push_lite
+ - build_and_push_components
+ if: ${{ failure() }}
+ steps:
+ - name: Slack Workflow Notification
+ uses: Gamesight/slack-workflow-status@68bf00d0dbdbcb206c278399aa1ef6c14f74347a # v1.3.0
+ with:
+ repo_token: ${{secrets.GITHUB_TOKEN}}
+ slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}}
+ channel: '#docker-build-notifications'
+ name: 'Docker Build Notification'
+ icon_url: https://avatars.githubusercontent.com/u/33043890?s=96&v=4
\ No newline at end of file
diff --git a/docker/vttestserver/README.md b/docker/vttestserver/README.md
new file mode 100644
index 00000000000..1567cf30340
--- /dev/null
+++ b/docker/vttestserver/README.md
@@ -0,0 +1,17 @@
+## vttestserver docker image
+
+### How to build manually during a release
+
+If for whatever reason the automatic build did not happen for `vttestserver` during a release, or if it has failed,
+there is a way of building it by hand. Here is how it goes:
+
+```bash
+docker login
+
+# we first checkout to the git tag of the release we want to build
+# we assume in this example that we are releasing v21.0.0-rc1, but replace this by any other tag
+git checkout v21.0.0-rc1
+
+docker build -f docker/vtttestserver/Dockerfile.mysql80 -t vitess/vttestserver:v21.0.0-rc1-mysql80 .
+docker push vitess/vttestserver:v21.0.0-rc1-mysql80
+```
\ No newline at end of file
From f8128355d56e9aa9c1af1dd4c0299cd9baf130a8 Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Tue, 22 Oct 2024 23:39:49 -0600
Subject: [PATCH 06/78] [main] Copy `v21.0.0-RC2` release notes (#17048)
Signed-off-by: Rohit Nayak
Co-authored-by: Rohit Nayak
---
changelog/21.0/21.0.0/changelog.md | 41 ++++++++++++++++++--------
changelog/21.0/21.0.0/release_notes.md | 7 ++++-
changelog/21.0/21.0.0/summary.md | 9 ------
3 files changed, 35 insertions(+), 22 deletions(-)
diff --git a/changelog/21.0/21.0.0/changelog.md b/changelog/21.0/21.0.0/changelog.md
index 68f00e00818..5b917f95867 100644
--- a/changelog/21.0/21.0.0/changelog.md
+++ b/changelog/21.0/21.0.0/changelog.md
@@ -6,7 +6,8 @@
#### Backup and Restore
* fixing issue with xtrabackup and long gtids [#16304](https://github.com/vitessio/vitess/pull/16304)
* Fix `xtrabackup`/`builtin` context when doing `AddFiles` [#16806](https://github.com/vitessio/vitess/pull/16806)
- * Fail fast when builtinbackup fails to restore a single file [#16856](https://github.com/vitessio/vitess/pull/16856)
+ * Fail fast when builtinbackup fails to restore a single file [#16856](https://github.com/vitessio/vitess/pull/16856)
+ * [release-21.0] fix releasing the global read lock when mysqlshell backup fails (#17000) [#17012](https://github.com/vitessio/vitess/pull/17012)
#### Build/CI
* Fix echo command in build docker images workflow [#16350](https://github.com/vitessio/vitess/pull/16350)
* CI: Remove build docker images CI action until we figure out if that it is affecting our rate limits [#16759](https://github.com/vitessio/vitess/pull/16759)
@@ -63,7 +64,8 @@
* VTTablet: smartconnpool: notify all expired waiters [#16897](https://github.com/vitessio/vitess/pull/16897)
* [release-21.0] fix issue with json unmarshalling of operators with space in them [#16933](https://github.com/vitessio/vitess/pull/16933)
* [release-21.0] VTGate MoveTables Buffering: Fix panic when buffering is disabled (#16922) [#16936](https://github.com/vitessio/vitess/pull/16936)
- * [release-21.0] fixes bugs around expression precedence and LIKE (#16934) [#16947](https://github.com/vitessio/vitess/pull/16947)
+ * [release-21.0] fixes bugs around expression precedence and LIKE (#16934) [#16947](https://github.com/vitessio/vitess/pull/16947)
+ * [release-21.0] [Direct PR] bugfix: add HAVING columns inside derived tables (#16976) [#16980](https://github.com/vitessio/vitess/pull/16980)
#### Schema Tracker
* Log and ignore the error in reading udfs in schema tracker [#16630](https://github.com/vitessio/vitess/pull/16630)
#### Throttler
@@ -86,7 +88,9 @@
* VTGate VStream: Ensure reasonable delivery time for reshard journal event [#16639](https://github.com/vitessio/vitess/pull/16639)
* Workflow Status: change logic to determine whether `MoveTables` writes are switched [#16731](https://github.com/vitessio/vitess/pull/16731)
* Migrate Workflow: Scope vindex names correctly when target and source keyspace have different names [#16769](https://github.com/vitessio/vitess/pull/16769)
- * VReplication: Support both vindex col def formats when initing target sequences [#16862](https://github.com/vitessio/vitess/pull/16862)
+ * VReplication: Support both vindex col def formats when initing target sequences [#16862](https://github.com/vitessio/vitess/pull/16862)
+ * [release-21.0] fix: Infinite logs in case of non-existent stream logs (#17004) [#17014](https://github.com/vitessio/vitess/pull/17014)
+ * [release-21.0] VReplication: Support reversing read-only traffic in vtctldclient (#16920) [#17015](https://github.com/vitessio/vitess/pull/17015)
#### VTAdmin
* VTAdmin: Upgrade websockets js package [#16504](https://github.com/vitessio/vitess/pull/16504)
* VTAdmin: Fix serve-handler's path-to-regexp dep and add default schema refresh [#16778](https://github.com/vitessio/vitess/pull/16778)
@@ -94,7 +98,8 @@
* vtcombo: close query service on drop database [#16606](https://github.com/vitessio/vitess/pull/16606)
#### VTGate
* Fix `RemoveTablet` during `TabletExternallyReparented` causing connection issues [#16371](https://github.com/vitessio/vitess/pull/16371)
- * Fix panic in schema tracker in presence of keyspace routing rules [#16383](https://github.com/vitessio/vitess/pull/16383)
+ * Fix panic in schema tracker in presence of keyspace routing rules [#16383](https://github.com/vitessio/vitess/pull/16383)
+ * [release-21.0] Fix deadlock between health check and topology watcher (#16995) [#17010](https://github.com/vitessio/vitess/pull/17010)
#### VTTablet
* Fix race in `replicationLagModule` of `go/vt/throttle` [#16078](https://github.com/vitessio/vitess/pull/16078)
#### VTorc
@@ -119,7 +124,8 @@
* CI: Use valid tag for the ossf-scorecard action [#16730](https://github.com/vitessio/vitess/pull/16730)
* `endtoend`: better error reporting in Online DDL MySQL execution tests [#16786](https://github.com/vitessio/vitess/pull/16786)
* Docker Images Build CI action: add updated version from release-20.0 back in prep for v21 release [#16799](https://github.com/vitessio/vitess/pull/16799)
- * Use `go-version-file: go.mod` in CI [#16841](https://github.com/vitessio/vitess/pull/16841)
+ * Use `go-version-file: go.mod` in CI [#16841](https://github.com/vitessio/vitess/pull/16841)
+ * [release-21.0] Flakes: Address flakes in TestMoveTables* unit tests (#16942) [#16951](https://github.com/vitessio/vitess/pull/16951)
#### Docker
* Docker: Update node vtadmin version [#16147](https://github.com/vitessio/vitess/pull/16147)
* Fix `docker_lite_push` make target [#16662](https://github.com/vitessio/vitess/pull/16662)
@@ -134,7 +140,8 @@
* CI: wait-for rather than 'assume' in Online DDL flow [#16210](https://github.com/vitessio/vitess/pull/16210)
* A couple changes in Online DDL CI [#16272](https://github.com/vitessio/vitess/pull/16272)
#### VReplication
- * CI: Lower resources used for TestVtctldMigrateSharded [#16875](https://github.com/vitessio/vitess/pull/16875)
+ * CI: Lower resources used for TestVtctldMigrateSharded [#16875](https://github.com/vitessio/vitess/pull/16875)
+ * [release-21.0] VReplication: Restore previous minimal e2e test behavior (#17016) [#17017](https://github.com/vitessio/vitess/pull/17017)
#### VTAdmin
* Update micromatch to 4.0.8 [#16660](https://github.com/vitessio/vitess/pull/16660)
#### VTGate
@@ -158,7 +165,8 @@
#### Documentation
* Changelog 20.0: Fix broken links [#16048](https://github.com/vitessio/vitess/pull/16048)
* copy editing changes to summary [#16880](https://github.com/vitessio/vitess/pull/16880)
- * Add blurb about experimental 8.4 support [#16886](https://github.com/vitessio/vitess/pull/16886)
+ * Add blurb about experimental 8.4 support [#16886](https://github.com/vitessio/vitess/pull/16886)
+ * [release-21.0] Add missing changelog for PR #16852 (#17002) [#17006](https://github.com/vitessio/vitess/pull/17006)
#### General
* release notes: update dml related release notes [#16241](https://github.com/vitessio/vitess/pull/16241)
#### VReplication
@@ -167,13 +175,15 @@
* clarify collations are also supported for `db_charset` [#16423](https://github.com/vitessio/vitess/pull/16423)
### Enhancement
#### Build/CI
- * Improve the queries upgrade/downgrade CI workflow by using same test code version as binary [#16494](https://github.com/vitessio/vitess/pull/16494)
+ * Improve the queries upgrade/downgrade CI workflow by using same test code version as binary [#16494](https://github.com/vitessio/vitess/pull/16494)
+ * [release-21.0] Change upgrade test to still use the older version of tests (#16937) [#16970](https://github.com/vitessio/vitess/pull/16970)
#### CLI
* Support specifying expected primary in ERS/PRS [#16852](https://github.com/vitessio/vitess/pull/16852)
#### Cluster management
* Prefer replicas that have innodb buffer pool populated in PRS [#16374](https://github.com/vitessio/vitess/pull/16374)
* Allow cross cell promotion in PRS [#16461](https://github.com/vitessio/vitess/pull/16461)
- * Fix: Errant GTID detection on the replicas when they set replication source [#16833](https://github.com/vitessio/vitess/pull/16833)
+ * Fix: Errant GTID detection on the replicas when they set replication source [#16833](https://github.com/vitessio/vitess/pull/16833)
+ * [release-21.0] [Direct PR] Add RPC to read the reparent journal position [#16982](https://github.com/vitessio/vitess/pull/16982)
#### Docker
* Remove the `bootstrap` dependency on the Docker images we ship [#16339](https://github.com/vitessio/vitess/pull/16339)
#### Evalengine
@@ -245,7 +255,8 @@
* VTAdmin: Initiate workflow details tab [#16570](https://github.com/vitessio/vitess/pull/16570)
* VTAdmin: Workflow status endpoint [#16587](https://github.com/vitessio/vitess/pull/16587)
* VTAdmin(API): Add workflow start/stop endpoint [#16658](https://github.com/vitessio/vitess/pull/16658)
- * VTAdmin: Distributed transactions list on VTAdmin [#16793](https://github.com/vitessio/vitess/pull/16793)
+ * VTAdmin: Distributed transactions list on VTAdmin [#16793](https://github.com/vitessio/vitess/pull/16793)
+ * [Release 21.0] [Direct PR] Conclude txn in VTAdmin and `GetUnresolvedTransactions` bug fix [#16949](https://github.com/vitessio/vitess/pull/16949)
#### VTCombo
* VTCombo: Ensure VSchema exists when creating keyspace [#16094](https://github.com/vitessio/vitess/pull/16094)
#### VTGate
@@ -269,7 +280,7 @@
* VTAdmin(web): Add workflow start/stop actions [#16675](https://github.com/vitessio/vitess/pull/16675)
* VTAdmin(web): Some tweaks in the workflow details [#16706](https://github.com/vitessio/vitess/pull/16706)
* VTAdmin(web): Initiate MoveTables workflow create screen [#16707](https://github.com/vitessio/vitess/pull/16707)
-### Feature Request
+### Feature
#### Backup and Restore
* adding new mysql shell backup engine [#16295](https://github.com/vitessio/vitess/pull/16295)
* select backup engine in Backup() and ignore engines in RestoreFromBackup() [#16428](https://github.com/vitessio/vitess/pull/16428)
@@ -388,7 +399,10 @@
* fix: order by subquery planning [#16049](https://github.com/vitessio/vitess/pull/16049)
* feat: add a LIMIT 1 on EXISTS subqueries to limit network overhead [#16153](https://github.com/vitessio/vitess/pull/16153)
* bugfix: Allow cross-keyspace joins [#16520](https://github.com/vitessio/vitess/pull/16520)
+ * [release-21.0] [Direct PR] fix: route engine to handle column truncation for execute after lookup (#16981) [#16986](https://github.com/vitessio/vitess/pull/16986)
### Release
+#### Build/CI
+ * [release-21.0] Fix the release workflow (#16964) [#17020](https://github.com/vitessio/vitess/pull/17020)
#### General
* [main] Copy `v20.0.0-RC1` release notes [#16140](https://github.com/vitessio/vitess/pull/16140)
* [main] Copy `v20.0.0-RC2` release notes [#16234](https://github.com/vitessio/vitess/pull/16234)
@@ -400,6 +414,8 @@
* [main] Copy `v19.0.6` release notes [#16752](https://github.com/vitessio/vitess/pull/16752)
* [main] Copy `v20.0.2` release notes [#16755](https://github.com/vitessio/vitess/pull/16755)
* [release-21.0] Code Freeze for `v21.0.0-RC1` [#16912](https://github.com/vitessio/vitess/pull/16912)
+ * [release-21.0] Release of `v21.0.0-RC1` [#16950](https://github.com/vitessio/vitess/pull/16950)
+ * [release-21.0] Bump to `v21.0.0-SNAPSHOT` after the `v21.0.0-RC1` release [#16955](https://github.com/vitessio/vitess/pull/16955)
### Testing
#### Build/CI
* Online DDL flow CI: Update golang version to 1.22.4 [#16066](https://github.com/vitessio/vitess/pull/16066)
@@ -407,7 +423,8 @@
* Fix error contain checks in vtgate package [#16672](https://github.com/vitessio/vitess/pull/16672)
* Don't show skipped tests in summary action [#16859](https://github.com/vitessio/vitess/pull/16859)
#### Cluster management
- * Add semi-sync plugin test in main [#16372](https://github.com/vitessio/vitess/pull/16372)
+ * Add semi-sync plugin test in main [#16372](https://github.com/vitessio/vitess/pull/16372)
+ * [release-21.0] Flaky test fixes (#16940) [#16960](https://github.com/vitessio/vitess/pull/16960)
#### General
* CI Summary Addition [#16143](https://github.com/vitessio/vitess/pull/16143)
* Add Summary in unit-race workflow [#16164](https://github.com/vitessio/vitess/pull/16164)
diff --git a/changelog/21.0/21.0.0/release_notes.md b/changelog/21.0/21.0.0/release_notes.md
index be51e73767a..a97adc5ad64 100644
--- a/changelog/21.0/21.0.0/release_notes.md
+++ b/changelog/21.0/21.0.0/release_notes.md
@@ -24,6 +24,7 @@
- **[Experimental MySQL 8.4 support](#experimental-mysql-84)**
- **[Current Errant GTIDs Count Metric](#errant-gtid-metric)**
- **[vtctldclient ChangeTabletTags](#vtctldclient-changetablettags)**
+ - **[Support for specifying expected primary in reparents](#reparents-expectedprimary)**
## Major Changes
@@ -236,10 +237,14 @@ This metric shows the current count of the errant GTIDs in the tablets.
The `vtctldclient` command `ChangeTabletTags` was added to allow the tags of a tablet to be changed dynamically.
+### Support specifying expected primary in reparents
+
+The `EmergencyReparentShard` and `PlannedReparentShard` commands and RPCs now support specifying a primary we expect to still be the current primary in order for a reparent operation to be processed. This allows reparents to be conditional on a specific state being true.
+
------------
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/21.0/21.0.0/changelog.md).
-The release includes 338 merged Pull Requests.
+The release includes 354 merged Pull Requests.
Thanks to all our contributors: @GrahamCampbell, @GuptaManan100, @Utkar5hM, @anshikavashistha, @app/dependabot, @app/vitess-bot, @arthurschreiber, @beingnoble03, @brendar, @cameronmccord2, @chrism1001, @cuishuang, @dbussink, @deepthi, @demmer, @frouioui, @harshit-gangal, @harshitasao, @icyflame, @kirtanchandak, @mattlord, @mattrobenolt, @maxenglander, @mcrauwel, @notfelineit, @perminov, @rafer, @rohit-nayak-ps, @runewake2, @rvrangel, @shanth96, @shlomi-noach, @systay, @timvaillancourt, @vitess-bot
diff --git a/changelog/21.0/21.0.0/summary.md b/changelog/21.0/21.0.0/summary.md
index be8304fcc26..9562c127952 100644
--- a/changelog/21.0/21.0.0/summary.md
+++ b/changelog/21.0/21.0.0/summary.md
@@ -18,7 +18,6 @@
- **[Dynamic VReplication Configuration](#dynamic-vreplication-configuration)**
- **[Reference Table Materialization](#reference-table-materialization)**
- **[New VEXPLAIN Modes: TRACE and KEYS](#new-vexplain-modes)**
- - **[Errant GTID Detection on VTTablets](#errant-gtid-vttablet)**
- **[Automatically Replace MySQL auto_increment Clauses with Vitess Sequences](#auto-replace-mysql-autoinc-with-seq)**
- **[Experimental MySQL 8.4 support](#experimental-mysql-84)**
- **[Current Errant GTIDs Count Metric](#errant-gtid-metric)**
@@ -208,14 +207,6 @@ filter columns (potential candidates for indexes, primary keys, or sharding keys
These new `VEXPLAIN` modes enhance Vitess's query analysis capabilities, allowing for more informed decisions about sharding
strategies and query optimization.
-### Errant GTID Detection on VTTablets
-
-VTTablets now run an errant GTID detection logic before they join the replication stream. So, if a replica has an errant GTID, it will
-not start replicating from the primary. This protects us from running into situations which are very difficult to recover from.
-
-For users running with the vitess-operator on Kubernetes, this change means that replica tablets with errant GTIDs will have broken
-replication and will report as unready. Users will need to manually replace and clean up these errant replica tablets.
-
### Automatically Replace MySQL auto_increment Clauses with Vitess Sequences
In https://github.com/vitessio/vitess/pull/16860 we added support for replacing MySQL `auto_increment` clauses with [Vitess Sequences](https://vitess.io/docs/reference/features/vitess-sequences/), performing all of the setup and initialization
From 17607fa5e359fc1124cb7dafcd1b5b1d9188b945 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Wed, 23 Oct 2024 02:13:44 -0400
Subject: [PATCH 07/78] VReplication: Properly support cancel and delete for
multi-tenant MoveTables (#16906)
Signed-off-by: Matt Lord
---
.../command/vreplication/common/cancel.go | 7 +
.../vreplication/movetables/movetables.go | 5 +
.../command/vreplication/workflow/delete.go | 2 +
.../command/vreplication/workflow/workflow.go | 2 +
.../vreplication/multi_tenant_test.go | 24 +-
.../endtoend/vreplication/wrappers_test.go | 3 +-
.../tabletmanagerdata/tabletmanagerdata.pb.go | 1771 +++++++++--------
.../tabletmanagerdata_vtproto.pb.go | 409 ++++
.../tabletmanagerservice.pb.go | 773 +++----
.../tabletmanagerservice_grpc.pb.go | 36 +
go/vt/proto/vtctldata/vtctldata.pb.go | 394 ++--
go/vt/proto/vtctldata/vtctldata_vtproto.pb.go | 28 +
go/vt/vtcombo/tablet_map.go | 4 +
go/vt/vtctl/workflow/framework_test.go | 35 +-
go/vt/vtctl/workflow/server.go | 195 +-
go/vt/vtctl/workflow/server_test.go | 316 ++-
go/vt/vtctl/workflow/traffic_switcher.go | 31 +-
go/vt/vtctl/workflow/workflow_state_test.go | 6 +-
go/vt/vttablet/faketmclient/fake_client.go | 4 +
go/vt/vttablet/grpctmclient/client.go | 13 +
go/vt/vttablet/grpctmserver/server.go | 7 +
.../vttablet/tabletmanager/framework_test.go | 30 +-
go/vt/vttablet/tabletmanager/rpc_agent.go | 1 +
go/vt/vttablet/tabletmanager/rpc_throttler.go | 5 +-
.../tabletmanager/rpc_vreplication.go | 98 +
.../tabletmanager/rpc_vreplication_test.go | 190 +-
.../tabletmanager/vreplication/engine.go | 4 +
go/vt/vttablet/tmclient/rpc_client_api.go | 1 +
go/vt/vttablet/tmrpctest/test_tm_rpc.go | 5 +
proto/tabletmanagerdata.proto | 12 +
proto/tabletmanagerservice.proto | 1 +
proto/vtctldata.proto | 4 +
web/vtadmin/src/proto/vtadmin.d.ts | 200 ++
web/vtadmin/src/proto/vtadmin.js | 488 +++++
34 files changed, 3601 insertions(+), 1503 deletions(-)
diff --git a/go/cmd/vtctldclient/command/vreplication/common/cancel.go b/go/cmd/vtctldclient/command/vreplication/common/cancel.go
index 838a95faad9..6b664a190bc 100644
--- a/go/cmd/vtctldclient/command/vreplication/common/cancel.go
+++ b/go/cmd/vtctldclient/command/vreplication/common/cancel.go
@@ -21,6 +21,8 @@ import (
"sort"
"github.com/spf13/cobra"
+ "google.golang.org/grpc/codes"
+ "google.golang.org/grpc/status"
"vitess.io/vitess/go/cmd/vtctldclient/cli"
@@ -31,6 +33,7 @@ var CancelOptions = struct {
KeepData bool
KeepRoutingRules bool
Shards []string
+ DeleteBatchSize int64
}{}
func GetCancelCommand(opts *SubCommandsOpts) *cobra.Command {
@@ -60,9 +63,13 @@ func commandCancel(cmd *cobra.Command, args []string) error {
KeepData: CancelOptions.KeepData,
KeepRoutingRules: CancelOptions.KeepRoutingRules,
Shards: CancelOptions.Shards,
+ DeleteBatchSize: CancelOptions.DeleteBatchSize,
}
resp, err := GetClient().WorkflowDelete(GetCommandCtx(), req)
if err != nil {
+ if grpcerr, ok := status.FromError(err); ok && (grpcerr.Code() == codes.DeadlineExceeded) {
+ return fmt.Errorf("Cancel action timed out. Please try again and the work will pick back up where it left off. Note that you can control the timeout using the --action_timeout flag and the delete batch size with --delete-batch-size.")
+ }
return err
}
diff --git a/go/cmd/vtctldclient/command/vreplication/movetables/movetables.go b/go/cmd/vtctldclient/command/vreplication/movetables/movetables.go
index 8d3b95b80c2..969c05ec08d 100644
--- a/go/cmd/vtctldclient/command/vreplication/movetables/movetables.go
+++ b/go/cmd/vtctldclient/command/vreplication/movetables/movetables.go
@@ -28,6 +28,10 @@ import (
vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata"
)
+// The default batch size to use when deleting tenant data
+// if a multi-tenant migration is canceled or deleted.
+const DefaultDeleteBatchSize = 1000
+
var (
// base is the base command for all actions related to MoveTables.
base = &cobra.Command{
@@ -108,6 +112,7 @@ func registerCommands(root *cobra.Command) {
cancel := common.GetCancelCommand(opts)
cancel.Flags().BoolVar(&common.CancelOptions.KeepData, "keep-data", false, "Keep the partially copied table data from the MoveTables workflow in the target keyspace.")
cancel.Flags().BoolVar(&common.CancelOptions.KeepRoutingRules, "keep-routing-rules", false, "Keep the routing rules created for the MoveTables workflow.")
+ cancel.Flags().Int64Var(&common.CancelOptions.DeleteBatchSize, "delete-batch-size", DefaultDeleteBatchSize, "When cleaning up the migrated data in tables moved as part of a multi-tenant workflow, delete the records in batches of this size.")
common.AddShardSubsetFlag(cancel, &common.CancelOptions.Shards)
base.AddCommand(cancel)
}
diff --git a/go/cmd/vtctldclient/command/vreplication/workflow/delete.go b/go/cmd/vtctldclient/command/vreplication/workflow/delete.go
index 3739979ff5f..6d78c3b4077 100644
--- a/go/cmd/vtctldclient/command/vreplication/workflow/delete.go
+++ b/go/cmd/vtctldclient/command/vreplication/workflow/delete.go
@@ -32,6 +32,7 @@ var (
deleteOptions = struct {
KeepData bool
KeepRoutingRules bool
+ DeleteBatchSize int64
}{}
// delete makes a WorkflowDelete gRPC call to a vtctld.
@@ -55,6 +56,7 @@ func commandDelete(cmd *cobra.Command, args []string) error {
KeepData: deleteOptions.KeepData,
KeepRoutingRules: deleteOptions.KeepRoutingRules,
Shards: baseOptions.Shards,
+ DeleteBatchSize: deleteOptions.DeleteBatchSize,
}
resp, err := common.GetClient().WorkflowDelete(common.GetCommandCtx(), req)
if err != nil {
diff --git a/go/cmd/vtctldclient/command/vreplication/workflow/workflow.go b/go/cmd/vtctldclient/command/vreplication/workflow/workflow.go
index 2961b8010be..63de3b70cee 100644
--- a/go/cmd/vtctldclient/command/vreplication/workflow/workflow.go
+++ b/go/cmd/vtctldclient/command/vreplication/workflow/workflow.go
@@ -20,6 +20,7 @@ import (
"github.com/spf13/cobra"
"vitess.io/vitess/go/cmd/vtctldclient/command/vreplication/common"
+ "vitess.io/vitess/go/cmd/vtctldclient/command/vreplication/movetables"
"vitess.io/vitess/go/vt/topo/topoproto"
)
@@ -60,6 +61,7 @@ func registerCommands(root *cobra.Command) {
delete.MarkFlagRequired("workflow")
delete.Flags().BoolVar(&deleteOptions.KeepData, "keep-data", false, "Keep the partially copied table data from the workflow in the target keyspace.")
delete.Flags().BoolVar(&deleteOptions.KeepRoutingRules, "keep-routing-rules", false, "Keep the routing rules created for the workflow.")
+ delete.Flags().Int64Var(&deleteOptions.DeleteBatchSize, "delete-batch-size", movetables.DefaultDeleteBatchSize, "When cleaning up the migrated data in tables moved as part of a multi-tenant MoveTables workflow, delete the records in batches of this size.")
common.AddShardSubsetFlag(delete, &baseOptions.Shards)
base.AddCommand(delete)
diff --git a/go/test/endtoend/vreplication/multi_tenant_test.go b/go/test/endtoend/vreplication/multi_tenant_test.go
index b10395b08c8..c82ee8a620f 100644
--- a/go/test/endtoend/vreplication/multi_tenant_test.go
+++ b/go/test/endtoend/vreplication/multi_tenant_test.go
@@ -196,12 +196,26 @@ func TestMultiTenantSimple(t *testing.T) {
require.Zero(t, len(getKeyspaceRoutingRules(t, vc).Rules))
- mt.Create()
- confirmKeyspacesRoutedTo(t, sourceKeyspace, "s1", "t1", nil)
- validateKeyspaceRoutingRules(t, vc, initialRules)
+ createFunc := func() {
+ mt.Create()
+ confirmKeyspacesRoutedTo(t, sourceKeyspace, "s1", "t1", nil)
+ validateKeyspaceRoutingRules(t, vc, initialRules)
- lastIndex = insertRows(lastIndex, sourceKeyspace)
- waitForWorkflowState(t, vc, fmt.Sprintf("%s.%s", targetKeyspace, mt.workflowName), binlogdatapb.VReplicationWorkflowState_Running.String())
+ lastIndex = insertRows(lastIndex, sourceKeyspace)
+ waitForWorkflowState(t, vc, fmt.Sprintf("%s.%s", targetKeyspace, mt.workflowName), binlogdatapb.VReplicationWorkflowState_Running.String())
+ }
+
+ t.Run("cancel", func(t *testing.T) {
+ // First let's test canceling the workflow to ensure that it properly
+ // cleans up all of the data.
+ createFunc()
+ mt.Cancel()
+ rowCount := getRowCount(t, vtgateConn, fmt.Sprintf("%s.%s", targetKeyspace, "t1"))
+ require.Zero(t, rowCount)
+ })
+
+ // Create again and run it to completion.
+ createFunc()
vdiff(t, targetKeyspace, workflowName, defaultCellName, false, true, nil)
mt.SwitchReads()
diff --git a/go/test/endtoend/vreplication/wrappers_test.go b/go/test/endtoend/vreplication/wrappers_test.go
index ab9a8eb9dfb..d1fff1af1c6 100644
--- a/go/test/endtoend/vreplication/wrappers_test.go
+++ b/go/test/endtoend/vreplication/wrappers_test.go
@@ -298,7 +298,8 @@ func (v VtctldMoveTables) ReverseWrites() {
}
func (v VtctldMoveTables) Cancel() {
- v.exec("Cancel")
+ args := []string{"Cancel", "--delete-batch-size=500"}
+ v.exec(args...)
}
func (v VtctldMoveTables) Complete() {
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
index 5e537e74688..d28bad7c508 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
@@ -5663,6 +5663,103 @@ func (x *CreateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
return nil
}
+type DeleteTableDataRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The key is the table that we want to delete data from.
+ // The value is the filter or WHERE clause to use when deleting
+ // data in the table.
+ TableFilters map[string]string `protobuf:"bytes,1,rep,name=table_filters,json=tableFilters,proto3" json:"table_filters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // BatchSize is the number of rows to delete in a single batch.
+ BatchSize int64 `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"`
+}
+
+func (x *DeleteTableDataRequest) Reset() {
+ *x = DeleteTableDataRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteTableDataRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteTableDataRequest) ProtoMessage() {}
+
+func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteTableDataRequest.ProtoReflect.Descriptor instead.
+func (*DeleteTableDataRequest) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
+}
+
+func (x *DeleteTableDataRequest) GetTableFilters() map[string]string {
+ if x != nil {
+ return x.TableFilters
+ }
+ return nil
+}
+
+func (x *DeleteTableDataRequest) GetBatchSize() int64 {
+ if x != nil {
+ return x.BatchSize
+ }
+ return 0
+}
+
+type DeleteTableDataResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *DeleteTableDataResponse) Reset() {
+ *x = DeleteTableDataResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteTableDataResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteTableDataResponse) ProtoMessage() {}
+
+func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteTableDataResponse.ProtoReflect.Descriptor instead.
+func (*DeleteTableDataResponse) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
+}
+
type DeleteVReplicationWorkflowRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -5674,7 +5771,7 @@ type DeleteVReplicationWorkflowRequest struct {
func (x *DeleteVReplicationWorkflowRequest) Reset() {
*x = DeleteVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5687,7 +5784,7 @@ func (x *DeleteVReplicationWorkflowRequest) String() string {
func (*DeleteVReplicationWorkflowRequest) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5700,7 +5797,7 @@ func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
}
func (x *DeleteVReplicationWorkflowRequest) GetWorkflow() string {
@@ -5721,7 +5818,7 @@ type DeleteVReplicationWorkflowResponse struct {
func (x *DeleteVReplicationWorkflowResponse) Reset() {
*x = DeleteVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5734,7 +5831,7 @@ func (x *DeleteVReplicationWorkflowResponse) String() string {
func (*DeleteVReplicationWorkflowResponse) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5747,7 +5844,7 @@ func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
}
func (x *DeleteVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -5766,7 +5863,7 @@ type HasVReplicationWorkflowsRequest struct {
func (x *HasVReplicationWorkflowsRequest) Reset() {
*x = HasVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5779,7 +5876,7 @@ func (x *HasVReplicationWorkflowsRequest) String() string {
func (*HasVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5792,7 +5889,7 @@ func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
}
type HasVReplicationWorkflowsResponse struct {
@@ -5806,7 +5903,7 @@ type HasVReplicationWorkflowsResponse struct {
func (x *HasVReplicationWorkflowsResponse) Reset() {
*x = HasVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5819,7 +5916,7 @@ func (x *HasVReplicationWorkflowsResponse) String() string {
func (*HasVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5832,7 +5929,7 @@ func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
}
func (x *HasVReplicationWorkflowsResponse) GetHas() bool {
@@ -5858,7 +5955,7 @@ type ReadVReplicationWorkflowsRequest struct {
func (x *ReadVReplicationWorkflowsRequest) Reset() {
*x = ReadVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5871,7 +5968,7 @@ func (x *ReadVReplicationWorkflowsRequest) String() string {
func (*ReadVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5884,7 +5981,7 @@ func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
}
func (x *ReadVReplicationWorkflowsRequest) GetIncludeIds() []int32 {
@@ -5940,7 +6037,7 @@ type ReadVReplicationWorkflowsResponse struct {
func (x *ReadVReplicationWorkflowsResponse) Reset() {
*x = ReadVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5953,7 +6050,7 @@ func (x *ReadVReplicationWorkflowsResponse) String() string {
func (*ReadVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5966,7 +6063,7 @@ func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ReadVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
}
func (x *ReadVReplicationWorkflowsResponse) GetWorkflows() []*ReadVReplicationWorkflowResponse {
@@ -5987,7 +6084,7 @@ type ReadVReplicationWorkflowRequest struct {
func (x *ReadVReplicationWorkflowRequest) Reset() {
*x = ReadVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6000,7 +6097,7 @@ func (x *ReadVReplicationWorkflowRequest) String() string {
func (*ReadVReplicationWorkflowRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6013,7 +6110,7 @@ func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
}
func (x *ReadVReplicationWorkflowRequest) GetWorkflow() string {
@@ -6045,7 +6142,7 @@ type ReadVReplicationWorkflowResponse struct {
func (x *ReadVReplicationWorkflowResponse) Reset() {
*x = ReadVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6058,7 +6155,7 @@ func (x *ReadVReplicationWorkflowResponse) String() string {
func (*ReadVReplicationWorkflowResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6071,7 +6168,7 @@ func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
}
func (x *ReadVReplicationWorkflowResponse) GetWorkflow() string {
@@ -6167,7 +6264,7 @@ type ValidateVReplicationPermissionsRequest struct {
func (x *ValidateVReplicationPermissionsRequest) Reset() {
*x = ValidateVReplicationPermissionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6180,7 +6277,7 @@ func (x *ValidateVReplicationPermissionsRequest) String() string {
func (*ValidateVReplicationPermissionsRequest) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6193,7 +6290,7 @@ func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Mes
// Deprecated: Use ValidateVReplicationPermissionsRequest.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
}
type ValidateVReplicationPermissionsResponse struct {
@@ -6211,7 +6308,7 @@ type ValidateVReplicationPermissionsResponse struct {
func (x *ValidateVReplicationPermissionsResponse) Reset() {
*x = ValidateVReplicationPermissionsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6224,7 +6321,7 @@ func (x *ValidateVReplicationPermissionsResponse) String() string {
func (*ValidateVReplicationPermissionsResponse) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6237,7 +6334,7 @@ func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Me
// Deprecated: Use ValidateVReplicationPermissionsResponse.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
}
func (x *ValidateVReplicationPermissionsResponse) GetUser() string {
@@ -6270,7 +6367,7 @@ type VDiffRequest struct {
func (x *VDiffRequest) Reset() {
*x = VDiffRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6283,7 +6380,7 @@ func (x *VDiffRequest) String() string {
func (*VDiffRequest) ProtoMessage() {}
func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6296,7 +6393,7 @@ func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffRequest.ProtoReflect.Descriptor instead.
func (*VDiffRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
}
func (x *VDiffRequest) GetKeyspace() string {
@@ -6354,7 +6451,7 @@ type VDiffResponse struct {
func (x *VDiffResponse) Reset() {
*x = VDiffResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6367,7 +6464,7 @@ func (x *VDiffResponse) String() string {
func (*VDiffResponse) ProtoMessage() {}
func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6380,7 +6477,7 @@ func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffResponse.ProtoReflect.Descriptor instead.
func (*VDiffResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
}
func (x *VDiffResponse) GetId() int64 {
@@ -6418,7 +6515,7 @@ type VDiffPickerOptions struct {
func (x *VDiffPickerOptions) Reset() {
*x = VDiffPickerOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6431,7 +6528,7 @@ func (x *VDiffPickerOptions) String() string {
func (*VDiffPickerOptions) ProtoMessage() {}
func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6444,7 +6541,7 @@ func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffPickerOptions.ProtoReflect.Descriptor instead.
func (*VDiffPickerOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
}
func (x *VDiffPickerOptions) GetTabletTypes() string {
@@ -6484,7 +6581,7 @@ type VDiffReportOptions struct {
func (x *VDiffReportOptions) Reset() {
*x = VDiffReportOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6497,7 +6594,7 @@ func (x *VDiffReportOptions) String() string {
func (*VDiffReportOptions) ProtoMessage() {}
func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6510,7 +6607,7 @@ func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffReportOptions.ProtoReflect.Descriptor instead.
func (*VDiffReportOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
}
func (x *VDiffReportOptions) GetOnlyPks() bool {
@@ -6568,7 +6665,7 @@ type VDiffCoreOptions struct {
func (x *VDiffCoreOptions) Reset() {
*x = VDiffCoreOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6581,7 +6678,7 @@ func (x *VDiffCoreOptions) String() string {
func (*VDiffCoreOptions) ProtoMessage() {}
func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6594,7 +6691,7 @@ func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCoreOptions.ProtoReflect.Descriptor instead.
func (*VDiffCoreOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
}
func (x *VDiffCoreOptions) GetTables() string {
@@ -6680,7 +6777,7 @@ type VDiffOptions struct {
func (x *VDiffOptions) Reset() {
*x = VDiffOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6693,7 +6790,7 @@ func (x *VDiffOptions) String() string {
func (*VDiffOptions) ProtoMessage() {}
func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6706,7 +6803,7 @@ func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffOptions.ProtoReflect.Descriptor instead.
func (*VDiffOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
}
func (x *VDiffOptions) GetPickerOptions() *VDiffPickerOptions {
@@ -6753,7 +6850,7 @@ type UpdateVReplicationWorkflowRequest struct {
func (x *UpdateVReplicationWorkflowRequest) Reset() {
*x = UpdateVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6766,7 +6863,7 @@ func (x *UpdateVReplicationWorkflowRequest) String() string {
func (*UpdateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6779,7 +6876,7 @@ func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
}
func (x *UpdateVReplicationWorkflowRequest) GetWorkflow() string {
@@ -6842,7 +6939,7 @@ type UpdateVReplicationWorkflowResponse struct {
func (x *UpdateVReplicationWorkflowResponse) Reset() {
*x = UpdateVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6855,7 +6952,7 @@ func (x *UpdateVReplicationWorkflowResponse) String() string {
func (*UpdateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6868,7 +6965,7 @@ func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
}
func (x *UpdateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -6900,7 +6997,7 @@ type UpdateVReplicationWorkflowsRequest struct {
func (x *UpdateVReplicationWorkflowsRequest) Reset() {
*x = UpdateVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6913,7 +7010,7 @@ func (x *UpdateVReplicationWorkflowsRequest) String() string {
func (*UpdateVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6926,7 +7023,7 @@ func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
}
func (x *UpdateVReplicationWorkflowsRequest) GetAllWorkflows() bool {
@@ -6982,7 +7079,7 @@ type UpdateVReplicationWorkflowsResponse struct {
func (x *UpdateVReplicationWorkflowsResponse) Reset() {
*x = UpdateVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6995,7 +7092,7 @@ func (x *UpdateVReplicationWorkflowsResponse) String() string {
func (*UpdateVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7008,7 +7105,7 @@ func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use UpdateVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
}
func (x *UpdateVReplicationWorkflowsResponse) GetResult() *query.QueryResult {
@@ -7029,7 +7126,7 @@ type ResetSequencesRequest struct {
func (x *ResetSequencesRequest) Reset() {
*x = ResetSequencesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7042,7 +7139,7 @@ func (x *ResetSequencesRequest) String() string {
func (*ResetSequencesRequest) ProtoMessage() {}
func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7055,7 +7152,7 @@ func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesRequest.ProtoReflect.Descriptor instead.
func (*ResetSequencesRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
}
func (x *ResetSequencesRequest) GetTables() []string {
@@ -7074,7 +7171,7 @@ type ResetSequencesResponse struct {
func (x *ResetSequencesResponse) Reset() {
*x = ResetSequencesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7087,7 +7184,7 @@ func (x *ResetSequencesResponse) String() string {
func (*ResetSequencesResponse) ProtoMessage() {}
func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7100,7 +7197,7 @@ func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesResponse.ProtoReflect.Descriptor instead.
func (*ResetSequencesResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
}
type CheckThrottlerRequest struct {
@@ -7122,7 +7219,7 @@ type CheckThrottlerRequest struct {
func (x *CheckThrottlerRequest) Reset() {
*x = CheckThrottlerRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7135,7 +7232,7 @@ func (x *CheckThrottlerRequest) String() string {
func (*CheckThrottlerRequest) ProtoMessage() {}
func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7148,7 +7245,7 @@ func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerRequest.ProtoReflect.Descriptor instead.
func (*CheckThrottlerRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
}
func (x *CheckThrottlerRequest) GetAppName() string {
@@ -7218,7 +7315,7 @@ type CheckThrottlerResponse struct {
func (x *CheckThrottlerResponse) Reset() {
*x = CheckThrottlerResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7231,7 +7328,7 @@ func (x *CheckThrottlerResponse) String() string {
func (*CheckThrottlerResponse) ProtoMessage() {}
func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7244,7 +7341,7 @@ func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
}
func (x *CheckThrottlerResponse) GetStatusCode() int32 {
@@ -7326,7 +7423,7 @@ type GetThrottlerStatusRequest struct {
func (x *GetThrottlerStatusRequest) Reset() {
*x = GetThrottlerStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7339,7 +7436,7 @@ func (x *GetThrottlerStatusRequest) String() string {
func (*GetThrottlerStatusRequest) ProtoMessage() {}
func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7352,7 +7449,7 @@ func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusRequest.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
}
type GetThrottlerStatusResponse struct {
@@ -7401,7 +7498,7 @@ type GetThrottlerStatusResponse struct {
func (x *GetThrottlerStatusResponse) Reset() {
*x = GetThrottlerStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7414,7 +7511,7 @@ func (x *GetThrottlerStatusResponse) String() string {
func (*GetThrottlerStatusResponse) ProtoMessage() {}
func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7427,7 +7524,7 @@ func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusResponse.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
}
func (x *GetThrottlerStatusResponse) GetTabletAlias() string {
@@ -7568,7 +7665,7 @@ type ChangeTagsRequest struct {
func (x *ChangeTagsRequest) Reset() {
*x = ChangeTagsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7581,7 +7678,7 @@ func (x *ChangeTagsRequest) String() string {
func (*ChangeTagsRequest) ProtoMessage() {}
func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7594,7 +7691,7 @@ func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsRequest.ProtoReflect.Descriptor instead.
func (*ChangeTagsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{138}
}
func (x *ChangeTagsRequest) GetTags() map[string]string {
@@ -7622,7 +7719,7 @@ type ChangeTagsResponse struct {
func (x *ChangeTagsResponse) Reset() {
*x = ChangeTagsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7635,7 +7732,7 @@ func (x *ChangeTagsResponse) String() string {
func (*ChangeTagsResponse) ProtoMessage() {}
func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7648,7 +7745,7 @@ func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsResponse.ProtoReflect.Descriptor instead.
func (*ChangeTagsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139}
}
func (x *ChangeTagsResponse) GetTags() map[string]string {
@@ -7682,7 +7779,7 @@ type ReadVReplicationWorkflowResponse_Stream struct {
func (x *ReadVReplicationWorkflowResponse_Stream) Reset() {
*x = ReadVReplicationWorkflowResponse_Stream{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[142]
+ mi := &file_tabletmanagerdata_proto_msgTypes[145]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7695,7 +7792,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) String() string {
func (*ReadVReplicationWorkflowResponse_Stream) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[142]
+ mi := &file_tabletmanagerdata_proto_msgTypes[145]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7708,7 +7805,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Me
// Deprecated: Use ReadVReplicationWorkflowResponse_Stream.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse_Stream) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119, 0}
}
func (x *ReadVReplicationWorkflowResponse_Stream) GetId() int32 {
@@ -7835,7 +7932,7 @@ type CheckThrottlerResponse_Metric struct {
func (x *CheckThrottlerResponse_Metric) Reset() {
*x = CheckThrottlerResponse_Metric{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[145]
+ mi := &file_tabletmanagerdata_proto_msgTypes[148]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7848,7 +7945,7 @@ func (x *CheckThrottlerResponse_Metric) String() string {
func (*CheckThrottlerResponse_Metric) ProtoMessage() {}
func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[145]
+ mi := &file_tabletmanagerdata_proto_msgTypes[148]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7861,7 +7958,7 @@ func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse_Metric.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse_Metric) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135, 0}
}
func (x *CheckThrottlerResponse_Metric) GetName() string {
@@ -7932,7 +8029,7 @@ type GetThrottlerStatusResponse_MetricResult struct {
func (x *GetThrottlerStatusResponse_MetricResult) Reset() {
*x = GetThrottlerStatusResponse_MetricResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[147]
+ mi := &file_tabletmanagerdata_proto_msgTypes[150]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7945,7 +8042,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) String() string {
func (*GetThrottlerStatusResponse_MetricResult) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[147]
+ mi := &file_tabletmanagerdata_proto_msgTypes[150]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7958,7 +8055,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricResult.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricResult) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 0}
}
func (x *GetThrottlerStatusResponse_MetricResult) GetValue() float64 {
@@ -7987,7 +8084,7 @@ type GetThrottlerStatusResponse_MetricHealth struct {
func (x *GetThrottlerStatusResponse_MetricHealth) Reset() {
*x = GetThrottlerStatusResponse_MetricHealth{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[153]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8000,7 +8097,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) String() string {
func (*GetThrottlerStatusResponse_MetricHealth) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[153]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8013,7 +8110,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricHealth.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricHealth) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135, 3}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 3}
}
func (x *GetThrottlerStatusResponse_MetricHealth) GetLastHealthyAt() *vttime.Time {
@@ -8044,7 +8141,7 @@ type GetThrottlerStatusResponse_RecentApp struct {
func (x *GetThrottlerStatusResponse_RecentApp) Reset() {
*x = GetThrottlerStatusResponse_RecentApp{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[154]
+ mi := &file_tabletmanagerdata_proto_msgTypes[157]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8057,7 +8154,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) String() string {
func (*GetThrottlerStatusResponse_RecentApp) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[154]
+ mi := &file_tabletmanagerdata_proto_msgTypes[157]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8070,7 +8167,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Messa
// Deprecated: Use GetThrottlerStatusResponse_RecentApp.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_RecentApp) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135, 7}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 7}
}
func (x *GetThrottlerStatusResponse_RecentApp) GetCheckedAt() *vttime.Time {
@@ -8702,540 +8799,556 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{
0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65,
0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65,
0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06,
- 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3f, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a,
- 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20,
- 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68,
- 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69,
+ 0x7a, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f,
+ 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22,
+ 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c,
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75,
- 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10,
- 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
- 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
- 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25,
- 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46,
- 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a,
- 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a,
- 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a,
- 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65,
- 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52,
- 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62,
- 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e,
- 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24,
- 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73,
- 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
- 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72,
- 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f,
- 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72,
- 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52,
0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12,
- 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f,
- 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1,
- 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f,
- 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50,
- 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d,
- 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
- 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74,
- 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52,
- 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15,
- 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
- 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
- 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25,
- 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63,
- 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77,
- 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f,
- 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74,
- 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e,
- 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
- 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72,
- 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
- 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75,
- 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12,
- 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22,
- 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12,
- 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39,
- 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69,
- 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75,
- 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06,
- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f,
- 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66,
- 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69,
- 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f,
- 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12,
- 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c,
- 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f,
- 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50,
- 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d,
- 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52,
- 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f,
- 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f,
- 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66,
- 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41,
- 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d,
- 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a,
- 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63,
- 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63,
- 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70,
- 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
- 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73,
- 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69,
- 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19,
- 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74,
- 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43,
- 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53,
- 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66,
- 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e,
- 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22,
- 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88,
- 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
- 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66,
- 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72,
- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f,
- 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c,
- 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37,
- 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66,
- 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65,
- 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e,
- 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e,
- 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12,
- 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25,
- 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01,
- 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72,
- 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76,
- 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f,
- 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06,
- 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40,
- 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01,
- 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12,
- 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74,
- 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42,
- 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71,
- 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
- 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65,
- 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70,
- 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70,
- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b,
- 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74,
- 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69,
- 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f,
- 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b,
- 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d,
- 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61,
- 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74,
- 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22,
- 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12,
- 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
- 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61,
- 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72,
- 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f,
- 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65,
- 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63,
- 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74,
- 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09,
- 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72,
- 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12,
- 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
- 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12,
- 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
- 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6,
- 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a,
- 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73,
- 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05,
- 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61,
- 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65,
- 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73,
- 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f,
- 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44,
- 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63,
- 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65,
- 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66,
- 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a,
- 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65,
- 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73,
- 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61,
- 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
- 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61,
- 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73,
- 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61,
+ 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73,
+ 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a,
+ 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e,
+ 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65,
+ 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e,
+ 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+ 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a,
+ 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
+ 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61,
+ 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64,
+ 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
+ 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07,
+ 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72,
+ 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
- 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65,
- 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47,
- 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65,
- 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68,
- 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f,
- 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47,
- 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74,
- 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65,
- 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f,
- 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68,
- 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61,
- 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20,
+ 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
+ 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
+ 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c,
+ 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a,
+ 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12,
+ 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61,
+ 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78,
+ 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74,
- 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63,
- 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e,
- 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a,
- 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f,
- 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70,
- 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
- 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a,
- 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52,
- 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f,
- 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64,
- 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a,
- 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74,
+ 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12,
+ 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76,
+ 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
+ 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
+ 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28,
+ 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66,
+ 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66,
+ 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69,
+ 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66,
+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a,
+ 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+ 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65,
+ 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66,
+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72,
+ 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,
+ 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72,
+ 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74,
+ 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54,
+ 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
+ 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72,
+ 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f,
+ 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73,
+ 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63,
+ 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72,
+ 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72,
+ 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c,
+ 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10,
+ 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53,
+ 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75,
+ 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61,
+ 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69,
+ 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b,
+ 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65,
+ 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65,
+ 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed,
+ 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74,
+ 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12,
+ 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88,
+ 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f,
+ 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a,
+ 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
+ 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08,
+ 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50,
+ 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
+ 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02,
+ 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
+ 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70,
+ 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a,
+ 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f,
+ 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b,
+ 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69,
+ 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72,
+ 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68,
+ 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a,
+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52,
+ 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02,
+ 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
+ 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
+ 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73,
+ 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69,
+ 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70,
+ 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28,
+ 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74,
+ 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65,
+ 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66,
+ 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
+ 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61,
+ 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
+ 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67,
- 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54,
- 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54,
- 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74,
- 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73,
- 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66,
- 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12,
- 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
- 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68,
- 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45,
- 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12,
- 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43,
- 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44,
- 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
- 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49,
- 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42,
- 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74,
- 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74,
+ 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13,
+ 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
+ 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65,
+ 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a,
+ 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a,
+ 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67,
+ 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
+ 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65,
+ 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70,
+ 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41,
+ 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65,
+ 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
+ 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61,
+ 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70,
+ 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a,
+ 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07,
+ 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44,
+ 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
+ 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12,
+ 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53,
+ 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12,
+ 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12,
+ 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49,
+ 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f,
+ 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73,
+ 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
+ 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -9251,7 +9364,7 @@ func file_tabletmanagerdata_proto_rawDescGZIP() []byte {
}
var file_tabletmanagerdata_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 158)
+var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 161)
var file_tabletmanagerdata_proto_goTypes = []any{
(TabletSelectionPreference)(0), // 0: tabletmanagerdata.TabletSelectionPreference
(CheckThrottlerResponseCode)(0), // 1: tabletmanagerdata.CheckThrottlerResponseCode
@@ -9365,177 +9478,181 @@ var file_tabletmanagerdata_proto_goTypes = []any{
(*RestoreFromBackupResponse)(nil), // 109: tabletmanagerdata.RestoreFromBackupResponse
(*CreateVReplicationWorkflowRequest)(nil), // 110: tabletmanagerdata.CreateVReplicationWorkflowRequest
(*CreateVReplicationWorkflowResponse)(nil), // 111: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*DeleteVReplicationWorkflowRequest)(nil), // 112: tabletmanagerdata.DeleteVReplicationWorkflowRequest
- (*DeleteVReplicationWorkflowResponse)(nil), // 113: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*HasVReplicationWorkflowsRequest)(nil), // 114: tabletmanagerdata.HasVReplicationWorkflowsRequest
- (*HasVReplicationWorkflowsResponse)(nil), // 115: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowsRequest)(nil), // 116: tabletmanagerdata.ReadVReplicationWorkflowsRequest
- (*ReadVReplicationWorkflowsResponse)(nil), // 117: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowRequest)(nil), // 118: tabletmanagerdata.ReadVReplicationWorkflowRequest
- (*ReadVReplicationWorkflowResponse)(nil), // 119: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*ValidateVReplicationPermissionsRequest)(nil), // 120: tabletmanagerdata.ValidateVReplicationPermissionsRequest
- (*ValidateVReplicationPermissionsResponse)(nil), // 121: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*VDiffRequest)(nil), // 122: tabletmanagerdata.VDiffRequest
- (*VDiffResponse)(nil), // 123: tabletmanagerdata.VDiffResponse
- (*VDiffPickerOptions)(nil), // 124: tabletmanagerdata.VDiffPickerOptions
- (*VDiffReportOptions)(nil), // 125: tabletmanagerdata.VDiffReportOptions
- (*VDiffCoreOptions)(nil), // 126: tabletmanagerdata.VDiffCoreOptions
- (*VDiffOptions)(nil), // 127: tabletmanagerdata.VDiffOptions
- (*UpdateVReplicationWorkflowRequest)(nil), // 128: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*UpdateVReplicationWorkflowResponse)(nil), // 129: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*UpdateVReplicationWorkflowsRequest)(nil), // 130: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- (*UpdateVReplicationWorkflowsResponse)(nil), // 131: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*ResetSequencesRequest)(nil), // 132: tabletmanagerdata.ResetSequencesRequest
- (*ResetSequencesResponse)(nil), // 133: tabletmanagerdata.ResetSequencesResponse
- (*CheckThrottlerRequest)(nil), // 134: tabletmanagerdata.CheckThrottlerRequest
- (*CheckThrottlerResponse)(nil), // 135: tabletmanagerdata.CheckThrottlerResponse
- (*GetThrottlerStatusRequest)(nil), // 136: tabletmanagerdata.GetThrottlerStatusRequest
- (*GetThrottlerStatusResponse)(nil), // 137: tabletmanagerdata.GetThrottlerStatusResponse
- (*ChangeTagsRequest)(nil), // 138: tabletmanagerdata.ChangeTagsRequest
- (*ChangeTagsResponse)(nil), // 139: tabletmanagerdata.ChangeTagsResponse
- nil, // 140: tabletmanagerdata.UserPermission.PrivilegesEntry
- nil, // 141: tabletmanagerdata.DbPermission.PrivilegesEntry
- nil, // 142: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
- nil, // 143: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- (*ReadVReplicationWorkflowResponse_Stream)(nil), // 144: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- nil, // 145: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- nil, // 146: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- (*CheckThrottlerResponse_Metric)(nil), // 147: tabletmanagerdata.CheckThrottlerResponse.Metric
- nil, // 148: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
- (*GetThrottlerStatusResponse_MetricResult)(nil), // 149: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- nil, // 150: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- nil, // 151: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- (*GetThrottlerStatusResponse_MetricHealth)(nil), // 152: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- nil, // 153: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- nil, // 154: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- nil, // 155: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- (*GetThrottlerStatusResponse_RecentApp)(nil), // 156: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
- nil, // 157: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- nil, // 158: tabletmanagerdata.ChangeTagsRequest.TagsEntry
- nil, // 159: tabletmanagerdata.ChangeTagsResponse.TagsEntry
- (*query.Field)(nil), // 160: query.Field
- (topodata.TabletType)(0), // 161: topodata.TabletType
- (*vtrpc.CallerID)(nil), // 162: vtrpc.CallerID
- (*query.QueryResult)(nil), // 163: query.QueryResult
- (*query.TransactionMetadata)(nil), // 164: query.TransactionMetadata
- (*mysqlctl.HostMetricsResponse)(nil), // 165: mysqlctl.HostMetricsResponse
- (*replicationdata.Status)(nil), // 166: replicationdata.Status
- (*replicationdata.PrimaryStatus)(nil), // 167: replicationdata.PrimaryStatus
- (*topodata.TabletAlias)(nil), // 168: topodata.TabletAlias
- (*replicationdata.FullStatus)(nil), // 169: replicationdata.FullStatus
- (replicationdata.StopReplicationMode)(0), // 170: replicationdata.StopReplicationMode
- (*replicationdata.StopReplicationStatus)(nil), // 171: replicationdata.StopReplicationStatus
- (*logutil.Event)(nil), // 172: logutil.Event
- (*vttime.Time)(nil), // 173: vttime.Time
- (*binlogdata.BinlogSource)(nil), // 174: binlogdata.BinlogSource
- (binlogdata.VReplicationWorkflowType)(0), // 175: binlogdata.VReplicationWorkflowType
- (binlogdata.VReplicationWorkflowSubType)(0), // 176: binlogdata.VReplicationWorkflowSubType
- (binlogdata.VReplicationWorkflowState)(0), // 177: binlogdata.VReplicationWorkflowState
- (binlogdata.OnDDLAction)(0), // 178: binlogdata.OnDDLAction
- (*topodata.ThrottledAppRule)(nil), // 179: topodata.ThrottledAppRule
+ (*DeleteTableDataRequest)(nil), // 112: tabletmanagerdata.DeleteTableDataRequest
+ (*DeleteTableDataResponse)(nil), // 113: tabletmanagerdata.DeleteTableDataResponse
+ (*DeleteVReplicationWorkflowRequest)(nil), // 114: tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ (*DeleteVReplicationWorkflowResponse)(nil), // 115: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*HasVReplicationWorkflowsRequest)(nil), // 116: tabletmanagerdata.HasVReplicationWorkflowsRequest
+ (*HasVReplicationWorkflowsResponse)(nil), // 117: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowsRequest)(nil), // 118: tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ (*ReadVReplicationWorkflowsResponse)(nil), // 119: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowRequest)(nil), // 120: tabletmanagerdata.ReadVReplicationWorkflowRequest
+ (*ReadVReplicationWorkflowResponse)(nil), // 121: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*ValidateVReplicationPermissionsRequest)(nil), // 122: tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ (*ValidateVReplicationPermissionsResponse)(nil), // 123: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*VDiffRequest)(nil), // 124: tabletmanagerdata.VDiffRequest
+ (*VDiffResponse)(nil), // 125: tabletmanagerdata.VDiffResponse
+ (*VDiffPickerOptions)(nil), // 126: tabletmanagerdata.VDiffPickerOptions
+ (*VDiffReportOptions)(nil), // 127: tabletmanagerdata.VDiffReportOptions
+ (*VDiffCoreOptions)(nil), // 128: tabletmanagerdata.VDiffCoreOptions
+ (*VDiffOptions)(nil), // 129: tabletmanagerdata.VDiffOptions
+ (*UpdateVReplicationWorkflowRequest)(nil), // 130: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*UpdateVReplicationWorkflowResponse)(nil), // 131: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*UpdateVReplicationWorkflowsRequest)(nil), // 132: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ (*UpdateVReplicationWorkflowsResponse)(nil), // 133: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*ResetSequencesRequest)(nil), // 134: tabletmanagerdata.ResetSequencesRequest
+ (*ResetSequencesResponse)(nil), // 135: tabletmanagerdata.ResetSequencesResponse
+ (*CheckThrottlerRequest)(nil), // 136: tabletmanagerdata.CheckThrottlerRequest
+ (*CheckThrottlerResponse)(nil), // 137: tabletmanagerdata.CheckThrottlerResponse
+ (*GetThrottlerStatusRequest)(nil), // 138: tabletmanagerdata.GetThrottlerStatusRequest
+ (*GetThrottlerStatusResponse)(nil), // 139: tabletmanagerdata.GetThrottlerStatusResponse
+ (*ChangeTagsRequest)(nil), // 140: tabletmanagerdata.ChangeTagsRequest
+ (*ChangeTagsResponse)(nil), // 141: tabletmanagerdata.ChangeTagsResponse
+ nil, // 142: tabletmanagerdata.UserPermission.PrivilegesEntry
+ nil, // 143: tabletmanagerdata.DbPermission.PrivilegesEntry
+ nil, // 144: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ nil, // 145: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ nil, // 146: tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ (*ReadVReplicationWorkflowResponse_Stream)(nil), // 147: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ nil, // 148: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ nil, // 149: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ (*CheckThrottlerResponse_Metric)(nil), // 150: tabletmanagerdata.CheckThrottlerResponse.Metric
+ nil, // 151: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ (*GetThrottlerStatusResponse_MetricResult)(nil), // 152: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ nil, // 153: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ nil, // 154: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ (*GetThrottlerStatusResponse_MetricHealth)(nil), // 155: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ nil, // 156: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ nil, // 157: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ nil, // 158: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ (*GetThrottlerStatusResponse_RecentApp)(nil), // 159: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ nil, // 160: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ nil, // 161: tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ nil, // 162: tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ (*query.Field)(nil), // 163: query.Field
+ (topodata.TabletType)(0), // 164: topodata.TabletType
+ (*vtrpc.CallerID)(nil), // 165: vtrpc.CallerID
+ (*query.QueryResult)(nil), // 166: query.QueryResult
+ (*query.TransactionMetadata)(nil), // 167: query.TransactionMetadata
+ (*mysqlctl.HostMetricsResponse)(nil), // 168: mysqlctl.HostMetricsResponse
+ (*replicationdata.Status)(nil), // 169: replicationdata.Status
+ (*replicationdata.PrimaryStatus)(nil), // 170: replicationdata.PrimaryStatus
+ (*topodata.TabletAlias)(nil), // 171: topodata.TabletAlias
+ (*replicationdata.FullStatus)(nil), // 172: replicationdata.FullStatus
+ (replicationdata.StopReplicationMode)(0), // 173: replicationdata.StopReplicationMode
+ (*replicationdata.StopReplicationStatus)(nil), // 174: replicationdata.StopReplicationStatus
+ (*logutil.Event)(nil), // 175: logutil.Event
+ (*vttime.Time)(nil), // 176: vttime.Time
+ (*binlogdata.BinlogSource)(nil), // 177: binlogdata.BinlogSource
+ (binlogdata.VReplicationWorkflowType)(0), // 178: binlogdata.VReplicationWorkflowType
+ (binlogdata.VReplicationWorkflowSubType)(0), // 179: binlogdata.VReplicationWorkflowSubType
+ (binlogdata.VReplicationWorkflowState)(0), // 180: binlogdata.VReplicationWorkflowState
+ (binlogdata.OnDDLAction)(0), // 181: binlogdata.OnDDLAction
+ (*topodata.ThrottledAppRule)(nil), // 182: topodata.ThrottledAppRule
}
var file_tabletmanagerdata_proto_depIdxs = []int32{
- 160, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
+ 163, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
2, // 1: tabletmanagerdata.SchemaDefinition.table_definitions:type_name -> tabletmanagerdata.TableDefinition
3, // 2: tabletmanagerdata.SchemaChangeResult.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 3: tabletmanagerdata.SchemaChangeResult.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 140, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
- 141, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
+ 142, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
+ 143, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
5, // 6: tabletmanagerdata.Permissions.user_permissions:type_name -> tabletmanagerdata.UserPermission
6, // 7: tabletmanagerdata.Permissions.db_permissions:type_name -> tabletmanagerdata.DbPermission
- 142, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ 144, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
3, // 9: tabletmanagerdata.GetSchemaResponse.schema_definition:type_name -> tabletmanagerdata.SchemaDefinition
7, // 10: tabletmanagerdata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions
- 143, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- 161, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
+ 145, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ 164, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
4, // 13: tabletmanagerdata.PreflightSchemaResponse.change_results:type_name -> tabletmanagerdata.SchemaChangeResult
3, // 14: tabletmanagerdata.ApplySchemaRequest.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 15: tabletmanagerdata.ApplySchemaRequest.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 16: tabletmanagerdata.ApplySchemaResponse.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 17: tabletmanagerdata.ApplySchemaResponse.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 162, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
- 163, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
- 163, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
- 163, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
- 163, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
- 163, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
- 164, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
- 164, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
- 165, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
- 166, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
- 167, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
- 163, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
- 168, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
- 168, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
- 167, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
- 169, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
- 168, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
- 168, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
- 170, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
- 171, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
- 172, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
- 173, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
- 173, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
- 172, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
- 174, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
- 161, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 165, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
+ 166, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
+ 166, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
+ 166, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
+ 166, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
+ 166, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
+ 167, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
+ 167, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
+ 168, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
+ 169, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
+ 170, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
+ 166, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
+ 171, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
+ 171, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
+ 170, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
+ 172, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
+ 171, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
+ 171, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
+ 173, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
+ 174, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
+ 175, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
+ 176, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
+ 176, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
+ 175, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
+ 177, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
+ 164, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
0, // 44: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 175, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 176, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 163, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 163, // 48: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 177, // 49: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
- 177, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
- 119, // 51: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 161, // 52: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
- 0, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 175, // 54: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 176, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 144, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- 145, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- 127, // 58: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
- 163, // 59: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
- 124, // 60: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
- 126, // 61: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
- 125, // 62: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
- 161, // 63: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
- 0, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 178, // 65: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
- 177, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 146, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- 163, // 68: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 177, // 69: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 163, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
- 148, // 71: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
- 1, // 72: tabletmanagerdata.CheckThrottlerResponse.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 150, // 73: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- 151, // 74: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- 153, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- 154, // 76: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- 155, // 77: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- 157, // 78: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- 158, // 79: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
- 159, // 80: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
- 174, // 81: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
- 173, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
- 173, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
- 177, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
- 173, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
- 173, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
- 1, // 87: tabletmanagerdata.CheckThrottlerResponse.Metric.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 147, // 88: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
- 149, // 89: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- 173, // 90: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
- 152, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- 179, // 92: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
- 173, // 93: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
- 1, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 156, // 95: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
- 96, // [96:96] is the sub-list for method output_type
- 96, // [96:96] is the sub-list for method input_type
- 96, // [96:96] is the sub-list for extension type_name
- 96, // [96:96] is the sub-list for extension extendee
- 0, // [0:96] is the sub-list for field type_name
+ 178, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 179, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 166, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 146, // 48: tabletmanagerdata.DeleteTableDataRequest.table_filters:type_name -> tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ 166, // 49: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 180, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
+ 180, // 51: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
+ 121, // 52: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 164, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
+ 0, // 54: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 178, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 179, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 147, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ 148, // 58: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ 129, // 59: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
+ 166, // 60: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
+ 126, // 61: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
+ 128, // 62: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
+ 127, // 63: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
+ 164, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 0, // 65: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 181, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
+ 180, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 149, // 68: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ 166, // 69: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 180, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 166, // 71: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
+ 151, // 72: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ 1, // 73: tabletmanagerdata.CheckThrottlerResponse.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
+ 153, // 74: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ 154, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ 156, // 76: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ 157, // 77: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ 158, // 78: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ 160, // 79: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ 161, // 80: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ 162, // 81: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ 177, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
+ 176, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
+ 176, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
+ 180, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
+ 176, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
+ 176, // 87: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
+ 1, // 88: tabletmanagerdata.CheckThrottlerResponse.Metric.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
+ 150, // 89: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
+ 152, // 90: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ 176, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
+ 155, // 92: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ 182, // 93: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
+ 176, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
+ 1, // 95: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
+ 159, // 96: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ 97, // [97:97] is the sub-list for method output_type
+ 97, // [97:97] is the sub-list for method input_type
+ 97, // [97:97] is the sub-list for extension type_name
+ 97, // [97:97] is the sub-list for extension extendee
+ 0, // [0:97] is the sub-list for field type_name
}
func init() { file_tabletmanagerdata_proto_init() }
@@ -10865,7 +10982,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowRequest); i {
+ switch v := v.(*DeleteTableDataRequest); i {
case 0:
return &v.state
case 1:
@@ -10877,7 +10994,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowResponse); i {
+ switch v := v.(*DeleteTableDataResponse); i {
case 0:
return &v.state
case 1:
@@ -10889,7 +11006,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsRequest); i {
+ switch v := v.(*DeleteVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10901,7 +11018,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsResponse); i {
+ switch v := v.(*DeleteVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -10913,7 +11030,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsRequest); i {
+ switch v := v.(*HasVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -10925,7 +11042,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsResponse); i {
+ switch v := v.(*HasVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -10937,7 +11054,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -10949,7 +11066,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -10961,7 +11078,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10973,7 +11090,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -10985,7 +11102,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffRequest); i {
+ switch v := v.(*ValidateVReplicationPermissionsRequest); i {
case 0:
return &v.state
case 1:
@@ -10997,7 +11114,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResponse); i {
+ switch v := v.(*ValidateVReplicationPermissionsResponse); i {
case 0:
return &v.state
case 1:
@@ -11009,7 +11126,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffPickerOptions); i {
+ switch v := v.(*VDiffRequest); i {
case 0:
return &v.state
case 1:
@@ -11021,7 +11138,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffReportOptions); i {
+ switch v := v.(*VDiffResponse); i {
case 0:
return &v.state
case 1:
@@ -11033,7 +11150,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCoreOptions); i {
+ switch v := v.(*VDiffPickerOptions); i {
case 0:
return &v.state
case 1:
@@ -11045,7 +11162,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffOptions); i {
+ switch v := v.(*VDiffReportOptions); i {
case 0:
return &v.state
case 1:
@@ -11057,7 +11174,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowRequest); i {
+ switch v := v.(*VDiffCoreOptions); i {
case 0:
return &v.state
case 1:
@@ -11069,7 +11186,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowResponse); i {
+ switch v := v.(*VDiffOptions); i {
case 0:
return &v.state
case 1:
@@ -11081,7 +11198,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11093,7 +11210,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11105,7 +11222,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11117,7 +11234,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11129,7 +11246,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerRequest); i {
+ switch v := v.(*ResetSequencesRequest); i {
case 0:
return &v.state
case 1:
@@ -11141,7 +11258,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[133].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse); i {
+ switch v := v.(*ResetSequencesResponse); i {
case 0:
return &v.state
case 1:
@@ -11153,7 +11270,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[134].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusRequest); i {
+ switch v := v.(*CheckThrottlerRequest); i {
case 0:
return &v.state
case 1:
@@ -11165,7 +11282,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse); i {
+ switch v := v.(*CheckThrottlerResponse); i {
case 0:
return &v.state
case 1:
@@ -11177,7 +11294,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTagsRequest); i {
+ switch v := v.(*GetThrottlerStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -11189,6 +11306,30 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[137].Exporter = func(v any, i int) any {
+ switch v := v.(*GetThrottlerStatusResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[138].Exporter = func(v any, i int) any {
+ switch v := v.(*ChangeTagsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[139].Exporter = func(v any, i int) any {
switch v := v.(*ChangeTagsResponse); i {
case 0:
return &v.state
@@ -11200,7 +11341,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[142].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[145].Exporter = func(v any, i int) any {
switch v := v.(*ReadVReplicationWorkflowResponse_Stream); i {
case 0:
return &v.state
@@ -11212,7 +11353,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[145].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[148].Exporter = func(v any, i int) any {
switch v := v.(*CheckThrottlerResponse_Metric); i {
case 0:
return &v.state
@@ -11224,7 +11365,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[147].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[150].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricResult); i {
case 0:
return &v.state
@@ -11236,7 +11377,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[150].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[153].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricHealth); i {
case 0:
return &v.state
@@ -11248,7 +11389,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[154].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[157].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_RecentApp); i {
case 0:
return &v.state
@@ -11262,16 +11403,16 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[104].OneofWrappers = []any{}
- file_tabletmanagerdata_proto_msgTypes[124].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[126].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[128].OneofWrappers = []any{}
+ file_tabletmanagerdata_proto_msgTypes[130].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tabletmanagerdata_proto_rawDesc,
NumEnums: 2,
- NumMessages: 158,
+ NumMessages: 161,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
index 26854182476..185255208fa 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
@@ -2079,6 +2079,46 @@ func (m *CreateVReplicationWorkflowResponse) CloneMessageVT() proto.Message {
return m.CloneVT()
}
+func (m *DeleteTableDataRequest) CloneVT() *DeleteTableDataRequest {
+ if m == nil {
+ return (*DeleteTableDataRequest)(nil)
+ }
+ r := new(DeleteTableDataRequest)
+ r.BatchSize = m.BatchSize
+ if rhs := m.TableFilters; rhs != nil {
+ tmpContainer := make(map[string]string, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v
+ }
+ r.TableFilters = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeleteTableDataRequest) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *DeleteTableDataResponse) CloneVT() *DeleteTableDataResponse {
+ if m == nil {
+ return (*DeleteTableDataResponse)(nil)
+ }
+ r := new(DeleteTableDataResponse)
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *DeleteTableDataResponse) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
func (m *DeleteVReplicationWorkflowRequest) CloneVT() *DeleteVReplicationWorkflowRequest {
if m == nil {
return (*DeleteVReplicationWorkflowRequest)(nil)
@@ -7817,6 +7857,96 @@ func (m *CreateVReplicationWorkflowResponse) MarshalToSizedBufferVT(dAtA []byte)
return len(dAtA) - i, nil
}
+func (m *DeleteTableDataRequest) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeleteTableDataRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeleteTableDataRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.BatchSize != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.BatchSize))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.TableFilters) > 0 {
+ for k := range m.TableFilters {
+ v := m.TableFilters[k]
+ baseI := i
+ i -= len(v)
+ copy(dAtA[i:], v)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
+ i--
+ dAtA[i] = 0x12
+ i -= len(k)
+ copy(dAtA[i:], k)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
+ i--
+ dAtA[i] = 0xa
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *DeleteTableDataResponse) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *DeleteTableDataResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *DeleteTableDataResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *DeleteVReplicationWorkflowRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@@ -11857,6 +11987,37 @@ func (m *CreateVReplicationWorkflowResponse) SizeVT() (n int) {
return n
}
+func (m *DeleteTableDataRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.TableFilters) > 0 {
+ for k, v := range m.TableFilters {
+ _ = k
+ _ = v
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
+ }
+ }
+ if m.BatchSize != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.BatchSize))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *DeleteTableDataResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += len(m.unknownFields)
+ return n
+}
+
func (m *DeleteVReplicationWorkflowRequest) SizeVT() (n int) {
if m == nil {
return 0
@@ -23126,6 +23287,254 @@ func (m *CreateVReplicationWorkflowResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
+func (m *DeleteTableDataRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeleteTableDataRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeleteTableDataRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TableFilters", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.TableFilters == nil {
+ m.TableFilters = make(map[string]string)
+ }
+ var mapkey string
+ var mapvalue string
+ for iNdEx < postIndex {
+ entryPreIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ if fieldNum == 1 {
+ var stringLenmapkey uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapkey |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapkey := int(stringLenmapkey)
+ if intStringLenmapkey < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postStringIndexmapkey := iNdEx + intStringLenmapkey
+ if postStringIndexmapkey < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postStringIndexmapkey > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
+ iNdEx = postStringIndexmapkey
+ } else if fieldNum == 2 {
+ var stringLenmapvalue uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLenmapvalue |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLenmapvalue := int(stringLenmapvalue)
+ if intStringLenmapvalue < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
+ if postStringIndexmapvalue < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postStringIndexmapvalue > l {
+ return io.ErrUnexpectedEOF
+ }
+ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
+ iNdEx = postStringIndexmapvalue
+ } else {
+ iNdEx = entryPreIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > postIndex {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+ m.TableFilters[mapkey] = mapvalue
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BatchSize", wireType)
+ }
+ m.BatchSize = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BatchSize |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *DeleteTableDataResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: DeleteTableDataResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: DeleteTableDataResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *DeleteVReplicationWorkflowRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
index d3c690c6da1..58d4065c26f 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
@@ -45,7 +45,7 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x1a, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xb4, 0x38, 0x0a, 0x0d,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa0, 0x39, 0x0a, 0x0d,
0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x49, 0x0a,
0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65,
@@ -295,212 +295,219 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x85, 0x01, 0x0a, 0x18, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x32, 0x2e, 0x74,
+ 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44,
+ 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01,
+ 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61, 0x64,
+ 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18,
+ 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x61, 0x73,
0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61,
- 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x88, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x33, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1f, 0x56, 0x61,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x19,
+ 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
+ 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65,
+ 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+ 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
+ 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x12,
- 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x05, 0x56, 0x44, 0x69, 0x66, 0x66, 0x12,
- 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73,
- 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x30, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74,
+ 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61,
+ 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x05, 0x56, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1f, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x6d, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e,
- 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65,
- 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12,
- 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25,
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6d, 0x6f,
- 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65,
- 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70,
- 0x0a, 0x11, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f,
- 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72,
- 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
- 0x74, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
- 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
- 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
- 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x12, 0x24, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x79, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
- 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x82, 0x01, 0x0a, 0x17, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x31, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49,
+ 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x55, 0x6e,
+ 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12,
+ 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
+ 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
- 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73,
- 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e,
- 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
- 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a,
- 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b,
- 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61,
+ 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,
+ 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x14,
+ 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x2d,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x06, 0x42, 0x61, 0x63,
+ 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11,
+ 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75,
+ 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f,
+ 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61,
0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01,
- 0x12, 0x72, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72,
- 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72,
- 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a,
- 0x12, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f,
- 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
+ 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33,
+ 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65,
+ 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var file_tabletmanagerservice_proto_goTypes = []any{
@@ -541,97 +548,99 @@ var file_tabletmanagerservice_proto_goTypes = []any{
(*tabletmanagerdata.StartReplicationUntilAfterRequest)(nil), // 34: tabletmanagerdata.StartReplicationUntilAfterRequest
(*tabletmanagerdata.GetReplicasRequest)(nil), // 35: tabletmanagerdata.GetReplicasRequest
(*tabletmanagerdata.CreateVReplicationWorkflowRequest)(nil), // 36: tabletmanagerdata.CreateVReplicationWorkflowRequest
- (*tabletmanagerdata.DeleteVReplicationWorkflowRequest)(nil), // 37: tabletmanagerdata.DeleteVReplicationWorkflowRequest
- (*tabletmanagerdata.HasVReplicationWorkflowsRequest)(nil), // 38: tabletmanagerdata.HasVReplicationWorkflowsRequest
- (*tabletmanagerdata.ReadVReplicationWorkflowRequest)(nil), // 39: tabletmanagerdata.ReadVReplicationWorkflowRequest
- (*tabletmanagerdata.ReadVReplicationWorkflowsRequest)(nil), // 40: tabletmanagerdata.ReadVReplicationWorkflowsRequest
- (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 41: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*tabletmanagerdata.UpdateVReplicationWorkflowsRequest)(nil), // 42: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- (*tabletmanagerdata.ValidateVReplicationPermissionsRequest)(nil), // 43: tabletmanagerdata.ValidateVReplicationPermissionsRequest
- (*tabletmanagerdata.VReplicationExecRequest)(nil), // 44: tabletmanagerdata.VReplicationExecRequest
- (*tabletmanagerdata.VReplicationWaitForPosRequest)(nil), // 45: tabletmanagerdata.VReplicationWaitForPosRequest
- (*tabletmanagerdata.VDiffRequest)(nil), // 46: tabletmanagerdata.VDiffRequest
- (*tabletmanagerdata.ResetReplicationRequest)(nil), // 47: tabletmanagerdata.ResetReplicationRequest
- (*tabletmanagerdata.InitPrimaryRequest)(nil), // 48: tabletmanagerdata.InitPrimaryRequest
- (*tabletmanagerdata.PopulateReparentJournalRequest)(nil), // 49: tabletmanagerdata.PopulateReparentJournalRequest
- (*tabletmanagerdata.InitReplicaRequest)(nil), // 50: tabletmanagerdata.InitReplicaRequest
- (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 51: tabletmanagerdata.DemotePrimaryRequest
- (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 52: tabletmanagerdata.UndoDemotePrimaryRequest
- (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 53: tabletmanagerdata.ReplicaWasPromotedRequest
- (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 54: tabletmanagerdata.ResetReplicationParametersRequest
- (*tabletmanagerdata.FullStatusRequest)(nil), // 55: tabletmanagerdata.FullStatusRequest
- (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 56: tabletmanagerdata.SetReplicationSourceRequest
- (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 57: tabletmanagerdata.ReplicaWasRestartedRequest
- (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 58: tabletmanagerdata.StopReplicationAndGetStatusRequest
- (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 59: tabletmanagerdata.PromoteReplicaRequest
- (*tabletmanagerdata.BackupRequest)(nil), // 60: tabletmanagerdata.BackupRequest
- (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 61: tabletmanagerdata.RestoreFromBackupRequest
- (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 62: tabletmanagerdata.CheckThrottlerRequest
- (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 63: tabletmanagerdata.GetThrottlerStatusRequest
- (*tabletmanagerdata.PingResponse)(nil), // 64: tabletmanagerdata.PingResponse
- (*tabletmanagerdata.SleepResponse)(nil), // 65: tabletmanagerdata.SleepResponse
- (*tabletmanagerdata.ExecuteHookResponse)(nil), // 66: tabletmanagerdata.ExecuteHookResponse
- (*tabletmanagerdata.GetSchemaResponse)(nil), // 67: tabletmanagerdata.GetSchemaResponse
- (*tabletmanagerdata.GetPermissionsResponse)(nil), // 68: tabletmanagerdata.GetPermissionsResponse
- (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 69: tabletmanagerdata.GetGlobalStatusVarsResponse
- (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 70: tabletmanagerdata.SetReadOnlyResponse
- (*tabletmanagerdata.SetReadWriteResponse)(nil), // 71: tabletmanagerdata.SetReadWriteResponse
- (*tabletmanagerdata.ChangeTagsResponse)(nil), // 72: tabletmanagerdata.ChangeTagsResponse
- (*tabletmanagerdata.ChangeTypeResponse)(nil), // 73: tabletmanagerdata.ChangeTypeResponse
- (*tabletmanagerdata.RefreshStateResponse)(nil), // 74: tabletmanagerdata.RefreshStateResponse
- (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 75: tabletmanagerdata.RunHealthCheckResponse
- (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 76: tabletmanagerdata.ReloadSchemaResponse
- (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 77: tabletmanagerdata.PreflightSchemaResponse
- (*tabletmanagerdata.ApplySchemaResponse)(nil), // 78: tabletmanagerdata.ApplySchemaResponse
- (*tabletmanagerdata.ResetSequencesResponse)(nil), // 79: tabletmanagerdata.ResetSequencesResponse
- (*tabletmanagerdata.LockTablesResponse)(nil), // 80: tabletmanagerdata.LockTablesResponse
- (*tabletmanagerdata.UnlockTablesResponse)(nil), // 81: tabletmanagerdata.UnlockTablesResponse
- (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 82: tabletmanagerdata.ExecuteQueryResponse
- (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 83: tabletmanagerdata.ExecuteFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 84: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 85: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 86: tabletmanagerdata.ExecuteFetchAsAppResponse
- (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 87: tabletmanagerdata.GetUnresolvedTransactionsResponse
- (*tabletmanagerdata.ReadTransactionResponse)(nil), // 88: tabletmanagerdata.ReadTransactionResponse
- (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 89: tabletmanagerdata.ConcludeTransactionResponse
- (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 90: tabletmanagerdata.MysqlHostMetricsResponse
- (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 91: tabletmanagerdata.ReplicationStatusResponse
- (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 92: tabletmanagerdata.PrimaryStatusResponse
- (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 93: tabletmanagerdata.PrimaryPositionResponse
- (*tabletmanagerdata.WaitForPositionResponse)(nil), // 94: tabletmanagerdata.WaitForPositionResponse
- (*tabletmanagerdata.StopReplicationResponse)(nil), // 95: tabletmanagerdata.StopReplicationResponse
- (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 96: tabletmanagerdata.StopReplicationMinimumResponse
- (*tabletmanagerdata.StartReplicationResponse)(nil), // 97: tabletmanagerdata.StartReplicationResponse
- (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 98: tabletmanagerdata.StartReplicationUntilAfterResponse
- (*tabletmanagerdata.GetReplicasResponse)(nil), // 99: tabletmanagerdata.GetReplicasResponse
- (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 100: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 101: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 102: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 103: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 104: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 105: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 106: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 107: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*tabletmanagerdata.VReplicationExecResponse)(nil), // 108: tabletmanagerdata.VReplicationExecResponse
- (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 109: tabletmanagerdata.VReplicationWaitForPosResponse
- (*tabletmanagerdata.VDiffResponse)(nil), // 110: tabletmanagerdata.VDiffResponse
- (*tabletmanagerdata.ResetReplicationResponse)(nil), // 111: tabletmanagerdata.ResetReplicationResponse
- (*tabletmanagerdata.InitPrimaryResponse)(nil), // 112: tabletmanagerdata.InitPrimaryResponse
- (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 113: tabletmanagerdata.PopulateReparentJournalResponse
- (*tabletmanagerdata.InitReplicaResponse)(nil), // 114: tabletmanagerdata.InitReplicaResponse
- (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 115: tabletmanagerdata.DemotePrimaryResponse
- (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 116: tabletmanagerdata.UndoDemotePrimaryResponse
- (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 117: tabletmanagerdata.ReplicaWasPromotedResponse
- (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 118: tabletmanagerdata.ResetReplicationParametersResponse
- (*tabletmanagerdata.FullStatusResponse)(nil), // 119: tabletmanagerdata.FullStatusResponse
- (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 120: tabletmanagerdata.SetReplicationSourceResponse
- (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 121: tabletmanagerdata.ReplicaWasRestartedResponse
- (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 122: tabletmanagerdata.StopReplicationAndGetStatusResponse
- (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 123: tabletmanagerdata.PromoteReplicaResponse
- (*tabletmanagerdata.BackupResponse)(nil), // 124: tabletmanagerdata.BackupResponse
- (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 125: tabletmanagerdata.RestoreFromBackupResponse
- (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 126: tabletmanagerdata.CheckThrottlerResponse
- (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 127: tabletmanagerdata.GetThrottlerStatusResponse
+ (*tabletmanagerdata.DeleteTableDataRequest)(nil), // 37: tabletmanagerdata.DeleteTableDataRequest
+ (*tabletmanagerdata.DeleteVReplicationWorkflowRequest)(nil), // 38: tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ (*tabletmanagerdata.HasVReplicationWorkflowsRequest)(nil), // 39: tabletmanagerdata.HasVReplicationWorkflowsRequest
+ (*tabletmanagerdata.ReadVReplicationWorkflowRequest)(nil), // 40: tabletmanagerdata.ReadVReplicationWorkflowRequest
+ (*tabletmanagerdata.ReadVReplicationWorkflowsRequest)(nil), // 41: tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 42: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*tabletmanagerdata.UpdateVReplicationWorkflowsRequest)(nil), // 43: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ (*tabletmanagerdata.ValidateVReplicationPermissionsRequest)(nil), // 44: tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ (*tabletmanagerdata.VReplicationExecRequest)(nil), // 45: tabletmanagerdata.VReplicationExecRequest
+ (*tabletmanagerdata.VReplicationWaitForPosRequest)(nil), // 46: tabletmanagerdata.VReplicationWaitForPosRequest
+ (*tabletmanagerdata.VDiffRequest)(nil), // 47: tabletmanagerdata.VDiffRequest
+ (*tabletmanagerdata.ResetReplicationRequest)(nil), // 48: tabletmanagerdata.ResetReplicationRequest
+ (*tabletmanagerdata.InitPrimaryRequest)(nil), // 49: tabletmanagerdata.InitPrimaryRequest
+ (*tabletmanagerdata.PopulateReparentJournalRequest)(nil), // 50: tabletmanagerdata.PopulateReparentJournalRequest
+ (*tabletmanagerdata.InitReplicaRequest)(nil), // 51: tabletmanagerdata.InitReplicaRequest
+ (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 52: tabletmanagerdata.DemotePrimaryRequest
+ (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 53: tabletmanagerdata.UndoDemotePrimaryRequest
+ (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 54: tabletmanagerdata.ReplicaWasPromotedRequest
+ (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 55: tabletmanagerdata.ResetReplicationParametersRequest
+ (*tabletmanagerdata.FullStatusRequest)(nil), // 56: tabletmanagerdata.FullStatusRequest
+ (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 57: tabletmanagerdata.SetReplicationSourceRequest
+ (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 58: tabletmanagerdata.ReplicaWasRestartedRequest
+ (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 59: tabletmanagerdata.StopReplicationAndGetStatusRequest
+ (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 60: tabletmanagerdata.PromoteReplicaRequest
+ (*tabletmanagerdata.BackupRequest)(nil), // 61: tabletmanagerdata.BackupRequest
+ (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 62: tabletmanagerdata.RestoreFromBackupRequest
+ (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 63: tabletmanagerdata.CheckThrottlerRequest
+ (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 64: tabletmanagerdata.GetThrottlerStatusRequest
+ (*tabletmanagerdata.PingResponse)(nil), // 65: tabletmanagerdata.PingResponse
+ (*tabletmanagerdata.SleepResponse)(nil), // 66: tabletmanagerdata.SleepResponse
+ (*tabletmanagerdata.ExecuteHookResponse)(nil), // 67: tabletmanagerdata.ExecuteHookResponse
+ (*tabletmanagerdata.GetSchemaResponse)(nil), // 68: tabletmanagerdata.GetSchemaResponse
+ (*tabletmanagerdata.GetPermissionsResponse)(nil), // 69: tabletmanagerdata.GetPermissionsResponse
+ (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 70: tabletmanagerdata.GetGlobalStatusVarsResponse
+ (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 71: tabletmanagerdata.SetReadOnlyResponse
+ (*tabletmanagerdata.SetReadWriteResponse)(nil), // 72: tabletmanagerdata.SetReadWriteResponse
+ (*tabletmanagerdata.ChangeTagsResponse)(nil), // 73: tabletmanagerdata.ChangeTagsResponse
+ (*tabletmanagerdata.ChangeTypeResponse)(nil), // 74: tabletmanagerdata.ChangeTypeResponse
+ (*tabletmanagerdata.RefreshStateResponse)(nil), // 75: tabletmanagerdata.RefreshStateResponse
+ (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 76: tabletmanagerdata.RunHealthCheckResponse
+ (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 77: tabletmanagerdata.ReloadSchemaResponse
+ (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 78: tabletmanagerdata.PreflightSchemaResponse
+ (*tabletmanagerdata.ApplySchemaResponse)(nil), // 79: tabletmanagerdata.ApplySchemaResponse
+ (*tabletmanagerdata.ResetSequencesResponse)(nil), // 80: tabletmanagerdata.ResetSequencesResponse
+ (*tabletmanagerdata.LockTablesResponse)(nil), // 81: tabletmanagerdata.LockTablesResponse
+ (*tabletmanagerdata.UnlockTablesResponse)(nil), // 82: tabletmanagerdata.UnlockTablesResponse
+ (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 83: tabletmanagerdata.ExecuteQueryResponse
+ (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 84: tabletmanagerdata.ExecuteFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 85: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 86: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 87: tabletmanagerdata.ExecuteFetchAsAppResponse
+ (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 88: tabletmanagerdata.GetUnresolvedTransactionsResponse
+ (*tabletmanagerdata.ReadTransactionResponse)(nil), // 89: tabletmanagerdata.ReadTransactionResponse
+ (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 90: tabletmanagerdata.ConcludeTransactionResponse
+ (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 91: tabletmanagerdata.MysqlHostMetricsResponse
+ (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 92: tabletmanagerdata.ReplicationStatusResponse
+ (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 93: tabletmanagerdata.PrimaryStatusResponse
+ (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 94: tabletmanagerdata.PrimaryPositionResponse
+ (*tabletmanagerdata.WaitForPositionResponse)(nil), // 95: tabletmanagerdata.WaitForPositionResponse
+ (*tabletmanagerdata.StopReplicationResponse)(nil), // 96: tabletmanagerdata.StopReplicationResponse
+ (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 97: tabletmanagerdata.StopReplicationMinimumResponse
+ (*tabletmanagerdata.StartReplicationResponse)(nil), // 98: tabletmanagerdata.StartReplicationResponse
+ (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 99: tabletmanagerdata.StartReplicationUntilAfterResponse
+ (*tabletmanagerdata.GetReplicasResponse)(nil), // 100: tabletmanagerdata.GetReplicasResponse
+ (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 101: tabletmanagerdata.CreateVReplicationWorkflowResponse
+ (*tabletmanagerdata.DeleteTableDataResponse)(nil), // 102: tabletmanagerdata.DeleteTableDataResponse
+ (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 103: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 104: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 105: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 106: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 107: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 108: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 109: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*tabletmanagerdata.VReplicationExecResponse)(nil), // 110: tabletmanagerdata.VReplicationExecResponse
+ (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 111: tabletmanagerdata.VReplicationWaitForPosResponse
+ (*tabletmanagerdata.VDiffResponse)(nil), // 112: tabletmanagerdata.VDiffResponse
+ (*tabletmanagerdata.ResetReplicationResponse)(nil), // 113: tabletmanagerdata.ResetReplicationResponse
+ (*tabletmanagerdata.InitPrimaryResponse)(nil), // 114: tabletmanagerdata.InitPrimaryResponse
+ (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 115: tabletmanagerdata.PopulateReparentJournalResponse
+ (*tabletmanagerdata.InitReplicaResponse)(nil), // 116: tabletmanagerdata.InitReplicaResponse
+ (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 117: tabletmanagerdata.DemotePrimaryResponse
+ (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 118: tabletmanagerdata.UndoDemotePrimaryResponse
+ (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 119: tabletmanagerdata.ReplicaWasPromotedResponse
+ (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 120: tabletmanagerdata.ResetReplicationParametersResponse
+ (*tabletmanagerdata.FullStatusResponse)(nil), // 121: tabletmanagerdata.FullStatusResponse
+ (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 122: tabletmanagerdata.SetReplicationSourceResponse
+ (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 123: tabletmanagerdata.ReplicaWasRestartedResponse
+ (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 124: tabletmanagerdata.StopReplicationAndGetStatusResponse
+ (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 125: tabletmanagerdata.PromoteReplicaResponse
+ (*tabletmanagerdata.BackupResponse)(nil), // 126: tabletmanagerdata.BackupResponse
+ (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 127: tabletmanagerdata.RestoreFromBackupResponse
+ (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 128: tabletmanagerdata.CheckThrottlerResponse
+ (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 129: tabletmanagerdata.GetThrottlerStatusResponse
}
var file_tabletmanagerservice_proto_depIdxs = []int32{
0, // 0: tabletmanagerservice.TabletManager.Ping:input_type -> tabletmanagerdata.PingRequest
@@ -671,99 +680,101 @@ var file_tabletmanagerservice_proto_depIdxs = []int32{
34, // 34: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:input_type -> tabletmanagerdata.StartReplicationUntilAfterRequest
35, // 35: tabletmanagerservice.TabletManager.GetReplicas:input_type -> tabletmanagerdata.GetReplicasRequest
36, // 36: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:input_type -> tabletmanagerdata.CreateVReplicationWorkflowRequest
- 37, // 37: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:input_type -> tabletmanagerdata.DeleteVReplicationWorkflowRequest
- 38, // 38: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:input_type -> tabletmanagerdata.HasVReplicationWorkflowsRequest
- 39, // 39: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:input_type -> tabletmanagerdata.ReadVReplicationWorkflowRequest
- 40, // 40: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:input_type -> tabletmanagerdata.ReadVReplicationWorkflowsRequest
- 41, // 41: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
- 42, // 42: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- 43, // 43: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:input_type -> tabletmanagerdata.ValidateVReplicationPermissionsRequest
- 44, // 44: tabletmanagerservice.TabletManager.VReplicationExec:input_type -> tabletmanagerdata.VReplicationExecRequest
- 45, // 45: tabletmanagerservice.TabletManager.VReplicationWaitForPos:input_type -> tabletmanagerdata.VReplicationWaitForPosRequest
- 46, // 46: tabletmanagerservice.TabletManager.VDiff:input_type -> tabletmanagerdata.VDiffRequest
- 47, // 47: tabletmanagerservice.TabletManager.ResetReplication:input_type -> tabletmanagerdata.ResetReplicationRequest
- 48, // 48: tabletmanagerservice.TabletManager.InitPrimary:input_type -> tabletmanagerdata.InitPrimaryRequest
- 49, // 49: tabletmanagerservice.TabletManager.PopulateReparentJournal:input_type -> tabletmanagerdata.PopulateReparentJournalRequest
- 50, // 50: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
- 51, // 51: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
- 52, // 52: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
- 53, // 53: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
- 54, // 54: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
- 55, // 55: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
- 56, // 56: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
- 57, // 57: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
- 58, // 58: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
- 59, // 59: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
- 60, // 60: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
- 61, // 61: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
- 62, // 62: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
- 63, // 63: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
- 64, // 64: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
- 65, // 65: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
- 66, // 66: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
- 67, // 67: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
- 68, // 68: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
- 69, // 69: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
- 70, // 70: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
- 71, // 71: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
- 72, // 72: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
- 73, // 73: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
- 74, // 74: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
- 75, // 75: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
- 76, // 76: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
- 77, // 77: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
- 78, // 78: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
- 79, // 79: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
- 80, // 80: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
- 81, // 81: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
- 82, // 82: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
- 83, // 83: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
- 84, // 84: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- 85, // 85: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- 86, // 86: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
- 87, // 87: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
- 88, // 88: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
- 89, // 89: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
- 90, // 90: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
- 91, // 91: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
- 92, // 92: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
- 93, // 93: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
- 94, // 94: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
- 95, // 95: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
- 96, // 96: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
- 97, // 97: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
- 98, // 98: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
- 99, // 99: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
- 100, // 100: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
- 101, // 101: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
- 102, // 102: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
- 103, // 103: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 104, // 104: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
- 105, // 105: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
- 106, // 106: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- 107, // 107: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
- 108, // 108: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
- 109, // 109: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
- 110, // 110: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
- 111, // 111: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
- 112, // 112: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
- 113, // 113: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
- 114, // 114: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
- 115, // 115: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
- 116, // 116: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
- 117, // 117: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
- 118, // 118: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
- 119, // 119: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
- 120, // 120: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
- 121, // 121: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
- 122, // 122: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
- 123, // 123: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
- 124, // 124: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
- 125, // 125: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
- 126, // 126: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
- 127, // 127: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
- 64, // [64:128] is the sub-list for method output_type
- 0, // [0:64] is the sub-list for method input_type
+ 37, // 37: tabletmanagerservice.TabletManager.DeleteTableData:input_type -> tabletmanagerdata.DeleteTableDataRequest
+ 38, // 38: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:input_type -> tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ 39, // 39: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:input_type -> tabletmanagerdata.HasVReplicationWorkflowsRequest
+ 40, // 40: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:input_type -> tabletmanagerdata.ReadVReplicationWorkflowRequest
+ 41, // 41: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:input_type -> tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ 42, // 42: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ 43, // 43: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ 44, // 44: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:input_type -> tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ 45, // 45: tabletmanagerservice.TabletManager.VReplicationExec:input_type -> tabletmanagerdata.VReplicationExecRequest
+ 46, // 46: tabletmanagerservice.TabletManager.VReplicationWaitForPos:input_type -> tabletmanagerdata.VReplicationWaitForPosRequest
+ 47, // 47: tabletmanagerservice.TabletManager.VDiff:input_type -> tabletmanagerdata.VDiffRequest
+ 48, // 48: tabletmanagerservice.TabletManager.ResetReplication:input_type -> tabletmanagerdata.ResetReplicationRequest
+ 49, // 49: tabletmanagerservice.TabletManager.InitPrimary:input_type -> tabletmanagerdata.InitPrimaryRequest
+ 50, // 50: tabletmanagerservice.TabletManager.PopulateReparentJournal:input_type -> tabletmanagerdata.PopulateReparentJournalRequest
+ 51, // 51: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
+ 52, // 52: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
+ 53, // 53: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
+ 54, // 54: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
+ 55, // 55: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
+ 56, // 56: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
+ 57, // 57: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
+ 58, // 58: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
+ 59, // 59: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
+ 60, // 60: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
+ 61, // 61: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
+ 62, // 62: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
+ 63, // 63: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
+ 64, // 64: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
+ 65, // 65: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
+ 66, // 66: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
+ 67, // 67: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
+ 68, // 68: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
+ 69, // 69: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
+ 70, // 70: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
+ 71, // 71: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
+ 72, // 72: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
+ 73, // 73: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
+ 74, // 74: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
+ 75, // 75: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
+ 76, // 76: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
+ 77, // 77: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
+ 78, // 78: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
+ 79, // 79: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
+ 80, // 80: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
+ 81, // 81: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
+ 82, // 82: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
+ 83, // 83: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
+ 84, // 84: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
+ 85, // 85: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ 86, // 86: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ 87, // 87: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
+ 88, // 88: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
+ 89, // 89: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
+ 90, // 90: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
+ 91, // 91: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
+ 92, // 92: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
+ 93, // 93: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
+ 94, // 94: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
+ 95, // 95: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
+ 96, // 96: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
+ 97, // 97: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
+ 98, // 98: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
+ 99, // 99: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
+ 100, // 100: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
+ 101, // 101: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
+ 102, // 102: tabletmanagerservice.TabletManager.DeleteTableData:output_type -> tabletmanagerdata.DeleteTableDataResponse
+ 103, // 103: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ 104, // 104: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
+ 105, // 105: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 106, // 106: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ 107, // 107: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ 108, // 108: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ 109, // 109: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ 110, // 110: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
+ 111, // 111: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
+ 112, // 112: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
+ 113, // 113: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
+ 114, // 114: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
+ 115, // 115: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
+ 116, // 116: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
+ 117, // 117: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
+ 118, // 118: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
+ 119, // 119: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
+ 120, // 120: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
+ 121, // 121: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
+ 122, // 122: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
+ 123, // 123: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
+ 124, // 124: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
+ 125, // 125: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
+ 126, // 126: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
+ 127, // 127: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
+ 128, // 128: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
+ 129, // 129: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
+ 65, // [65:130] is the sub-list for method output_type
+ 0, // [0:65] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
index 420d7ec3126..14ef8cc26bf 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
@@ -81,6 +81,7 @@ type TabletManagerClient interface {
GetReplicas(ctx context.Context, in *tabletmanagerdata.GetReplicasRequest, opts ...grpc.CallOption) (*tabletmanagerdata.GetReplicasResponse, error)
// VReplication API
CreateVReplicationWorkflow(ctx context.Context, in *tabletmanagerdata.CreateVReplicationWorkflowRequest, opts ...grpc.CallOption) (*tabletmanagerdata.CreateVReplicationWorkflowResponse, error)
+ DeleteTableData(ctx context.Context, in *tabletmanagerdata.DeleteTableDataRequest, opts ...grpc.CallOption) (*tabletmanagerdata.DeleteTableDataResponse, error)
DeleteVReplicationWorkflow(ctx context.Context, in *tabletmanagerdata.DeleteVReplicationWorkflowRequest, opts ...grpc.CallOption) (*tabletmanagerdata.DeleteVReplicationWorkflowResponse, error)
HasVReplicationWorkflows(ctx context.Context, in *tabletmanagerdata.HasVReplicationWorkflowsRequest, opts ...grpc.CallOption) (*tabletmanagerdata.HasVReplicationWorkflowsResponse, error)
ReadVReplicationWorkflow(ctx context.Context, in *tabletmanagerdata.ReadVReplicationWorkflowRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ReadVReplicationWorkflowResponse, error)
@@ -470,6 +471,15 @@ func (c *tabletManagerClient) CreateVReplicationWorkflow(ctx context.Context, in
return out, nil
}
+func (c *tabletManagerClient) DeleteTableData(ctx context.Context, in *tabletmanagerdata.DeleteTableDataRequest, opts ...grpc.CallOption) (*tabletmanagerdata.DeleteTableDataResponse, error) {
+ out := new(tabletmanagerdata.DeleteTableDataResponse)
+ err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/DeleteTableData", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *tabletManagerClient) DeleteVReplicationWorkflow(ctx context.Context, in *tabletmanagerdata.DeleteVReplicationWorkflowRequest, opts ...grpc.CallOption) (*tabletmanagerdata.DeleteVReplicationWorkflowResponse, error) {
out := new(tabletmanagerdata.DeleteVReplicationWorkflowResponse)
err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/DeleteVReplicationWorkflow", in, out, opts...)
@@ -821,6 +831,7 @@ type TabletManagerServer interface {
GetReplicas(context.Context, *tabletmanagerdata.GetReplicasRequest) (*tabletmanagerdata.GetReplicasResponse, error)
// VReplication API
CreateVReplicationWorkflow(context.Context, *tabletmanagerdata.CreateVReplicationWorkflowRequest) (*tabletmanagerdata.CreateVReplicationWorkflowResponse, error)
+ DeleteTableData(context.Context, *tabletmanagerdata.DeleteTableDataRequest) (*tabletmanagerdata.DeleteTableDataResponse, error)
DeleteVReplicationWorkflow(context.Context, *tabletmanagerdata.DeleteVReplicationWorkflowRequest) (*tabletmanagerdata.DeleteVReplicationWorkflowResponse, error)
HasVReplicationWorkflows(context.Context, *tabletmanagerdata.HasVReplicationWorkflowsRequest) (*tabletmanagerdata.HasVReplicationWorkflowsResponse, error)
ReadVReplicationWorkflow(context.Context, *tabletmanagerdata.ReadVReplicationWorkflowRequest) (*tabletmanagerdata.ReadVReplicationWorkflowResponse, error)
@@ -985,6 +996,9 @@ func (UnimplementedTabletManagerServer) GetReplicas(context.Context, *tabletmana
func (UnimplementedTabletManagerServer) CreateVReplicationWorkflow(context.Context, *tabletmanagerdata.CreateVReplicationWorkflowRequest) (*tabletmanagerdata.CreateVReplicationWorkflowResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateVReplicationWorkflow not implemented")
}
+func (UnimplementedTabletManagerServer) DeleteTableData(context.Context, *tabletmanagerdata.DeleteTableDataRequest) (*tabletmanagerdata.DeleteTableDataResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteTableData not implemented")
+}
func (UnimplementedTabletManagerServer) DeleteVReplicationWorkflow(context.Context, *tabletmanagerdata.DeleteVReplicationWorkflowRequest) (*tabletmanagerdata.DeleteVReplicationWorkflowResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteVReplicationWorkflow not implemented")
}
@@ -1745,6 +1759,24 @@ func _TabletManager_CreateVReplicationWorkflow_Handler(srv interface{}, ctx cont
return interceptor(ctx, in, info, handler)
}
+func _TabletManager_DeleteTableData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(tabletmanagerdata.DeleteTableDataRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TabletManagerServer).DeleteTableData(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/tabletmanagerservice.TabletManager/DeleteTableData",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TabletManagerServer).DeleteTableData(ctx, req.(*tabletmanagerdata.DeleteTableDataRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _TabletManager_DeleteVReplicationWorkflow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(tabletmanagerdata.DeleteVReplicationWorkflowRequest)
if err := dec(in); err != nil {
@@ -2392,6 +2424,10 @@ var TabletManager_ServiceDesc = grpc.ServiceDesc{
MethodName: "CreateVReplicationWorkflow",
Handler: _TabletManager_CreateVReplicationWorkflow_Handler,
},
+ {
+ MethodName: "DeleteTableData",
+ Handler: _TabletManager_DeleteTableData_Handler,
+ },
{
MethodName: "DeleteVReplicationWorkflow",
Handler: _TabletManager_DeleteVReplicationWorkflow_Handler,
diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go
index d9697e29a21..038c0fc8c58 100644
--- a/go/vt/proto/vtctldata/vtctldata.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata.pb.go
@@ -15339,6 +15339,10 @@ type WorkflowDeleteRequest struct {
KeepData bool `protobuf:"varint,3,opt,name=keep_data,json=keepData,proto3" json:"keep_data,omitempty"`
KeepRoutingRules bool `protobuf:"varint,4,opt,name=keep_routing_rules,json=keepRoutingRules,proto3" json:"keep_routing_rules,omitempty"`
Shards []string `protobuf:"bytes,5,rep,name=shards,proto3" json:"shards,omitempty"`
+ // The max records to delete from the moved tables when cleaning
+ // up the migrated data. This is only used with multi-tenant
+ // MoveTables migrations.
+ DeleteBatchSize int64 `protobuf:"varint,6,opt,name=delete_batch_size,json=deleteBatchSize,proto3" json:"delete_batch_size,omitempty"`
}
func (x *WorkflowDeleteRequest) Reset() {
@@ -15408,6 +15412,13 @@ func (x *WorkflowDeleteRequest) GetShards() []string {
return nil
}
+func (x *WorkflowDeleteRequest) GetDeleteBatchSize() int64 {
+ if x != nil {
+ return x.DeleteBatchSize
+ }
+ return 0
+}
+
type WorkflowDeleteResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -19510,7 +19521,7 @@ var file_vtctldata_proto_rawDesc = []byte{
0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72,
0x64, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x6f, 0x70, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b,
0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a,
@@ -19521,196 +19532,199 @@ var file_vtctldata_proto_rawDesc = []byte{
0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01,
0x28, 0x08, 0x52, 0x10, 0x6b, 0x65, 0x65, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52,
0x75, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x05,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0xd1, 0x01, 0x0a,
- 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61,
- 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72,
- 0x79, 0x12, 0x46, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f,
- 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x55, 0x0a, 0x0a, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
- 0x22, 0x67, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0xe6, 0x07, 0x0a, 0x16, 0x57, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f,
- 0x70, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11,
+ 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42,
+ 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x16, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x46, 0x0a,
+ 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c,
0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x73,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12,
- 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x1a, 0xe8, 0x01, 0x0a, 0x0e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f,
- 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f,
- 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f,
- 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x73,
- 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x6f,
- 0x77, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x77, 0x73, 0x5f,
- 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
- 0x52, 0x0e, 0x72, 0x6f, 0x77, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65,
- 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x70,
- 0x69, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74,
- 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54,
- 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65,
- 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f,
- 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x1a,
- 0xbc, 0x01, 0x0a, 0x10, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
- 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x68,
- 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e,
- 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x5c,
- 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x4c,
- 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x32, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74,
- 0x61, 0x74, 0x65, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x1a, 0x73, 0x0a, 0x13,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70,
- 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x1a, 0x6f, 0x0a, 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
- 0x38, 0x01, 0x22, 0x85, 0x04, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
- 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
- 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63,
- 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c,
- 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x1b, 0x6d, 0x61,
- 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61,
- 0x67, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x10, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x4c, 0x61, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x65,
- 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72,
- 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69,
- 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
- 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
- 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65,
- 0x6f, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x1b,
- 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72,
- 0x67, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06,
- 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68,
- 0x61, 0x72, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x0c, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x1d, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
- 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
- 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61,
- 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65,
- 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0f,
- 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18,
- 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
- 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd1, 0x01, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x07,
- 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x74,
- 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x55, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49, 0x6e,
- 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x47,
- 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f,
- 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37,
- 0x0a, 0x0c, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d,
- 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x0b, 0x6d, 0x69, 0x72, 0x72,
- 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69,
- 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72,
- 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x70, 0x65, 0x72, 0x63,
- 0x65, 0x6e, 0x74, 0x22, 0x7f, 0x0a, 0x1d, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d,
- 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f,
- 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
- 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x2a, 0x4a, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
- 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x0a, 0x0a,
- 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x56,
- 0x45, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x52, 0x45,
- 0x41, 0x54, 0x45, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x02,
- 0x2a, 0x38, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e,
- 0x67, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41,
- 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45,
- 0x53, 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x2a, 0x42, 0x0a, 0x1c, 0x53, 0x68,
- 0x61, 0x72, 0x64, 0x65, 0x64, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65,
- 0x6e, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x45,
- 0x41, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10,
- 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x42, 0x28,
- 0x5a, 0x26, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65,
- 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x55, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x67, 0x0a, 0x15,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73,
+ 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0xe6, 0x07, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x5f, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73,
+ 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74,
+ 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65,
+ 0x1a, 0xe8, 0x01, 0x0a, 0x0e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69,
+ 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f,
+ 0x70, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x74,
+ 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x73, 0x54, 0x6f,
+ 0x74, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63,
+ 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f,
+ 0x77, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c,
+ 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c,
+ 0x12, 0x29, 0x0a, 0x10, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e,
+ 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x62, 0x79, 0x74, 0x65,
+ 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x1a, 0xbc, 0x01, 0x0a, 0x10,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x2d, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12,
+ 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61,
+ 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x5c, 0x0a, 0x0c, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
+ 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x1a, 0x73, 0x0a, 0x13, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x30, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6f, 0x0a,
+ 0x11, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85,
+ 0x04, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63,
+ 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a,
+ 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20,
+ 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6c,
+ 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74,
+ 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x6d,
+ 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67,
+ 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+ 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x44, 0x75,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
+ 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x69, 0x74,
+ 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x65,
+ 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x69,
+ 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53,
+ 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72,
+ 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73,
+ 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x1d, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d,
+ 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61,
+ 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72,
+ 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x72, 0x79, 0x5f,
+ 0x72, 0x75, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0d, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
+ 0x22, 0x90, 0x01, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x22, 0xd1, 0x01, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
+ 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
+ 0x1a, 0x55, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d,
+ 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x18, 0x0a,
+ 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
+ 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4d, 0x69,
+ 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x22, 0x51, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x69,
+ 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x14, 0x2e, 0x76, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x4d, 0x69, 0x72, 0x72, 0x6f,
+ 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x0b, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75,
+ 0x6c, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x1c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x37, 0x0a, 0x0c,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x22,
+ 0x7f, 0x0a, 0x1d, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72, 0x6f,
+ 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63,
+ 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
+ 0x2a, 0x4a, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53,
+ 0x54, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x56, 0x45, 0x54, 0x41, 0x42,
+ 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x4c,
+ 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x02, 0x2a, 0x38, 0x0a, 0x0d,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x08, 0x0a,
+ 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x43, 0x45, 0x4e,
+ 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x53, 0x43, 0x45, 0x4e,
+ 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x2a, 0x42, 0x0a, 0x1c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x65,
+ 0x64, 0x41, 0x75, 0x74, 0x6f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61,
+ 0x6e, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10,
+ 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a,
+ 0x07, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x02, 0x42, 0x28, 0x5a, 0x26, 0x76, 0x69,
+ 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67,
+ 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
index cf74dbcd900..438357693b3 100644
--- a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
@@ -5342,6 +5342,7 @@ func (m *WorkflowDeleteRequest) CloneVT() *WorkflowDeleteRequest {
r.Workflow = m.Workflow
r.KeepData = m.KeepData
r.KeepRoutingRules = m.KeepRoutingRules
+ r.DeleteBatchSize = m.DeleteBatchSize
if rhs := m.Shards; rhs != nil {
tmpContainer := make([]string, len(rhs))
copy(tmpContainer, rhs)
@@ -20282,6 +20283,11 @@ func (m *WorkflowDeleteRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.DeleteBatchSize != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.DeleteBatchSize))
+ i--
+ dAtA[i] = 0x30
+ }
if len(m.Shards) > 0 {
for iNdEx := len(m.Shards) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.Shards[iNdEx])
@@ -26803,6 +26809,9 @@ func (m *WorkflowDeleteRequest) SizeVT() (n int) {
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
+ if m.DeleteBatchSize != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.DeleteBatchSize))
+ }
n += len(m.unknownFields)
return n
}
@@ -63078,6 +63087,25 @@ func (m *WorkflowDeleteRequest) UnmarshalVT(dAtA []byte) error {
}
m.Shards = append(m.Shards, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DeleteBatchSize", wireType)
+ }
+ m.DeleteBatchSize = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.DeleteBatchSize |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/go/vt/vtcombo/tablet_map.go b/go/vt/vtcombo/tablet_map.go
index 71fc6e2fb06..81b157704b6 100644
--- a/go/vt/vtcombo/tablet_map.go
+++ b/go/vt/vtcombo/tablet_map.go
@@ -944,6 +944,10 @@ func (itmc *internalTabletManagerClient) CreateVReplicationWorkflow(context.Cont
return nil, fmt.Errorf("not implemented in vtcombo")
}
+func (itmc *internalTabletManagerClient) DeleteTableData(context.Context, *topodatapb.Tablet, *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ return nil, fmt.Errorf("not implemented in vtcombo")
+}
+
func (itmc *internalTabletManagerClient) DeleteVReplicationWorkflow(context.Context, *topodatapb.Tablet, *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error) {
return nil, fmt.Errorf("not implemented in vtcombo")
}
diff --git a/go/vt/vtctl/workflow/framework_test.go b/go/vt/vtctl/workflow/framework_test.go
index d8eda699350..249ff07cf41 100644
--- a/go/vt/vtctl/workflow/framework_test.go
+++ b/go/vt/vtctl/workflow/framework_test.go
@@ -270,7 +270,7 @@ type testTMClient struct {
mu sync.Mutex
vrQueries map[int][]*queryResult
createVReplicationWorkflowRequests map[uint32]*createVReplicationWorkflowRequestResponse
- readVReplicationWorkflowRequests map[uint32]*tabletmanagerdatapb.ReadVReplicationWorkflowRequest
+ readVReplicationWorkflowRequests map[uint32]*readVReplicationWorkflowRequestResponse
applySchemaRequests map[uint32]*applySchemaRequestResponse
primaryPositions map[uint32]string
vdiffRequests map[uint32]*vdiffRequestResponse
@@ -293,7 +293,7 @@ func newTestTMClient(env *testEnv) *testTMClient {
schema: make(map[string]*tabletmanagerdatapb.SchemaDefinition),
vrQueries: make(map[int][]*queryResult),
createVReplicationWorkflowRequests: make(map[uint32]*createVReplicationWorkflowRequestResponse),
- readVReplicationWorkflowRequests: make(map[uint32]*tabletmanagerdatapb.ReadVReplicationWorkflowRequest),
+ readVReplicationWorkflowRequests: make(map[uint32]*readVReplicationWorkflowRequestResponse),
applySchemaRequests: make(map[uint32]*applySchemaRequestResponse),
readVReplicationWorkflowsResponses: make(map[string][]*tabletmanagerdatapb.ReadVReplicationWorkflowsResponse),
primaryPositions: make(map[uint32]string),
@@ -328,10 +328,13 @@ func (tmc *testTMClient) ReadVReplicationWorkflow(ctx context.Context, tablet *t
tmc.mu.Lock()
defer tmc.mu.Unlock()
if expect := tmc.readVReplicationWorkflowRequests[tablet.Alias.Uid]; expect != nil {
- if !proto.Equal(expect, req) {
+ if !proto.Equal(expect.req, req) {
return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "unexpected ReadVReplicationWorkflow request on tablet %s: got %+v, want %+v",
topoproto.TabletAliasString(tablet.Alias), req, expect)
}
+ if expect.res != nil {
+ return expect.res, expect.err
+ }
}
workflowType := binlogdatapb.VReplicationWorkflowType_MoveTables
if strings.Contains(req.Workflow, "lookup") {
@@ -374,6 +377,10 @@ func (tmc *testTMClient) ReadVReplicationWorkflow(ctx context.Context, tablet *t
return res, nil
}
+func (tmc *testTMClient) DeleteTableData(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.DeleteTableDataRequest) (response *tabletmanagerdatapb.DeleteTableDataResponse, err error) {
+ return &tabletmanagerdatapb.DeleteTableDataResponse{}, nil
+}
+
func (tmc *testTMClient) DeleteVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (response *tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, err error) {
return &tabletmanagerdatapb.DeleteVReplicationWorkflowResponse{
Result: &querypb.QueryResult{
@@ -443,6 +450,22 @@ func (tmc *testTMClient) expectCreateVReplicationWorkflowRequestOnTargetTablets(
}
}
+func (tmc *testTMClient) expectReadVReplicationWorkflowRequest(tabletID uint32, req *readVReplicationWorkflowRequestResponse) {
+ tmc.mu.Lock()
+ defer tmc.mu.Unlock()
+
+ tmc.readVReplicationWorkflowRequests[tabletID] = req
+}
+
+func (tmc *testTMClient) expectReadVReplicationWorkflowRequestOnTargetTablets(req *readVReplicationWorkflowRequestResponse) {
+ tmc.mu.Lock()
+ defer tmc.mu.Unlock()
+
+ for _, tablet := range tmc.env.tablets[tmc.env.targetKeyspace.KeyspaceName] {
+ tmc.readVReplicationWorkflowRequests[tablet.Alias.Uid] = req
+ }
+}
+
func (tmc *testTMClient) VReplicationExec(ctx context.Context, tablet *topodatapb.Tablet, query string) (*querypb.QueryResult, error) {
tmc.mu.Lock()
defer tmc.mu.Unlock()
@@ -525,6 +548,12 @@ type createVReplicationWorkflowRequestResponse struct {
err error
}
+type readVReplicationWorkflowRequestResponse struct {
+ req *tabletmanagerdatapb.ReadVReplicationWorkflowRequest
+ res *tabletmanagerdatapb.ReadVReplicationWorkflowResponse
+ err error
+}
+
type applySchemaRequestResponse struct {
change *tmutils.SchemaChange
res *tabletmanagerdatapb.SchemaChangeResult
diff --git a/go/vt/vtctl/workflow/server.go b/go/vt/vtctl/workflow/server.go
index 4a7d5ed7725..1828b0af814 100644
--- a/go/vt/vtctl/workflow/server.go
+++ b/go/vt/vtctl/workflow/server.go
@@ -40,6 +40,7 @@ import (
"vitess.io/vitess/go/constants/sidecar"
"vitess.io/vitess/go/protoutil"
+ "vitess.io/vitess/go/ptr"
"vitess.io/vitess/go/sets"
"vitess.io/vitess/go/sqlescape"
"vitess.io/vitess/go/sqltypes"
@@ -1523,7 +1524,7 @@ func (s *Server) moveTablesCreate(ctx context.Context, req *vtctldatapb.MoveTabl
ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "MoveTablesCreate")
if lockErr != nil {
ts.Logger().Errorf("Locking the workflow %s failed: %v", lockName, lockErr)
- return nil, lockErr
+ return nil, vterrors.Wrapf(lockErr, "failed to lock the %s workflow", lockName)
}
defer workflowUnlock(&err)
ctx, targetUnlock, lockErr := sw.lockKeyspace(ctx, ts.TargetKeyspaceName(), "MoveTablesCreate")
@@ -1720,6 +1721,15 @@ func (s *Server) MoveTablesComplete(ctx context.Context, req *vtctldatapb.MoveTa
return nil, err
}
+ // Lock the workflow while we complete it.
+ lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
+ ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "MoveTablesComplete")
+ if lockErr != nil {
+ ts.Logger().Errorf("Locking the workflow %s failed: %v", lockName, lockErr)
+ return nil, vterrors.Wrapf(lockErr, "failed to lock the %s workflow", lockName)
+ }
+ defer workflowUnlock(&err)
+
var summary string
if req.DryRun {
summary = fmt.Sprintf("Complete dry run results for workflow %s.%s at %v", req.TargetKeyspace, req.Workflow, time.Now().UTC().Format(time.RFC822))
@@ -2125,6 +2135,15 @@ func (s *Server) WorkflowDelete(ctx context.Context, req *vtctldatapb.WorkflowDe
}
}
+ // Lock the workflow for deletion.
+ lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
+ ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "WorkflowDelete")
+ if lockErr != nil {
+ ts.Logger().Errorf("Locking the workflow %s failed: %v", lockName, lockErr)
+ return nil, vterrors.Wrapf(lockErr, "failed to lock the %s workflow", lockName)
+ }
+ defer workflowUnlock(&err)
+
if state.WorkflowType == TypeMigrate {
_, err := s.finalizeMigrateWorkflow(ctx, ts, "", true, req.GetKeepData(), req.GetKeepRoutingRules(), false)
return nil, err
@@ -2145,6 +2164,39 @@ func (s *Server) WorkflowDelete(ctx context.Context, req *vtctldatapb.WorkflowDe
s.optimizeCopyStateTable(tablet.Tablet)
return res.Result, err
}
+
+ // Multi-tenant migrations delete only that tenant's records from the target tables
+ // in batches and we may not be able to complete that work before the timeout. We
+ // delete the workflow only after the cleanup work completes successfully so the
+ // workflow can be canceled multiple times if needed in order to fully cleanup
+ // all of the tenant's data that we had copied.
+ if ts.IsMultiTenantMigration() {
+ if ts.workflowType != binlogdatapb.VReplicationWorkflowType_MoveTables { // Should never happen
+ return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "unsupported workflow type %q for multi-tenant migration",
+ ts.workflowType)
+ }
+ // We need to delete the rows that the target tables would have for the tenant.
+ // We don't cleanup other related artifacts since they are not tied to the tenant.
+ if !req.GetKeepData() {
+ if err := s.deleteTenantData(ctx, ts, req.DeleteBatchSize); err != nil {
+ return nil, vterrors.Wrapf(err, "failed to fully delete all migrated data for tenant %s, please retry the operation",
+ ts.options.TenantId)
+ }
+ }
+ } else {
+ // Cleanup related data and artifacts. There are none for a LookupVindex workflow.
+ if ts.workflowType != binlogdatapb.VReplicationWorkflowType_CreateLookupIndex {
+ if _, err := s.dropTargets(ctx, ts, req.GetKeepData(), req.GetKeepRoutingRules(), false); err != nil {
+ if topo.IsErrType(err, topo.NoNode) {
+ return nil, vterrors.Wrapf(err, "%s keyspace does not exist", req.GetKeyspace())
+ }
+ return nil, err
+ }
+ }
+ }
+
+ // Now that we've succesfully cleaned up everything else, we can finally delete
+ // the workflow.
delCtx, delCancel := context.WithTimeout(ctx, topo.RemoteOperationTimeout*2)
defer delCancel()
res, err := vx.CallbackContext(delCtx, callback)
@@ -2152,20 +2204,6 @@ func (s *Server) WorkflowDelete(ctx context.Context, req *vtctldatapb.WorkflowDe
return nil, err
}
- if len(res) == 0 {
- return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "the %s workflow does not exist in the %s keyspace", req.Workflow, req.Keyspace)
- }
-
- // Cleanup related data and artifacts. There are none for a LookupVindex workflow.
- if ts.workflowType != binlogdatapb.VReplicationWorkflowType_CreateLookupIndex {
- if _, err := s.DropTargets(delCtx, ts, req.GetKeepData(), req.GetKeepRoutingRules(), false); err != nil {
- if topo.IsErrType(err, topo.NoNode) {
- return nil, vterrors.Wrapf(err, "%s keyspace does not exist", req.GetKeyspace())
- }
- return nil, err
- }
- }
-
response := &vtctldatapb.WorkflowDeleteResponse{}
response.Summary = fmt.Sprintf("Successfully cancelled the %s workflow in the %s keyspace", req.Workflow, req.Keyspace)
details := make([]*vtctldatapb.WorkflowDeleteResponse_TabletInfo, 0, len(res))
@@ -2668,9 +2706,9 @@ func (s *Server) optimizeCopyStateTable(tablet *topodatapb.Tablet) {
}()
}
-// DropTargets cleans up target tables, shards and denied tables if a MoveTables/Reshard
-// is cancelled.
-func (s *Server) DropTargets(ctx context.Context, ts *trafficSwitcher, keepData, keepRoutingRules, dryRun bool) (*[]string, error) {
+// dropTargets cleans up target tables, shards and denied tables if a MoveTables/Reshard
+// is canceled.
+func (s *Server) dropTargets(ctx context.Context, ts *trafficSwitcher, keepData, keepRoutingRules, dryRun bool) (*[]string, error) {
var err error
ts.keepRoutingRules = keepRoutingRules
var sw iswitcher
@@ -2680,27 +2718,43 @@ func (s *Server) DropTargets(ctx context.Context, ts *trafficSwitcher, keepData,
sw = &switcher{s: s, ts: ts}
}
- // Lock the workflow along with its source and target keyspaces.
- lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
- ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "DropTargets")
- if lockErr != nil {
- return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s workflow", lockName), lockErr)
- }
- defer workflowUnlock(&err)
+ // Lock the source and target keyspaces.
ctx, sourceUnlock, lockErr := sw.lockKeyspace(ctx, ts.SourceKeyspaceName(), "DropTargets")
if lockErr != nil {
- return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.SourceKeyspaceName()), lockErr)
+ return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.SourceKeyspaceName()),
+ lockErr)
}
defer sourceUnlock(&err)
if ts.TargetKeyspaceName() != ts.SourceKeyspaceName() {
lockCtx, targetUnlock, lockErr := sw.lockKeyspace(ctx, ts.TargetKeyspaceName(), "DropTargets")
if lockErr != nil {
- return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.TargetKeyspaceName()), lockErr)
+ return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.TargetKeyspaceName()),
+ lockErr)
}
defer targetUnlock(&err)
ctx = lockCtx
}
+ // Stop the workflow before we delete the artifacts so that it doesn't try and
+ // continue doing work, and producing errors, as we delete the related artifacts.
+ if err = ts.ForAllTargets(func(target *MigrationTarget) error {
+ primary := target.GetPrimary()
+ if primary == nil {
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "no primary tablet found for target shard %s/%s",
+ ts.targetKeyspace, target.GetShard())
+ }
+ _, err := ts.ws.tmc.UpdateVReplicationWorkflow(ctx, primary.Tablet, &tabletmanagerdatapb.UpdateVReplicationWorkflowRequest{
+ Workflow: ts.workflow,
+ State: ptr.Of(binlogdatapb.VReplicationWorkflowState_Stopped),
+ })
+ if err != nil {
+ return vterrors.Wrapf(err, "failed to stop workflow %s on shard %s/%s", ts.workflow, primary.Keyspace, primary.Shard)
+ }
+ return nil
+ }); err != nil {
+ return nil, err
+ }
+
if !keepData {
switch ts.MigrationType() {
case binlogdatapb.MigrationType_TABLES:
@@ -2728,6 +2782,56 @@ func (s *Server) DropTargets(ctx context.Context, ts *trafficSwitcher, keepData,
return sw.logs(), nil
}
+// deleteTenantData attempts to delete all of the tenant's data that was migrated
+// in the workflow that we are canceling or deleting. This work can take some
+// time so if the context ends then the user will need to retry.
+func (s *Server) deleteTenantData(ctx context.Context, ts *trafficSwitcher, batchSize int64) error {
+ if ts.workflowType != binlogdatapb.VReplicationWorkflowType_MoveTables {
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "unsupported workflow type %q for multi-tenant migration",
+ ts.workflowType)
+ }
+ if ts.options == nil || strings.TrimSpace(ts.options.TenantId) == "" {
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "missing tenant ID in the workflow options")
+ }
+ if len(ts.tables) == 0 { // Nothing to delete
+ return nil
+ }
+
+ tenantPredicate, err := ts.buildTenantPredicate(ctx)
+ if err != nil {
+ return vterrors.Wrap(err, "failed to build delete filter")
+ }
+ deleteFilter := sqlparser.String(&sqlparser.Where{Expr: *tenantPredicate})
+
+ tableFilters := make(map[string]string, len(ts.tables))
+ for _, table := range ts.tables {
+ tableFilters[table] = deleteFilter
+ }
+
+ return ts.ForAllTargets(func(target *MigrationTarget) error {
+ primary := target.GetPrimary()
+ if primary == nil {
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "no primary tablet found for target shard %s/%s",
+ ts.targetKeyspace, target.GetShard())
+ }
+ // Let's be sure that the workflow is stopped so that it's not generating more data.
+ _, err := ts.ws.tmc.UpdateVReplicationWorkflow(ctx, primary.Tablet, &tabletmanagerdatapb.UpdateVReplicationWorkflowRequest{
+ Workflow: ts.workflow,
+ State: ptr.Of(binlogdatapb.VReplicationWorkflowState_Stopped),
+ })
+ if err != nil {
+ return vterrors.Wrapf(err, "failed to stop workflow %s on shard %s/%s", ts.workflow, primary.Keyspace, primary.Shard)
+ }
+ s.Logger().Infof("Deleting tenant %s data that was migrated in mulit-tenant workflow %s",
+ ts.workflow, ts.options.TenantId)
+ _, err = ts.ws.tmc.DeleteTableData(ctx, primary.Tablet, &tabletmanagerdatapb.DeleteTableDataRequest{
+ TableFilters: tableFilters,
+ BatchSize: batchSize,
+ })
+ return err
+ })
+}
+
func (s *Server) buildTrafficSwitcher(ctx context.Context, targetKeyspace, workflowName string) (*trafficSwitcher, error) {
tgtInfo, err := BuildTargets(ctx, s.ts, s.tmc, targetKeyspace, workflowName)
if err != nil {
@@ -2775,6 +2879,10 @@ func (s *Server) buildTrafficSwitcher(ctx context.Context, targetKeyspace, workf
return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "source keyspaces are mismatched across streams: %v vs %v", ts.sourceKeyspace, bls.Keyspace)
}
+ if bls.Filter == nil || bls.Filter.Rules == nil {
+ return nil, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "missing filters for %s/%s", bls.Keyspace, bls.Shard)
+ }
+
if ts.tables == nil {
for _, rule := range bls.Filter.Rules {
ts.tables = append(ts.tables, rule.Match)
@@ -2876,13 +2984,7 @@ func (s *Server) dropSources(ctx context.Context, ts *trafficSwitcher, removalTy
sw = &switcher{ts: ts, s: s}
}
- // Lock the workflow and its source and target keyspaces.
- lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
- ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "DropSources")
- if lockErr != nil {
- return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s workflow", lockName), lockErr)
- }
- defer workflowUnlock(&err)
+ // Lock the source and target keyspaces.
ctx, sourceUnlock, lockErr := sw.lockKeyspace(ctx, ts.SourceKeyspaceName(), "DropSources")
if lockErr != nil {
return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.SourceKeyspaceName()), lockErr)
@@ -3117,13 +3219,7 @@ func (s *Server) finalizeMigrateWorkflow(ctx context.Context, ts *trafficSwitche
sw = &switcher{s: s, ts: ts}
}
- // Lock the workflow and its target keyspace.
- lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
- ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "completeMigrateWorkflow")
- if lockErr != nil {
- return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s workflow", lockName), lockErr)
- }
- defer workflowUnlock(&err)
+ // Lock the target keyspace.
ctx, targetUnlock, lockErr := sw.lockKeyspace(ctx, ts.TargetKeyspaceName(), "completeMigrateWorkflow")
if lockErr != nil {
return defaultErrorHandler(ts.Logger(), fmt.Sprintf("failed to lock the %s keyspace", ts.TargetKeyspaceName()), lockErr)
@@ -3231,6 +3327,15 @@ func (s *Server) WorkflowSwitchTraffic(ctx context.Context, req *vtctldatapb.Wor
direction = DirectionForward
}
+ // Lock the workflow for the traffic switching work.
+ lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
+ ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "WorkflowSwitchTraffic")
+ if lockErr != nil {
+ ts.Logger().Errorf("Locking the workflow %s failed: %v", lockName, lockErr)
+ return nil, vterrors.Wrapf(lockErr, "failed to lock the %s workflow", lockName)
+ }
+ defer workflowUnlock(&err)
+
ts.force = req.GetForce()
if writesAlreadySwitched {
@@ -3521,14 +3626,6 @@ func (s *Server) switchWrites(ctx context.Context, req *vtctldatapb.WorkflowSwit
}
}
- // Lock the workflow and its source and target keyspaces.
- lockName := fmt.Sprintf("%s/%s", ts.TargetKeyspaceName(), ts.WorkflowName())
- ctx, workflowUnlock, lockErr := s.ts.LockName(ctx, lockName, "SwitchWrites")
- if lockErr != nil {
- return handleError(fmt.Sprintf("failed to lock the %s workflow", lockName), lockErr)
- }
- defer workflowUnlock(&err)
-
// We need to hold the keyspace locks longer than waitTimeout*X -- where X
// is the number of sub-steps where the waitTimeout value is used: stopping
// existing streams, waiting for replication to catch up, and initializing
diff --git a/go/vt/vtctl/workflow/server_test.go b/go/vt/vtctl/workflow/server_test.go
index 70b62f0a505..b7783fc2945 100644
--- a/go/vt/vtctl/workflow/server_test.go
+++ b/go/vt/vtctl/workflow/server_test.go
@@ -46,6 +46,7 @@ import (
querypb "vitess.io/vitess/go/vt/proto/query"
tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
+ vschemapb "vitess.io/vitess/go/vt/proto/vschema"
vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata"
)
@@ -740,16 +741,17 @@ func TestWorkflowDelete(t *testing.T) {
}
testcases := []struct {
- name string
- sourceKeyspace, targetKeyspace *testKeyspace
- preFunc func(t *testing.T, env *testEnv)
- req *vtctldatapb.WorkflowDeleteRequest
- expectedSourceQueries []*queryResult
- expectedTargetQueries []*queryResult
- want *vtctldatapb.WorkflowDeleteResponse
- wantErr string
- postFunc func(t *testing.T, env *testEnv)
- expectedLogs []string
+ name string
+ sourceKeyspace, targetKeyspace *testKeyspace
+ preFunc func(t *testing.T, env *testEnv)
+ req *vtctldatapb.WorkflowDeleteRequest
+ expectedSourceQueries []*queryResult
+ expectedTargetQueries []*queryResult
+ readVReplicationWorkflowRequest *readVReplicationWorkflowRequestResponse
+ want *vtctldatapb.WorkflowDeleteResponse
+ wantErr string
+ postFunc func(t *testing.T, env *testEnv)
+ expectedLogs []string
}{
{
name: "missing table",
@@ -810,6 +812,286 @@ func TestWorkflowDelete(t *testing.T) {
},
},
},
+ {
+ name: "multi-tenant workflow",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ readVReplicationWorkflowRequest: &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdatapb.ReadVReplicationWorkflowRequest{
+ Workflow: workflowName,
+ },
+ res: &tabletmanagerdatapb.ReadVReplicationWorkflowResponse{
+ Workflow: workflowName,
+ WorkflowType: binlogdatapb.VReplicationWorkflowType_MoveTables,
+ Options: `{"tenant_id": "1"}`,
+ Streams: []*tabletmanagerdatapb.ReadVReplicationWorkflowResponse_Stream{
+ {
+ Id: 1,
+ Bls: &binlogdatapb.BinlogSource{
+ Keyspace: sourceKeyspaceName,
+ Shard: "0",
+ Filter: &binlogdatapb.Filter{
+ Rules: []*binlogdatapb.Rule{
+ {
+ Match: "t1",
+ Filter: "select * from t1 where tenant_id = 1",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ preFunc: func(t *testing.T, env *testEnv) {
+ err := env.ts.SaveVSchema(ctx, targetKeyspaceName, &vschemapb.Keyspace{
+ Sharded: true,
+ MultiTenantSpec: &vschemapb.MultiTenantSpec{
+ TenantIdColumnName: "tenant_id",
+ TenantIdColumnType: sqltypes.Int64,
+ },
+ })
+ require.NoError(t, err)
+ },
+ want: &vtctldatapb.WorkflowDeleteResponse{
+ Summary: fmt.Sprintf("Successfully cancelled the %s workflow in the %s keyspace",
+ workflowName, targetKeyspaceName),
+ Details: []*vtctldatapb.WorkflowDeleteResponse_TabletInfo{
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID},
+ Deleted: true,
+ },
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID + tabletUIDStep},
+ Deleted: true,
+ },
+ },
+ },
+ },
+ {
+ name: "multi-tenant workflow with keep-data",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ KeepData: true,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ want: &vtctldatapb.WorkflowDeleteResponse{
+ Summary: fmt.Sprintf("Successfully cancelled the %s workflow in the %s keyspace",
+ workflowName, targetKeyspaceName),
+ Details: []*vtctldatapb.WorkflowDeleteResponse_TabletInfo{
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID},
+ Deleted: true,
+ },
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID + tabletUIDStep},
+ Deleted: true,
+ },
+ },
+ },
+ },
+ {
+ name: "multi-tenant reshard",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ readVReplicationWorkflowRequest: &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdatapb.ReadVReplicationWorkflowRequest{
+ Workflow: workflowName,
+ },
+ res: &tabletmanagerdatapb.ReadVReplicationWorkflowResponse{
+ Workflow: workflowName,
+ WorkflowType: binlogdatapb.VReplicationWorkflowType_Reshard,
+ Options: `{"tenant_id": "1"}`,
+ Streams: []*tabletmanagerdatapb.ReadVReplicationWorkflowResponse_Stream{
+ {
+ Id: 1,
+ Bls: &binlogdatapb.BinlogSource{
+ Keyspace: sourceKeyspaceName,
+ Shard: "0",
+ Filter: &binlogdatapb.Filter{
+ Rules: []*binlogdatapb.Rule{
+ {
+ Match: "t1",
+ Filter: "select * from t1 where tenant_id = 1",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ preFunc: func(t *testing.T, env *testEnv) {
+ err := env.ts.SaveVSchema(ctx, targetKeyspaceName, &vschemapb.Keyspace{
+ Sharded: true,
+ MultiTenantSpec: &vschemapb.MultiTenantSpec{
+ TenantIdColumnName: "tenant_id",
+ TenantIdColumnType: sqltypes.Int64,
+ },
+ })
+ require.NoError(t, err)
+ },
+ wantErr: "unsupported workflow type \"Reshard\" for multi-tenant migration",
+ },
+ {
+ name: "multi-tenant workflow without predicate ",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ readVReplicationWorkflowRequest: &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdatapb.ReadVReplicationWorkflowRequest{
+ Workflow: workflowName,
+ },
+ res: &tabletmanagerdatapb.ReadVReplicationWorkflowResponse{
+ Workflow: workflowName,
+ WorkflowType: binlogdatapb.VReplicationWorkflowType_Reshard,
+ Options: `{"tenant_id": "1"}`,
+ Streams: []*tabletmanagerdatapb.ReadVReplicationWorkflowResponse_Stream{
+ {
+ Id: 1,
+ Bls: &binlogdatapb.BinlogSource{
+ Keyspace: sourceKeyspaceName,
+ Shard: "0",
+ Filter: &binlogdatapb.Filter{
+ Rules: []*binlogdatapb.Rule{
+ {
+ Match: "t1",
+ Filter: "select * from t1 where tenant_id = 1",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ preFunc: func(t *testing.T, env *testEnv) {
+ err := env.ts.SaveVSchema(ctx, targetKeyspaceName, &vschemapb.Keyspace{
+ Sharded: true,
+ MultiTenantSpec: &vschemapb.MultiTenantSpec{
+ TenantIdColumnName: "tenant_id",
+ TenantIdColumnType: sqltypes.Int64,
+ },
+ })
+ require.NoError(t, err)
+ },
+ wantErr: "unsupported workflow type \"Reshard\" for multi-tenant migration",
+ },
+ {
+ name: "multi-tenant workflow without multi-tenant-spec in vschema",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ readVReplicationWorkflowRequest: &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdatapb.ReadVReplicationWorkflowRequest{
+ Workflow: workflowName,
+ },
+ res: &tabletmanagerdatapb.ReadVReplicationWorkflowResponse{
+ Workflow: workflowName,
+ WorkflowType: binlogdatapb.VReplicationWorkflowType_MoveTables,
+ Options: `{"tenant_id": "1"}`,
+ Streams: []*tabletmanagerdatapb.ReadVReplicationWorkflowResponse_Stream{
+ {
+ Id: 1,
+ Bls: &binlogdatapb.BinlogSource{
+ Keyspace: sourceKeyspaceName,
+ Shard: "0",
+ Filter: &binlogdatapb.Filter{
+ Rules: []*binlogdatapb.Rule{
+ {
+ Match: "t1",
+ Filter: "select * from t1 where tenant_id = 1",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ wantErr: "failed to fully delete all migrated data for tenant 1, please retry the operation: failed to build delete filter: target keyspace not defined, or it does not have multi-tenant spec",
+ },
{
name: "missing denied table entries",
sourceKeyspace: &testKeyspace{
@@ -934,6 +1216,13 @@ func TestWorkflowDelete(t *testing.T) {
env.tmc.expectVRQueryResultOnKeyspaceTablets(tc.targetKeyspace.KeyspaceName, eq)
}
}
+ if tc.readVReplicationWorkflowRequest != nil {
+ targetTablets := env.tablets[tc.targetKeyspace.KeyspaceName]
+ require.NotNil(t, targetTablets)
+ for _, tablet := range targetTablets {
+ env.tmc.expectReadVReplicationWorkflowRequest(tablet.Alias.Uid, tc.readVReplicationWorkflowRequest)
+ }
+ }
if tc.preFunc != nil {
tc.preFunc(t, env)
}
@@ -961,12 +1250,7 @@ func TestWorkflowDelete(t *testing.T) {
}
}
logs := memlogger.String()
- // Confirm that the custom logger was passed on to the trafficSwitcher
- // if we didn't expect/want an error as otherwise we may not have made
- // it into the trafficSwitcher.
- if tc.wantErr == "" {
- require.Contains(t, logs, "traffic_switcher.go")
- }
+ // Confirm that the custom logger was passed on to the trafficSwitcher.
for _, expectedLog := range tc.expectedLogs {
require.Contains(t, logs, expectedLog)
}
diff --git a/go/vt/vtctl/workflow/traffic_switcher.go b/go/vt/vtctl/workflow/traffic_switcher.go
index dd4975f7d43..937dffe70b3 100644
--- a/go/vt/vtctl/workflow/traffic_switcher.go
+++ b/go/vt/vtctl/workflow/traffic_switcher.go
@@ -225,7 +225,7 @@ type trafficSwitcher struct {
logger logutil.Logger
migrationType binlogdatapb.MigrationType
- isPartialMigration bool
+ isPartialMigration bool // Is this on a subset of shards
workflow string
// Should we continue if we encounter some potentially non-fatal errors such
@@ -295,7 +295,7 @@ func (ts *trafficSwitcher) ForAllSources(f func(source *MigrationSource) error)
return allErrors.AggrError(vterrors.Aggregate)
}
-func (ts *trafficSwitcher) ForAllTargets(f func(source *MigrationTarget) error) error {
+func (ts *trafficSwitcher) ForAllTargets(f func(target *MigrationTarget) error) error {
var wg sync.WaitGroup
allErrors := &concurrency.AllErrorRecorder{}
for _, target := range ts.targets {
@@ -990,15 +990,7 @@ func (ts *trafficSwitcher) createReverseVReplication(ctx context.Context) error
func (ts *trafficSwitcher) addTenantFilter(ctx context.Context, filter string) (string, error) {
parser := ts.ws.env.Parser()
- vschema, err := ts.TopoServer().GetVSchema(ctx, ts.targetKeyspace)
- if err != nil {
- return "", err
- }
- targetVSchema, err := vindexes.BuildKeyspaceSchema(vschema, ts.targetKeyspace, parser)
- if err != nil {
- return "", err
- }
- tenantClause, err := getTenantClause(ts.options, targetVSchema, parser)
+ tenantClause, err := ts.buildTenantPredicate(ctx)
if err != nil {
return "", err
}
@@ -1015,6 +1007,23 @@ func (ts *trafficSwitcher) addTenantFilter(ctx context.Context, filter string) (
return filter, nil
}
+func (ts *trafficSwitcher) buildTenantPredicate(ctx context.Context) (*sqlparser.Expr, error) {
+ parser := ts.ws.env.Parser()
+ vschema, err := ts.TopoServer().GetVSchema(ctx, ts.targetKeyspace)
+ if err != nil {
+ return nil, err
+ }
+ targetVSchema, err := vindexes.BuildKeyspaceSchema(vschema, ts.targetKeyspace, parser)
+ if err != nil {
+ return nil, err
+ }
+ tenantPredicate, err := getTenantClause(ts.options, targetVSchema, parser)
+ if err != nil {
+ return nil, err
+ }
+ return tenantPredicate, nil
+}
+
func (ts *trafficSwitcher) waitForCatchup(ctx context.Context, filteredReplicationWaitTime time.Duration) error {
ctx, cancel := context.WithTimeout(ctx, filteredReplicationWaitTime)
defer cancel()
diff --git a/go/vt/vtctl/workflow/workflow_state_test.go b/go/vt/vtctl/workflow/workflow_state_test.go
index d64b6b36a86..96f63f8ab31 100644
--- a/go/vt/vtctl/workflow/workflow_state_test.go
+++ b/go/vt/vtctl/workflow/workflow_state_test.go
@@ -82,8 +82,10 @@ func setupMoveTables(t *testing.T, ctx context.Context) *testEnv {
for _, resp := range workflowResponses {
te.tmc.AddVReplicationWorkflowsResponse(workflowKey, resp)
}
- te.tmc.readVReplicationWorkflowRequests[200] = &tabletmanagerdata.ReadVReplicationWorkflowRequest{
- Workflow: "wf1",
+ te.tmc.readVReplicationWorkflowRequests[200] = &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdata.ReadVReplicationWorkflowRequest{
+ Workflow: "wf1",
+ },
}
te.updateTableRoutingRules(t, ctx, nil, []string{"t1"},
"source", te.targetKeyspace.KeyspaceName, "source")
diff --git a/go/vt/vttablet/faketmclient/fake_client.go b/go/vt/vttablet/faketmclient/fake_client.go
index af9000a92c6..6ce22310ce9 100644
--- a/go/vt/vttablet/faketmclient/fake_client.go
+++ b/go/vt/vttablet/faketmclient/fake_client.go
@@ -66,6 +66,10 @@ func (client *FakeTabletManagerClient) CreateVReplicationWorkflow(ctx context.Co
return nil, nil
}
+func (client *FakeTabletManagerClient) DeleteTableData(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ return nil, nil
+}
+
func (client *FakeTabletManagerClient) DeleteVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error) {
return nil, nil
}
diff --git a/go/vt/vttablet/grpctmclient/client.go b/go/vt/vttablet/grpctmclient/client.go
index b59314a1116..d3fe6055b19 100644
--- a/go/vt/vttablet/grpctmclient/client.go
+++ b/go/vt/vttablet/grpctmclient/client.go
@@ -910,6 +910,19 @@ func (client *Client) CreateVReplicationWorkflow(ctx context.Context, tablet *to
return response, nil
}
+func (client *Client) DeleteTableData(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ c, closer, err := client.dialer.dial(ctx, tablet)
+ if err != nil {
+ return nil, err
+ }
+ defer closer.Close()
+ response, err := c.DeleteTableData(ctx, request)
+ if err != nil {
+ return nil, err
+ }
+ return response, nil
+}
+
func (client *Client) DeleteVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error) {
c, closer, err := client.dialer.dial(ctx, tablet)
if err != nil {
diff --git a/go/vt/vttablet/grpctmserver/server.go b/go/vt/vttablet/grpctmserver/server.go
index fb2dc8730cd..f7e0cce9642 100644
--- a/go/vt/vttablet/grpctmserver/server.go
+++ b/go/vt/vttablet/grpctmserver/server.go
@@ -444,6 +444,13 @@ func (s *server) CreateVReplicationWorkflow(ctx context.Context, request *tablet
return s.tm.CreateVReplicationWorkflow(ctx, request)
}
+func (s *server) DeleteTableData(ctx context.Context, request *tabletmanagerdatapb.DeleteTableDataRequest) (response *tabletmanagerdatapb.DeleteTableDataResponse, err error) {
+ defer s.tm.HandleRPCPanic(ctx, "DeleteTableData", request, response, true /*verbose*/, &err)
+ ctx = callinfo.GRPCCallInfo(ctx)
+ response = &tabletmanagerdatapb.DeleteTableDataResponse{}
+ return s.tm.DeleteTableData(ctx, request)
+}
+
func (s *server) DeleteVReplicationWorkflow(ctx context.Context, request *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (response *tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, err error) {
defer s.tm.HandleRPCPanic(ctx, "DeleteVReplicationWorkflow", request, response, true /*verbose*/, &err)
ctx = callinfo.GRPCCallInfo(ctx)
diff --git a/go/vt/vttablet/tabletmanager/framework_test.go b/go/vt/vttablet/tabletmanager/framework_test.go
index 235187a910a..628b79d55f2 100644
--- a/go/vt/vttablet/tabletmanager/framework_test.go
+++ b/go/vt/vttablet/tabletmanager/framework_test.go
@@ -27,9 +27,6 @@ import (
"github.com/stretchr/testify/require"
- replicationdatapb "vitess.io/vitess/go/vt/proto/replicationdata"
- vttablet "vitess.io/vitess/go/vt/vttablet/common"
-
"vitess.io/vitess/go/mysql/fakesqldb"
"vitess.io/vitess/go/mysql/replication"
"vitess.io/vitess/go/sqltypes"
@@ -40,6 +37,8 @@ import (
"vitess.io/vitess/go/vt/mysqlctl/tmutils"
"vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/topo/memorytopo"
+ "vitess.io/vitess/go/vt/vtenv"
+ vttablet "vitess.io/vitess/go/vt/vttablet/common"
"vitess.io/vitess/go/vt/vttablet/queryservice"
"vitess.io/vitess/go/vt/vttablet/tabletconn"
"vitess.io/vitess/go/vt/vttablet/tabletconntest"
@@ -49,6 +48,7 @@ import (
binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata"
querypb "vitess.io/vitess/go/vt/proto/query"
+ replicationdatapb "vitess.io/vitess/go/vt/proto/replicationdata"
tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
)
@@ -81,6 +81,7 @@ type testEnv struct {
ctx context.Context
ts *topo.Server
cells []string
+ db *fakesqldb.DB
mysqld *mysqlctl.FakeMysqlDaemon
tmc *fakeTMClient
dbName string
@@ -117,9 +118,13 @@ func newTestEnv(t *testing.T, ctx context.Context, sourceKeyspace string, source
})
tmclienttest.SetProtocol(fmt.Sprintf("go.vt.vttablet.tabletmanager.framework_test_%s", t.Name()), tenv.protoName)
- tenv.mysqld = mysqlctl.NewFakeMysqlDaemon(fakesqldb.New(t))
+ tenv.db = fakesqldb.New(t)
+ tenv.mysqld = mysqlctl.NewFakeMysqlDaemon(tenv.db)
curPosition, err := replication.ParsePosition(gtidFlavor, gtidPosition)
+ require.NoError(t, err)
tenv.mysqld.SetPrimaryPositionLocked(curPosition)
+
+ err = tenv.ts.RebuildSrvVSchema(ctx, nil)
require.NoError(t, err)
return tenv
@@ -184,8 +189,11 @@ func (tenv *testEnv) addTablet(t *testing.T, id int, keyspace, shard string) *fa
DBConfigs: &dbconfigs.DBConfigs{
DBName: tenv.dbName,
},
+ Env: vtenv.NewTestEnv(),
+ _waitForGrantsComplete: make(chan struct{}),
+ MysqlDaemon: tenv.mysqld,
}
-
+ close(tenv.tmc.tablets[id].tm._waitForGrantsComplete) // So that we don't wait for the grants
return tenv.tmc.tablets[id]
}
@@ -513,9 +521,9 @@ func (tmc *fakeTMClient) VReplicationWaitForPos(ctx context.Context, tablet *top
}
func (tmc *fakeTMClient) ExecuteFetchAsAllPrivs(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.ExecuteFetchAsAllPrivsRequest) (*querypb.QueryResult, error) {
- return &querypb.QueryResult{
- RowsAffected: 1,
- }, nil
+ tmc.mu.Lock()
+ defer tmc.mu.Unlock()
+ return tmc.tablets[int(tablet.Alias.Uid)].tm.ExecuteFetchAsAllPrivs(ctx, req)
}
func (tmc *fakeTMClient) VDiff(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.VDiffRequest) (*tabletmanagerdatapb.VDiffResponse, error) {
@@ -534,6 +542,12 @@ func (tmc *fakeTMClient) CreateVReplicationWorkflow(ctx context.Context, tablet
return tmc.tablets[int(tablet.Alias.Uid)].tm.CreateVReplicationWorkflow(ctx, req)
}
+func (tmc *fakeTMClient) DeleteTableData(ctx context.Context, tablet *topodatapb.Tablet, req *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ tmc.mu.Lock()
+ defer tmc.mu.Unlock()
+ return tmc.tablets[int(tablet.Alias.Uid)].tm.DeleteTableData(ctx, req)
+}
+
func (tmc *fakeTMClient) DeleteVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (response *tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, err error) {
tmc.mu.Lock()
defer tmc.mu.Unlock()
diff --git a/go/vt/vttablet/tabletmanager/rpc_agent.go b/go/vt/vttablet/tabletmanager/rpc_agent.go
index b0b7ac4dbd2..41eb2bf8fde 100644
--- a/go/vt/vttablet/tabletmanager/rpc_agent.go
+++ b/go/vt/vttablet/tabletmanager/rpc_agent.go
@@ -116,6 +116,7 @@ type RPCTM interface {
// VReplication API
CreateVReplicationWorkflow(ctx context.Context, req *tabletmanagerdatapb.CreateVReplicationWorkflowRequest) (*tabletmanagerdatapb.CreateVReplicationWorkflowResponse, error)
+ DeleteTableData(ctx context.Context, req *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error)
DeleteVReplicationWorkflow(ctx context.Context, req *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error)
HasVReplicationWorkflows(ctx context.Context, req *tabletmanagerdatapb.HasVReplicationWorkflowsRequest) (*tabletmanagerdatapb.HasVReplicationWorkflowsResponse, error)
ReadVReplicationWorkflows(ctx context.Context, req *tabletmanagerdatapb.ReadVReplicationWorkflowsRequest) (*tabletmanagerdatapb.ReadVReplicationWorkflowsResponse, error)
diff --git a/go/vt/vttablet/tabletmanager/rpc_throttler.go b/go/vt/vttablet/tabletmanager/rpc_throttler.go
index ec75db6da43..1617a5b275b 100644
--- a/go/vt/vttablet/tabletmanager/rpc_throttler.go
+++ b/go/vt/vttablet/tabletmanager/rpc_throttler.go
@@ -21,14 +21,15 @@ import (
"vitess.io/vitess/go/protoutil"
"vitess.io/vitess/go/stats"
- tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
- topodatapb "vitess.io/vitess/go/vt/proto/topodata"
"vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/topo/topoproto"
"vitess.io/vitess/go/vt/vterrors"
"vitess.io/vitess/go/vt/vttablet/tabletserver/throttle"
"vitess.io/vitess/go/vt/vttablet/tabletserver/throttle/base"
"vitess.io/vitess/go/vt/vttablet/tabletserver/throttle/throttlerapp"
+
+ tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
+ topodatapb "vitess.io/vitess/go/vt/proto/topodata"
)
var (
diff --git a/go/vt/vttablet/tabletmanager/rpc_vreplication.go b/go/vt/vttablet/tabletmanager/rpc_vreplication.go
index 4060ecd650b..8ddf1391ac4 100644
--- a/go/vt/vttablet/tabletmanager/rpc_vreplication.go
+++ b/go/vt/vttablet/tabletmanager/rpc_vreplication.go
@@ -21,20 +21,25 @@ import (
"fmt"
"sort"
"strings"
+ "time"
"golang.org/x/exp/maps"
"google.golang.org/protobuf/encoding/prototext"
+ "vitess.io/vitess/go/cmd/vtctldclient/command/vreplication/movetables"
"vitess.io/vitess/go/constants/sidecar"
"vitess.io/vitess/go/protoutil"
"vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/textutil"
"vitess.io/vitess/go/vt/discovery"
+ "vitess.io/vitess/go/vt/log"
+ "vitess.io/vitess/go/vt/logutil"
"vitess.io/vitess/go/vt/proto/vttime"
"vitess.io/vitess/go/vt/sqlparser"
"vitess.io/vitess/go/vt/topo/topoproto"
"vitess.io/vitess/go/vt/vtctl/workflow"
"vitess.io/vitess/go/vt/vterrors"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/throttle/throttlerapp"
binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata"
querypb "vitess.io/vitess/go/vt/proto/query"
@@ -139,6 +144,99 @@ func (tm *TabletManager) CreateVReplicationWorkflow(ctx context.Context, req *ta
return &tabletmanagerdatapb.CreateVReplicationWorkflowResponse{Result: sqltypes.ResultToProto3(res)}, nil
}
+// DeleteTableData will delete data from the given tables (keys in the
+// req.Tabletfilters map) using the given filter or WHERE clauses (values
+// in the map). It will perform this work in batches of req.BatchSize
+// until all matching rows have been deleted in all tables, or the context
+// expires.
+func (tm *TabletManager) DeleteTableData(ctx context.Context, req *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ if req == nil {
+ return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "invalid nil request")
+ }
+
+ if len(req.TableFilters) == 0 { // Nothing to do
+ return &tabletmanagerdatapb.DeleteTableDataResponse{}, nil
+ }
+
+ // So that we do them in a predictable and uniform order.
+ tables := maps.Keys(req.TableFilters)
+ sort.Strings(tables)
+
+ batchSize := req.BatchSize
+ if batchSize < 1 {
+ batchSize = movetables.DefaultDeleteBatchSize
+ }
+ limit := &sqlparser.Limit{Rowcount: sqlparser.NewIntLiteral(fmt.Sprintf("%d", batchSize))}
+ // We will log some progress info every 100 delete batches.
+ progressRows := uint64(batchSize * 100)
+
+ throttledLogger := logutil.NewThrottledLogger("DeleteTableData", 1*time.Minute)
+ checkIfCanceled := func() error {
+ select {
+ case <-ctx.Done():
+ return vterrors.Wrap(ctx.Err(), "context expired while deleting data")
+ default:
+ return nil
+ }
+ }
+
+ for _, table := range tables {
+ stmt, err := tm.Env.Parser().Parse(fmt.Sprintf("delete from %s %s", table, req.TableFilters[table]))
+ if err != nil {
+ return nil, vterrors.Wrapf(err, "unable to build delete query for table %s", table)
+ }
+ del, ok := stmt.(*sqlparser.Delete)
+ if !ok {
+ return nil, vterrors.Wrapf(err, "unable to build delete query for table %s", table)
+ }
+ del.Limit = limit
+ query := sqlparser.String(del)
+ rowsDeleted := uint64(0)
+ // Delete all of the matching rows from the table, in batches, until we've
+ // deleted them all.
+ log.Infof("Starting deletion of data from table %s using query %q", table, query)
+ for {
+ // Back off if we're causing too much load on the database with these
+ // batch deletes.
+ if _, ok := tm.VREngine.ThrottlerClient().ThrottleCheckOKOrWaitAppName(ctx, throttlerapp.VReplicationName); !ok {
+ throttledLogger.Infof("throttling bulk data delete for table %s using query %q",
+ table, query)
+ if err := checkIfCanceled(); err != nil {
+ return nil, err
+ }
+ continue
+ }
+ res, err := tm.ExecuteFetchAsAllPrivs(ctx,
+ &tabletmanagerdatapb.ExecuteFetchAsAllPrivsRequest{
+ Query: []byte(query),
+ DbName: tm.DBConfigs.DBName,
+ })
+ if err != nil {
+ return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "error deleting data using query %q: %v",
+ query, err)
+ }
+ rowsDeleted += res.RowsAffected
+ // Log some progress info periodically to give the operator some idea of
+ // how much work we've done, how much is left, and how long it may take
+ // (considering throttling, system performance, etc).
+ if rowsDeleted%progressRows == 0 {
+ log.Infof("Successfully deleted %d rows of data from table %s so far, using query %q",
+ rowsDeleted, table, query)
+ }
+ if res.RowsAffected == 0 { // We're done with this table
+ break
+ }
+ if err := checkIfCanceled(); err != nil {
+ return nil, err
+ }
+ }
+ log.Infof("Completed deletion of data (%d rows) from table %s using query %q",
+ rowsDeleted, table, query)
+ }
+
+ return &tabletmanagerdatapb.DeleteTableDataResponse{}, nil
+}
+
func (tm *TabletManager) DeleteVReplicationWorkflow(ctx context.Context, req *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error) {
if req == nil || req.Workflow == "" {
return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "invalid request, no workflow provided")
diff --git a/go/vt/vttablet/tabletmanager/rpc_vreplication_test.go b/go/vt/vttablet/tabletmanager/rpc_vreplication_test.go
index ffd137c8c69..0a5bd9f26fd 100644
--- a/go/vt/vttablet/tabletmanager/rpc_vreplication_test.go
+++ b/go/vt/vttablet/tabletmanager/rpc_vreplication_test.go
@@ -81,6 +81,7 @@ const (
readWorkflow = "select id, source, pos, stop_pos, max_tps, max_replication_lag, cell, tablet_types, time_updated, transaction_timestamp, state, message, db_name, rows_copied, tags, time_heartbeat, workflow_type, time_throttled, component_throttled, workflow_sub_type, defer_secondary_keys, options from _vt.vreplication where workflow = '%s' and db_name = '%s'"
readWorkflowConfig = "select id, source, cell, tablet_types, state, message from _vt.vreplication where workflow = '%s'"
updateWorkflow = "update _vt.vreplication set state = '%s', source = '%s', cell = '%s', tablet_types = '%s' where id in (%d)"
+ getNonEmptyTableQuery = "select 1 from `%s` limit 1"
)
var (
@@ -285,9 +286,11 @@ func TestCreateVReplicationWorkflow(t *testing.T) {
// This is our expected query, which will also short circuit
// the test with an error as at this point we've tested what
// we wanted to test.
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ for _, table := range tt.schema.TableDefinitions {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.Name), &sqltypes.Result{})
+ }
targetTablet.vrdbClient.ExpectRequest(tt.query, &sqltypes.Result{}, errShortCircuit)
_, err := ws.MoveTablesCreate(ctx, tt.req)
tenv.tmc.tablets[targetTabletUID].vrdbClient.Wait()
@@ -660,6 +663,9 @@ func TestMoveTablesSharded(t *testing.T) {
ftc.vrdbClient.AddInvariant(getCopyStateQuery, &sqltypes.Result{})
tenv.tmc.setVReplicationExecResults(ftc.tablet, getCopyState, &sqltypes.Result{})
ftc.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range defaultSchema.TableDefinitions {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.Name), &sqltypes.Result{})
+ }
insert := fmt.Sprintf(`%s values ('%s', 'keyspace:"%s" shard:"%s" filter:{rules:{match:"t1" filter:"select * from t1 where in_keyrange(id, \'%s.hash\', \'%s\')"}}', '', 0, 0, '%s', 'primary,replica,rdonly', now(), 0, 'Stopped', '%s', %d, 0, 0, '{}')`,
insertVReplicationPrefix, wf, sourceKs, sourceShard, targetKs, ftc.tablet.Shard, tenv.cells[0], tenv.dbName, vreplID)
ftc.vrdbClient.ExpectRequest(insert, &sqltypes.Result{InsertID: 1}, nil)
@@ -1329,9 +1335,12 @@ func TestSourceShardSelection(t *testing.T) {
}
for uid, streams := range tt.streams {
- tt := targetTablets[uid]
- tt.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
- tt.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ targetTablet := targetTablets[uid]
+ targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range tt.schema.TableDefinitions {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.Name), &sqltypes.Result{})
+ }
for i, sourceShard := range streams {
var err error
if i == len(streams)-1 {
@@ -1340,25 +1349,26 @@ func TestSourceShardSelection(t *testing.T) {
// everything we wanted to in the test.
err = errShortCircuit
}
- tt.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
- tt.vrdbClient.ExpectRequest(
+ targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.ExpectRequest(
fmt.Sprintf(`%s values ('%s', 'keyspace:"%s" shard:"%s" filter:{rules:{match:"t1" filter:"select * from t1 where in_keyrange(id, \'%s.hash\', \'%s\')"}}', '', 0, 0, '%s', '', now(), 0, 'Stopped', '%s', 1, 0, 0, '{}')`,
- insertVReplicationPrefix, wf, sourceKs, sourceShard, targetKs, tt.tablet.Shard, tenv.cells[0], tenv.dbName),
+ insertVReplicationPrefix, wf, sourceKs, sourceShard, targetKs, targetTablet.tablet.Shard, tenv.cells[0], tenv.dbName),
&sqltypes.Result{InsertID: uint64(i + 1)},
err,
)
if errors.Is(err, errShortCircuit) {
break
}
- tt.vrdbClient.ExpectRequest(getAutoIncrementStep, &sqltypes.Result{}, nil)
- tt.vrdbClient.ExpectRequest(
+ targetTablet.vrdbClient.ExpectRequest(getAutoIncrementStep, &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.ExpectRequest(
fmt.Sprintf("select * from _vt.vreplication where id = %d", uint64(i+1)),
sqltypes.MakeTestResult(
sqltypes.MakeTestFields(
"id|source|state|options",
"int64|varchar|varchar|varchar",
),
- fmt.Sprintf("%d|%s|Stopped|{}", uint64(i+1), fmt.Sprintf(`keyspace:"%s" shard:"%s" filter:{rules:{match:"t1" filter:"select * from t1 where in_keyrange(id, '%s.hash', '%s')"}}`, sourceKs, sourceShard, targetKs, tt.tablet.Shard)),
+ fmt.Sprintf("%d|%s|Stopped|{}", uint64(i+1), fmt.Sprintf(`keyspace:"%s" shard:"%s" filter:{rules:{match:"t1" filter:"select * from t1 where in_keyrange(id, '%s.hash', '%s')"}}`,
+ sourceKs, sourceShard, targetKs, targetTablet.tablet.Shard)),
),
nil,
)
@@ -1422,6 +1432,9 @@ func TestFailedMoveTablesCreateCleanup(t *testing.T) {
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
tenv.tmc.tablets[targetTabletUID].vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range defaultSchema.TableDefinitions {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.Name), &sqltypes.Result{})
+ }
targetTablet.vrdbClient.ExpectRequest(
fmt.Sprintf("%s %s",
insertVReplicationPrefix,
@@ -1707,8 +1720,11 @@ func TestReadVReplicationWorkflows(t *testing.T) {
require.NotNil(t, tt.req, "No request provided")
if !tt.wantErr { // Errors we're testing for occur before executing any queries.
- tablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ tablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
tablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, tt.wantPreds), &sqltypes.Result{}, nil)
+ for _, table := range defaultSchema.TableDefinitions {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.Name), &sqltypes.Result{})
+ }
}
_, err := tenv.tmc.ReadVReplicationWorkflows(ctx, tablet.tablet, tt.req)
@@ -2099,9 +2115,11 @@ func TestMaterializerOneToOne(t *testing.T) {
addMaterializeSettingsTablesToSchema(ms, tenv, vtenv)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
// This is our expected query, which will also short circuit
// the test with an error as at this point we've tested what
@@ -2163,6 +2181,9 @@ func TestMaterializerManyToOne(t *testing.T) {
addMaterializeSettingsTablesToSchema(ms, tenv, vtenv)
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
// This is our expected query, which will also short circuit
// the test with an error as at this point we've tested what
@@ -2271,6 +2292,9 @@ func TestMaterializerOneToMany(t *testing.T) {
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
bls := fmt.Sprintf("keyspace:\"%s\" shard:\"%s\" filter:{rules:{match:\"t1\" filter:\"select * from t1 where in_keyrange(c1, '%s.xxhash', '%s')\"}}",
sourceKs, sourceShard, targetKs, targetShard)
@@ -2376,6 +2400,9 @@ func TestMaterializerManyToMany(t *testing.T) {
targetTablet := targetShards[targetShard]
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
for i, sourceShard := range []string{"-40", "40-"} { // One insert per [binlog]source/stream
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID+(i*10), position, wf, tenv.cells[0])
@@ -2487,6 +2514,9 @@ func TestMaterializerMulticolumnVindex(t *testing.T) {
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
bls := fmt.Sprintf("keyspace:\"%s\" shard:\"%s\" filter:{rules:{match:\"t1\" filter:\"select * from t1 where in_keyrange(c1, c2, '%s.region', '%s')\"}}",
sourceKs, sourceShard, targetKs, targetShard)
@@ -2573,9 +2603,11 @@ func TestMaterializerDeploySchema(t *testing.T) {
}
}
tenv.tmc.tabletSchemas[targetTabletUID] = schema
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
tenv.tmc.setVReplicationExecResults(targetTablet.tablet, `t2ddl`, &sqltypes.Result{}) // Execute the fake CreateDdl
// This is our expected query, which will also short circuit
@@ -2644,9 +2676,11 @@ func TestMaterializerCopySchema(t *testing.T) {
}
}
tenv.tmc.tabletSchemas[targetTabletUID] = schema
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
// This is our expected query, which will also short circuit
// the test with an error as at this point we've tested what
@@ -2734,6 +2768,9 @@ func TestMaterializerExplicitColumns(t *testing.T) {
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
bls := fmt.Sprintf("keyspace:\"%s\" shard:\"%s\" filter:{rules:{match:\"t1\" filter:\"select c1, c1 + c2, c2 from t1 where in_keyrange(c1, c2, '%s.region', '%s')\"}}",
sourceKs, sourceShard, targetKs, targetShard)
@@ -2841,6 +2878,9 @@ func TestMaterializerRenamedColumns(t *testing.T) {
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.AddInvariant("update _vt.vreplication set message='no schema defined' where id=1", &sqltypes.Result{}) // If the first workflow controller progresses ...
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
bls := fmt.Sprintf("keyspace:\"%s\" shard:\"%s\" filter:{rules:{match:\"t1\" filter:\"select c3 as c1, c1 + c2, c4 as c2 from t1 where in_keyrange(c3, c4, '%s.region', '%s')\"}}",
sourceKs, sourceShard, targetKs, targetShard)
@@ -2919,9 +2959,11 @@ func TestMaterializerStopAfterCopy(t *testing.T) {
addMaterializeSettingsTablesToSchema(ms, tenv, vtenv)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ targetTablet.vrdbClient.AddInvariant(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
- targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
// This is our expected query, which will also short circuit
// the test with an error as at this point we've tested what
@@ -2980,6 +3022,9 @@ func TestMaterializerNoTargetVSchema(t *testing.T) {
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err = ws.Materialize(ctx, ms)
targetTablet.vrdbClient.Wait()
@@ -3025,6 +3070,9 @@ func TestMaterializerNoDDL(t *testing.T) {
tenv.tmc.tabletSchemas[targetTabletUID] = &tabletmanagerdatapb.SchemaDefinition{}
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "target table t1 does not exist and there is no create ddl defined")
@@ -3122,6 +3170,9 @@ func TestMaterializerTableMismatchNonCopy(t *testing.T) {
tenv.tmc.tabletSchemas[targetTabletUID] = &tabletmanagerdatapb.SchemaDefinition{}
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "target table t1 does not exist and there is no create ddl defined")
@@ -3168,6 +3219,9 @@ func TestMaterializerTableMismatchCopy(t *testing.T) {
tenv.tmc.tabletSchemas[targetTabletUID] = &tabletmanagerdatapb.SchemaDefinition{}
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "source and target table names must match for copying schema: t2 vs t1")
@@ -3210,6 +3264,9 @@ func TestMaterializerNoSourceTable(t *testing.T) {
tenv.tmc.tabletSchemas[targetTabletUID] = &tabletmanagerdatapb.SchemaDefinition{}
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "source table t1 does not exist")
@@ -3258,6 +3315,9 @@ func TestMaterializerSyntaxError(t *testing.T) {
tenv.tmc.setVReplicationExecResults(targetTablet.tablet, ms.TableSettings[0].CreateDdl, &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "syntax error at position 4 near 'bad'")
@@ -3306,6 +3366,9 @@ func TestMaterializerNotASelect(t *testing.T) {
tenv.tmc.setVReplicationExecResults(targetTablet.tablet, ms.TableSettings[0].CreateDdl, &sqltypes.Result{})
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf("use %s", sidecar.GetIdentifier()), &sqltypes.Result{}, nil)
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
err := ws.Materialize(ctx, ms)
require.EqualError(t, err, "unrecognized statement: update t1 set val=1")
@@ -3384,6 +3447,9 @@ func TestMaterializerNoGoodVindex(t *testing.T) {
targetTablet := targetShards[targetShard]
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
errs = append(errs, errNoVindex)
}
@@ -3459,6 +3525,9 @@ func TestMaterializerComplexVindexExpression(t *testing.T) {
targetTablet := targetShards[targetShard]
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
errs = append(errs, errNoVindex)
}
@@ -3534,6 +3603,9 @@ func TestMaterializerNoVindexInExpression(t *testing.T) {
targetTablet := targetShards[targetShard]
addInvariants(targetTablet.vrdbClient, vreplID, sourceTabletUID, position, wf, tenv.cells[0])
targetTablet.vrdbClient.ExpectRequest(fmt.Sprintf(readAllWorkflows, tenv.dbName, ""), &sqltypes.Result{}, nil)
+ for _, table := range ms.TableSettings {
+ tenv.db.AddQuery(fmt.Sprintf(getNonEmptyTableQuery, table.TargetTable), &sqltypes.Result{})
+ }
errs = append(errs, errNoVindex)
}
@@ -3669,3 +3741,81 @@ func TestBuildUpdateVReplicationWorkflowsQuery(t *testing.T) {
})
}
}
+
+func TestDeleteTableData(t *testing.T) {
+ ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
+ defer cancel()
+ sourceKs := "sourceks"
+ sourceShard := "0"
+ sourceTabletUID := 200
+ tenv := newTestEnv(t, ctx, sourceKs, []string{shard})
+ defer tenv.close()
+
+ tablet := tenv.addTablet(t, sourceTabletUID, sourceKs, sourceShard)
+ defer tenv.deleteTablet(tablet.tablet)
+
+ testCases := []struct {
+ name string
+ req *tabletmanagerdatapb.DeleteTableDataRequest
+ workflowType *binlogdatapb.VReplicationWorkflowType
+ expectedQueries []string
+ wantErr string
+ }{
+ {
+ name: "no request",
+ req: nil,
+ wantErr: "invalid nil request",
+ },
+ {
+ name: "one table",
+ req: &tabletmanagerdatapb.DeleteTableDataRequest{
+ TableFilters: map[string]string{
+ "t1": "where tenant_id = 1",
+ },
+ BatchSize: 100,
+ },
+ expectedQueries: []string{
+ "delete from t1 where tenant_id = 1 limit 100",
+ },
+ },
+ {
+ name: "one table without batch size",
+ req: &tabletmanagerdatapb.DeleteTableDataRequest{
+ TableFilters: map[string]string{
+ "t1": "where tenant_id = 1",
+ },
+ },
+ expectedQueries: []string{
+ "delete from t1 where tenant_id = 1 limit 1000", // Default batch size of 1,000
+ },
+ },
+ {
+ name: "multiple tables",
+ req: &tabletmanagerdatapb.DeleteTableDataRequest{
+ TableFilters: map[string]string{
+ "t1": "where tenant_id = 1",
+ "t2": "where foo = 2",
+ },
+ BatchSize: 500,
+ },
+ expectedQueries: []string{
+ "delete from t1 where tenant_id = 1 limit 500",
+ "delete from t2 where foo = 2 limit 500",
+ },
+ },
+ }
+ for _, tc := range testCases {
+ t.Run(tc.name, func(t *testing.T) {
+ tenv.db.AddQuery(fmt.Sprintf("use `%s`", tenv.dbName), &sqltypes.Result{})
+ for _, query := range tc.expectedQueries {
+ tenv.db.AddQuery(query, &sqltypes.Result{})
+ }
+ _, err := tenv.tmc.DeleteTableData(ctx, tablet.tablet, tc.req)
+ if tc.wantErr != "" {
+ require.EqualError(t, err, tc.wantErr)
+ } else {
+ require.NoError(t, err)
+ }
+ })
+ }
+}
diff --git a/go/vt/vttablet/tabletmanager/vreplication/engine.go b/go/vt/vttablet/tabletmanager/vreplication/engine.go
index c4832a59b6a..e692781538a 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/engine.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/engine.go
@@ -229,6 +229,10 @@ func (vre *Engine) Open(ctx context.Context) {
log.Infof("VReplication engine opened successfully")
}
+func (vre *Engine) ThrottlerClient() *throttle.Client {
+ return vre.throttlerClient
+}
+
func (vre *Engine) openLocked(ctx context.Context) error {
rows, err := vre.readAllRows(ctx)
if err != nil {
diff --git a/go/vt/vttablet/tmclient/rpc_client_api.go b/go/vt/vttablet/tmclient/rpc_client_api.go
index cddb869513f..2dfe20d8658 100644
--- a/go/vt/vttablet/tmclient/rpc_client_api.go
+++ b/go/vt/vttablet/tmclient/rpc_client_api.go
@@ -205,6 +205,7 @@ type TabletManagerClient interface {
//
CreateVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.CreateVReplicationWorkflowRequest) (*tabletmanagerdatapb.CreateVReplicationWorkflowResponse, error)
+ DeleteTableData(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error)
DeleteVReplicationWorkflow(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error)
HasVReplicationWorkflows(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.HasVReplicationWorkflowsRequest) (*tabletmanagerdatapb.HasVReplicationWorkflowsResponse, error)
ReadVReplicationWorkflows(ctx context.Context, tablet *topodatapb.Tablet, request *tabletmanagerdatapb.ReadVReplicationWorkflowsRequest) (*tabletmanagerdatapb.ReadVReplicationWorkflowsResponse, error)
diff --git a/go/vt/vttablet/tmrpctest/test_tm_rpc.go b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
index 837c090d09f..1d8b5cb10ee 100644
--- a/go/vt/vttablet/tmrpctest/test_tm_rpc.go
+++ b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
@@ -61,6 +61,11 @@ func (fra *fakeRPCTM) CreateVReplicationWorkflow(ctx context.Context, req *table
panic("implement me")
}
+func (fra *fakeRPCTM) DeleteTableData(ctx context.Context, req *tabletmanagerdatapb.DeleteTableDataRequest) (*tabletmanagerdatapb.DeleteTableDataResponse, error) {
+ // TODO implement me
+ panic("implement me")
+}
+
func (fra *fakeRPCTM) DeleteVReplicationWorkflow(ctx context.Context, req *tabletmanagerdatapb.DeleteVReplicationWorkflowRequest) (*tabletmanagerdatapb.DeleteVReplicationWorkflowResponse, error) {
// TODO implement me
panic("implement me")
diff --git a/proto/tabletmanagerdata.proto b/proto/tabletmanagerdata.proto
index 3c06c0dd40c..1c2d785c21c 100644
--- a/proto/tabletmanagerdata.proto
+++ b/proto/tabletmanagerdata.proto
@@ -605,6 +605,18 @@ message CreateVReplicationWorkflowResponse {
query.QueryResult result = 1;
}
+message DeleteTableDataRequest {
+ // The key is the table that we want to delete data from.
+ // The value is the filter or WHERE clause to use when deleting
+ // data in the table.
+ map table_filters = 1;
+ // BatchSize is the number of rows to delete in a single batch.
+ int64 batch_size = 2;
+}
+
+message DeleteTableDataResponse {
+}
+
message DeleteVReplicationWorkflowRequest {
string workflow = 1;
}
diff --git a/proto/tabletmanagerservice.proto b/proto/tabletmanagerservice.proto
index bb8b0af9c39..56ae6dde0dc 100644
--- a/proto/tabletmanagerservice.proto
+++ b/proto/tabletmanagerservice.proto
@@ -136,6 +136,7 @@ service TabletManager {
// VReplication API
rpc CreateVReplicationWorkflow(tabletmanagerdata.CreateVReplicationWorkflowRequest) returns (tabletmanagerdata.CreateVReplicationWorkflowResponse) {};
+ rpc DeleteTableData(tabletmanagerdata.DeleteTableDataRequest) returns(tabletmanagerdata.DeleteTableDataResponse) {}
rpc DeleteVReplicationWorkflow(tabletmanagerdata.DeleteVReplicationWorkflowRequest) returns(tabletmanagerdata.DeleteVReplicationWorkflowResponse) {};
rpc HasVReplicationWorkflows(tabletmanagerdata.HasVReplicationWorkflowsRequest) returns(tabletmanagerdata.HasVReplicationWorkflowsResponse) {};
rpc ReadVReplicationWorkflow(tabletmanagerdata.ReadVReplicationWorkflowRequest) returns(tabletmanagerdata.ReadVReplicationWorkflowResponse) {};
diff --git a/proto/vtctldata.proto b/proto/vtctldata.proto
index a77c28c1e99..13b2045a8f9 100644
--- a/proto/vtctldata.proto
+++ b/proto/vtctldata.proto
@@ -2032,6 +2032,10 @@ message WorkflowDeleteRequest {
bool keep_data = 3;
bool keep_routing_rules = 4;
repeated string shards = 5;
+ // The max records to delete from the moved tables when cleaning
+ // up the migrated data. This is only used with multi-tenant
+ // MoveTables migrations.
+ int64 delete_batch_size = 6;
}
message WorkflowDeleteResponse {
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index a7612f7325c..d891794968d 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -31441,6 +31441,200 @@ export namespace tabletmanagerdata {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** Properties of a DeleteTableDataRequest. */
+ interface IDeleteTableDataRequest {
+
+ /** DeleteTableDataRequest table_filters */
+ table_filters?: ({ [k: string]: string }|null);
+
+ /** DeleteTableDataRequest batch_size */
+ batch_size?: (number|Long|null);
+ }
+
+ /** Represents a DeleteTableDataRequest. */
+ class DeleteTableDataRequest implements IDeleteTableDataRequest {
+
+ /**
+ * Constructs a new DeleteTableDataRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IDeleteTableDataRequest);
+
+ /** DeleteTableDataRequest table_filters. */
+ public table_filters: { [k: string]: string };
+
+ /** DeleteTableDataRequest batch_size. */
+ public batch_size: (number|Long);
+
+ /**
+ * Creates a new DeleteTableDataRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DeleteTableDataRequest instance
+ */
+ public static create(properties?: tabletmanagerdata.IDeleteTableDataRequest): tabletmanagerdata.DeleteTableDataRequest;
+
+ /**
+ * Encodes the specified DeleteTableDataRequest message. Does not implicitly {@link tabletmanagerdata.DeleteTableDataRequest.verify|verify} messages.
+ * @param message DeleteTableDataRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IDeleteTableDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DeleteTableDataRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.DeleteTableDataRequest.verify|verify} messages.
+ * @param message DeleteTableDataRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IDeleteTableDataRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DeleteTableDataRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DeleteTableDataRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.DeleteTableDataRequest;
+
+ /**
+ * Decodes a DeleteTableDataRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DeleteTableDataRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.DeleteTableDataRequest;
+
+ /**
+ * Verifies a DeleteTableDataRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a DeleteTableDataRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DeleteTableDataRequest
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.DeleteTableDataRequest;
+
+ /**
+ * Creates a plain object from a DeleteTableDataRequest message. Also converts values to other types if specified.
+ * @param message DeleteTableDataRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.DeleteTableDataRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DeleteTableDataRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for DeleteTableDataRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a DeleteTableDataResponse. */
+ interface IDeleteTableDataResponse {
+ }
+
+ /** Represents a DeleteTableDataResponse. */
+ class DeleteTableDataResponse implements IDeleteTableDataResponse {
+
+ /**
+ * Constructs a new DeleteTableDataResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IDeleteTableDataResponse);
+
+ /**
+ * Creates a new DeleteTableDataResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DeleteTableDataResponse instance
+ */
+ public static create(properties?: tabletmanagerdata.IDeleteTableDataResponse): tabletmanagerdata.DeleteTableDataResponse;
+
+ /**
+ * Encodes the specified DeleteTableDataResponse message. Does not implicitly {@link tabletmanagerdata.DeleteTableDataResponse.verify|verify} messages.
+ * @param message DeleteTableDataResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IDeleteTableDataResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DeleteTableDataResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.DeleteTableDataResponse.verify|verify} messages.
+ * @param message DeleteTableDataResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IDeleteTableDataResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DeleteTableDataResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DeleteTableDataResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.DeleteTableDataResponse;
+
+ /**
+ * Decodes a DeleteTableDataResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DeleteTableDataResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.DeleteTableDataResponse;
+
+ /**
+ * Verifies a DeleteTableDataResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a DeleteTableDataResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DeleteTableDataResponse
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.DeleteTableDataResponse;
+
+ /**
+ * Creates a plain object from a DeleteTableDataResponse message. Also converts values to other types if specified.
+ * @param message DeleteTableDataResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.DeleteTableDataResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DeleteTableDataResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for DeleteTableDataResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
/** Properties of a DeleteVReplicationWorkflowRequest. */
interface IDeleteVReplicationWorkflowRequest {
@@ -76771,6 +76965,9 @@ export namespace vtctldata {
/** WorkflowDeleteRequest shards */
shards?: (string[]|null);
+
+ /** WorkflowDeleteRequest delete_batch_size */
+ delete_batch_size?: (number|Long|null);
}
/** Represents a WorkflowDeleteRequest. */
@@ -76797,6 +76994,9 @@ export namespace vtctldata {
/** WorkflowDeleteRequest shards. */
public shards: string[];
+ /** WorkflowDeleteRequest delete_batch_size. */
+ public delete_batch_size: (number|Long);
+
/**
* Creates a new WorkflowDeleteRequest instance using the specified properties.
* @param [properties] Properties to set
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 04838eef324..945a0fdab1a 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -71885,6 +71885,457 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
return CreateVReplicationWorkflowResponse;
})();
+ tabletmanagerdata.DeleteTableDataRequest = (function() {
+
+ /**
+ * Properties of a DeleteTableDataRequest.
+ * @memberof tabletmanagerdata
+ * @interface IDeleteTableDataRequest
+ * @property {Object.|null} [table_filters] DeleteTableDataRequest table_filters
+ * @property {number|Long|null} [batch_size] DeleteTableDataRequest batch_size
+ */
+
+ /**
+ * Constructs a new DeleteTableDataRequest.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a DeleteTableDataRequest.
+ * @implements IDeleteTableDataRequest
+ * @constructor
+ * @param {tabletmanagerdata.IDeleteTableDataRequest=} [properties] Properties to set
+ */
+ function DeleteTableDataRequest(properties) {
+ this.table_filters = {};
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * DeleteTableDataRequest table_filters.
+ * @member {Object.} table_filters
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @instance
+ */
+ DeleteTableDataRequest.prototype.table_filters = $util.emptyObject;
+
+ /**
+ * DeleteTableDataRequest batch_size.
+ * @member {number|Long} batch_size
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @instance
+ */
+ DeleteTableDataRequest.prototype.batch_size = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * Creates a new DeleteTableDataRequest instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataRequest=} [properties] Properties to set
+ * @returns {tabletmanagerdata.DeleteTableDataRequest} DeleteTableDataRequest instance
+ */
+ DeleteTableDataRequest.create = function create(properties) {
+ return new DeleteTableDataRequest(properties);
+ };
+
+ /**
+ * Encodes the specified DeleteTableDataRequest message. Does not implicitly {@link tabletmanagerdata.DeleteTableDataRequest.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataRequest} message DeleteTableDataRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteTableDataRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.table_filters != null && Object.hasOwnProperty.call(message, "table_filters"))
+ for (let keys = Object.keys(message.table_filters), i = 0; i < keys.length; ++i)
+ writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]).uint32(/* id 2, wireType 2 =*/18).string(message.table_filters[keys[i]]).ldelim();
+ if (message.batch_size != null && Object.hasOwnProperty.call(message, "batch_size"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int64(message.batch_size);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified DeleteTableDataRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.DeleteTableDataRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataRequest} message DeleteTableDataRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteTableDataRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DeleteTableDataRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.DeleteTableDataRequest} DeleteTableDataRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteTableDataRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.DeleteTableDataRequest(), key, value;
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ if (message.table_filters === $util.emptyObject)
+ message.table_filters = {};
+ let end2 = reader.uint32() + reader.pos;
+ key = "";
+ value = "";
+ while (reader.pos < end2) {
+ let tag2 = reader.uint32();
+ switch (tag2 >>> 3) {
+ case 1:
+ key = reader.string();
+ break;
+ case 2:
+ value = reader.string();
+ break;
+ default:
+ reader.skipType(tag2 & 7);
+ break;
+ }
+ }
+ message.table_filters[key] = value;
+ break;
+ }
+ case 2: {
+ message.batch_size = reader.int64();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a DeleteTableDataRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.DeleteTableDataRequest} DeleteTableDataRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteTableDataRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DeleteTableDataRequest message.
+ * @function verify
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DeleteTableDataRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.table_filters != null && message.hasOwnProperty("table_filters")) {
+ if (!$util.isObject(message.table_filters))
+ return "table_filters: object expected";
+ let key = Object.keys(message.table_filters);
+ for (let i = 0; i < key.length; ++i)
+ if (!$util.isString(message.table_filters[key[i]]))
+ return "table_filters: string{k:string} expected";
+ }
+ if (message.batch_size != null && message.hasOwnProperty("batch_size"))
+ if (!$util.isInteger(message.batch_size) && !(message.batch_size && $util.isInteger(message.batch_size.low) && $util.isInteger(message.batch_size.high)))
+ return "batch_size: integer|Long expected";
+ return null;
+ };
+
+ /**
+ * Creates a DeleteTableDataRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.DeleteTableDataRequest} DeleteTableDataRequest
+ */
+ DeleteTableDataRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.DeleteTableDataRequest)
+ return object;
+ let message = new $root.tabletmanagerdata.DeleteTableDataRequest();
+ if (object.table_filters) {
+ if (typeof object.table_filters !== "object")
+ throw TypeError(".tabletmanagerdata.DeleteTableDataRequest.table_filters: object expected");
+ message.table_filters = {};
+ for (let keys = Object.keys(object.table_filters), i = 0; i < keys.length; ++i)
+ message.table_filters[keys[i]] = String(object.table_filters[keys[i]]);
+ }
+ if (object.batch_size != null)
+ if ($util.Long)
+ (message.batch_size = $util.Long.fromValue(object.batch_size)).unsigned = false;
+ else if (typeof object.batch_size === "string")
+ message.batch_size = parseInt(object.batch_size, 10);
+ else if (typeof object.batch_size === "number")
+ message.batch_size = object.batch_size;
+ else if (typeof object.batch_size === "object")
+ message.batch_size = new $util.LongBits(object.batch_size.low >>> 0, object.batch_size.high >>> 0).toNumber();
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a DeleteTableDataRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {tabletmanagerdata.DeleteTableDataRequest} message DeleteTableDataRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DeleteTableDataRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.objects || options.defaults)
+ object.table_filters = {};
+ if (options.defaults)
+ if ($util.Long) {
+ let long = new $util.Long(0, 0, false);
+ object.batch_size = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.batch_size = options.longs === String ? "0" : 0;
+ let keys2;
+ if (message.table_filters && (keys2 = Object.keys(message.table_filters)).length) {
+ object.table_filters = {};
+ for (let j = 0; j < keys2.length; ++j)
+ object.table_filters[keys2[j]] = message.table_filters[keys2[j]];
+ }
+ if (message.batch_size != null && message.hasOwnProperty("batch_size"))
+ if (typeof message.batch_size === "number")
+ object.batch_size = options.longs === String ? String(message.batch_size) : message.batch_size;
+ else
+ object.batch_size = options.longs === String ? $util.Long.prototype.toString.call(message.batch_size) : options.longs === Number ? new $util.LongBits(message.batch_size.low >>> 0, message.batch_size.high >>> 0).toNumber() : message.batch_size;
+ return object;
+ };
+
+ /**
+ * Converts this DeleteTableDataRequest to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DeleteTableDataRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for DeleteTableDataRequest
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.DeleteTableDataRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ DeleteTableDataRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.DeleteTableDataRequest";
+ };
+
+ return DeleteTableDataRequest;
+ })();
+
+ tabletmanagerdata.DeleteTableDataResponse = (function() {
+
+ /**
+ * Properties of a DeleteTableDataResponse.
+ * @memberof tabletmanagerdata
+ * @interface IDeleteTableDataResponse
+ */
+
+ /**
+ * Constructs a new DeleteTableDataResponse.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a DeleteTableDataResponse.
+ * @implements IDeleteTableDataResponse
+ * @constructor
+ * @param {tabletmanagerdata.IDeleteTableDataResponse=} [properties] Properties to set
+ */
+ function DeleteTableDataResponse(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Creates a new DeleteTableDataResponse instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataResponse=} [properties] Properties to set
+ * @returns {tabletmanagerdata.DeleteTableDataResponse} DeleteTableDataResponse instance
+ */
+ DeleteTableDataResponse.create = function create(properties) {
+ return new DeleteTableDataResponse(properties);
+ };
+
+ /**
+ * Encodes the specified DeleteTableDataResponse message. Does not implicitly {@link tabletmanagerdata.DeleteTableDataResponse.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataResponse} message DeleteTableDataResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteTableDataResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified DeleteTableDataResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.DeleteTableDataResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {tabletmanagerdata.IDeleteTableDataResponse} message DeleteTableDataResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DeleteTableDataResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DeleteTableDataResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.DeleteTableDataResponse} DeleteTableDataResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteTableDataResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.DeleteTableDataResponse();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a DeleteTableDataResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.DeleteTableDataResponse} DeleteTableDataResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DeleteTableDataResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DeleteTableDataResponse message.
+ * @function verify
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DeleteTableDataResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ return null;
+ };
+
+ /**
+ * Creates a DeleteTableDataResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.DeleteTableDataResponse} DeleteTableDataResponse
+ */
+ DeleteTableDataResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.DeleteTableDataResponse)
+ return object;
+ return new $root.tabletmanagerdata.DeleteTableDataResponse();
+ };
+
+ /**
+ * Creates a plain object from a DeleteTableDataResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {tabletmanagerdata.DeleteTableDataResponse} message DeleteTableDataResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DeleteTableDataResponse.toObject = function toObject() {
+ return {};
+ };
+
+ /**
+ * Converts this DeleteTableDataResponse to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DeleteTableDataResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for DeleteTableDataResponse
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.DeleteTableDataResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ DeleteTableDataResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.DeleteTableDataResponse";
+ };
+
+ return DeleteTableDataResponse;
+ })();
+
tabletmanagerdata.DeleteVReplicationWorkflowRequest = (function() {
/**
@@ -187519,6 +187970,7 @@ export const vtctldata = $root.vtctldata = (() => {
* @property {boolean|null} [keep_data] WorkflowDeleteRequest keep_data
* @property {boolean|null} [keep_routing_rules] WorkflowDeleteRequest keep_routing_rules
* @property {Array.|null} [shards] WorkflowDeleteRequest shards
+ * @property {number|Long|null} [delete_batch_size] WorkflowDeleteRequest delete_batch_size
*/
/**
@@ -187577,6 +188029,14 @@ export const vtctldata = $root.vtctldata = (() => {
*/
WorkflowDeleteRequest.prototype.shards = $util.emptyArray;
+ /**
+ * WorkflowDeleteRequest delete_batch_size.
+ * @member {number|Long} delete_batch_size
+ * @memberof vtctldata.WorkflowDeleteRequest
+ * @instance
+ */
+ WorkflowDeleteRequest.prototype.delete_batch_size = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
/**
* Creates a new WorkflowDeleteRequest instance using the specified properties.
* @function create
@@ -187612,6 +188072,8 @@ export const vtctldata = $root.vtctldata = (() => {
if (message.shards != null && message.shards.length)
for (let i = 0; i < message.shards.length; ++i)
writer.uint32(/* id 5, wireType 2 =*/42).string(message.shards[i]);
+ if (message.delete_batch_size != null && Object.hasOwnProperty.call(message, "delete_batch_size"))
+ writer.uint32(/* id 6, wireType 0 =*/48).int64(message.delete_batch_size);
return writer;
};
@@ -187668,6 +188130,10 @@ export const vtctldata = $root.vtctldata = (() => {
message.shards.push(reader.string());
break;
}
+ case 6: {
+ message.delete_batch_size = reader.int64();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -187722,6 +188188,9 @@ export const vtctldata = $root.vtctldata = (() => {
if (!$util.isString(message.shards[i]))
return "shards: string[] expected";
}
+ if (message.delete_batch_size != null && message.hasOwnProperty("delete_batch_size"))
+ if (!$util.isInteger(message.delete_batch_size) && !(message.delete_batch_size && $util.isInteger(message.delete_batch_size.low) && $util.isInteger(message.delete_batch_size.high)))
+ return "delete_batch_size: integer|Long expected";
return null;
};
@@ -187752,6 +188221,15 @@ export const vtctldata = $root.vtctldata = (() => {
for (let i = 0; i < object.shards.length; ++i)
message.shards[i] = String(object.shards[i]);
}
+ if (object.delete_batch_size != null)
+ if ($util.Long)
+ (message.delete_batch_size = $util.Long.fromValue(object.delete_batch_size)).unsigned = false;
+ else if (typeof object.delete_batch_size === "string")
+ message.delete_batch_size = parseInt(object.delete_batch_size, 10);
+ else if (typeof object.delete_batch_size === "number")
+ message.delete_batch_size = object.delete_batch_size;
+ else if (typeof object.delete_batch_size === "object")
+ message.delete_batch_size = new $util.LongBits(object.delete_batch_size.low >>> 0, object.delete_batch_size.high >>> 0).toNumber();
return message;
};
@@ -187775,6 +188253,11 @@ export const vtctldata = $root.vtctldata = (() => {
object.workflow = "";
object.keep_data = false;
object.keep_routing_rules = false;
+ if ($util.Long) {
+ let long = new $util.Long(0, 0, false);
+ object.delete_batch_size = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.delete_batch_size = options.longs === String ? "0" : 0;
}
if (message.keyspace != null && message.hasOwnProperty("keyspace"))
object.keyspace = message.keyspace;
@@ -187789,6 +188272,11 @@ export const vtctldata = $root.vtctldata = (() => {
for (let j = 0; j < message.shards.length; ++j)
object.shards[j] = message.shards[j];
}
+ if (message.delete_batch_size != null && message.hasOwnProperty("delete_batch_size"))
+ if (typeof message.delete_batch_size === "number")
+ object.delete_batch_size = options.longs === String ? String(message.delete_batch_size) : message.delete_batch_size;
+ else
+ object.delete_batch_size = options.longs === String ? $util.Long.prototype.toString.call(message.delete_batch_size) : options.longs === Number ? new $util.LongBits(message.delete_batch_size.low >>> 0, message.delete_batch_size.high >>> 0).toNumber() : message.delete_batch_size;
return object;
};
From b0b79813f21f8ecbf409f558ad6f8864332637cf Mon Sep 17 00:00:00 2001
From: Dirkjan Bussink
Date: Wed, 23 Oct 2024 14:38:45 +0200
Subject: [PATCH 08/78] Handle encoding binary data separately (#16988)
Signed-off-by: Dirkjan Bussink
---
go/mysql/query.go | 75 +-
go/sqltypes/value.go | 45 +-
go/sqltypes/value_test.go | 35 +-
.../endtoend/vtgate/queries/misc/misc_test.go | 3 +-
.../vtgate/queries/vexplain/vexplain_test.go | 40 +-
go/vt/sqlparser/ast_format.go | 2 +-
go/vt/sqlparser/ast_format_fast.go | 2 +-
go/vt/sqlparser/encodable_test.go | 17 +-
go/vt/sqlparser/parse_test.go | 3 +
go/vt/sqlparser/parsed_query_test.go | 6 +-
go/vt/sqlparser/sql.go | 9799 ++++++++---------
go/vt/sqlparser/sql.y | 4 -
go/vt/vtgate/evalengine/translate_test.go | 4 +-
.../planbuilder/testdata/dml_cases.json | 2 +-
.../planbuilder/testdata/select_cases.json | 2 +-
go/vt/vttablet/endtoend/twopc/prepare_test.go | 8 +-
.../vreplication/external_connector_test.go | 12 +-
.../vreplication/vcopier_test.go | 130 +-
.../vreplication/vplayer_flaky_test.go | 126 +-
.../vttablet/tabletserver/dt_executor_test.go | 40 +-
.../tabletserver/messager/message_manager.go | 8 +-
.../messager/message_manager_test.go | 2 +
.../tabletserver/schema/cached_size.go | 2 +-
.../tabletserver/schema/engine_test.go | 1 +
.../tabletserver/schema/load_table.go | 8 +
.../tabletserver/schema/load_table_test.go | 1 +
go/vt/vttablet/tabletserver/schema/schema.go | 4 +
.../tabletserver/tabletserver_test.go | 22 +-
go/vt/vttablet/tabletserver/twopc.go | 14 +-
go/vt/vttablet/tabletserver/tx_engine_test.go | 20 +-
.../vstreamer/rowstreamer_test.go | 2 +-
31 files changed, 5210 insertions(+), 5229 deletions(-)
diff --git a/go/mysql/query.go b/go/mysql/query.go
index 46060a39c94..26582cecbd9 100644
--- a/go/mysql/query.go
+++ b/go/mysql/query.go
@@ -713,7 +713,11 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
}
switch size {
case 0x00:
- return sqltypes.NewVarChar(" "), pos, ok
+ out := []byte("0000-00-00")
+ if typ != sqltypes.Date {
+ out = append(out, []byte(" 00:00:00")...)
+ }
+ return sqltypes.MakeTrusted(typ, out), pos, ok
case 0x0b:
year, pos, ok := readUint16(data, pos)
if !ok {
@@ -743,15 +747,22 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
if !ok {
return sqltypes.NULL, 0, false
}
- val := strconv.Itoa(int(year)) + "-" +
- strconv.Itoa(int(month)) + "-" +
- strconv.Itoa(int(day)) + " " +
- strconv.Itoa(int(hour)) + ":" +
- strconv.Itoa(int(minute)) + ":" +
- strconv.Itoa(int(second)) + "." +
- fmt.Sprintf("%06d", microSecond)
-
- return sqltypes.NewVarChar(val), pos, ok
+ val := strconv.AppendInt(nil, int64(year), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(month), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(day), 10)
+ if typ != sqltypes.Date {
+ val = append(val, ' ')
+ val = strconv.AppendInt(val, int64(hour), 10)
+ val = append(val, ':')
+ val = strconv.AppendInt(val, int64(minute), 10)
+ val = append(val, ':')
+ val = strconv.AppendInt(val, int64(second), 10)
+ val = append(val, '.')
+ val = append(val, fmt.Sprintf("%06d", microSecond)...)
+ }
+ return sqltypes.MakeTrusted(typ, val), pos, ok
case 0x07:
year, pos, ok := readUint16(data, pos)
if !ok {
@@ -777,14 +788,21 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
if !ok {
return sqltypes.NULL, 0, false
}
- val := strconv.Itoa(int(year)) + "-" +
- strconv.Itoa(int(month)) + "-" +
- strconv.Itoa(int(day)) + " " +
- strconv.Itoa(int(hour)) + ":" +
- strconv.Itoa(int(minute)) + ":" +
- strconv.Itoa(int(second))
-
- return sqltypes.NewVarChar(val), pos, ok
+ val := strconv.AppendInt(nil, int64(year), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(month), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(day), 10)
+ if typ != sqltypes.Date {
+ val = append(val, ' ')
+ val = strconv.AppendInt(val, int64(hour), 10)
+ val = append(val, ':')
+ val = strconv.AppendInt(val, int64(minute), 10)
+ val = append(val, ':')
+ val = strconv.AppendInt(val, int64(second), 10)
+ }
+
+ return sqltypes.MakeTrusted(typ, val), pos, ok
case 0x04:
year, pos, ok := readUint16(data, pos)
if !ok {
@@ -798,11 +816,16 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
if !ok {
return sqltypes.NULL, 0, false
}
- val := strconv.Itoa(int(year)) + "-" +
- strconv.Itoa(int(month)) + "-" +
- strconv.Itoa(int(day))
+ val := strconv.AppendInt(nil, int64(year), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(month), 10)
+ val = append(val, '-')
+ val = strconv.AppendInt(val, int64(day), 10)
+ if typ != sqltypes.Date {
+ val = append(val, []byte(" 00:00:00")...)
+ }
- return sqltypes.NewVarChar(val), pos, ok
+ return sqltypes.MakeTrusted(typ, val), pos, ok
default:
return sqltypes.NULL, 0, false
}
@@ -813,7 +836,7 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
}
switch size {
case 0x00:
- return sqltypes.NewVarChar("00:00:00"), pos, ok
+ return sqltypes.NewTime("00:00:00"), pos, ok
case 0x0c:
isNegative, pos, ok := readByte(data, pos)
if !ok {
@@ -852,7 +875,7 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
strconv.Itoa(int(second)) + "." +
fmt.Sprintf("%06d", microSecond)
- return sqltypes.NewVarChar(val), pos, ok
+ return sqltypes.NewTime(val), pos, ok
case 0x08:
isNegative, pos, ok := readByte(data, pos)
if !ok {
@@ -886,14 +909,14 @@ func (c *Conn) parseStmtArgs(data []byte, typ querypb.Type, pos int) (sqltypes.V
strconv.Itoa(int(minute)) + ":" +
strconv.Itoa(int(second))
- return sqltypes.NewVarChar(val), pos, ok
+ return sqltypes.NewTime(val), pos, ok
default:
return sqltypes.NULL, 0, false
}
case sqltypes.Decimal, sqltypes.Text, sqltypes.Blob, sqltypes.VarChar, sqltypes.VarBinary, sqltypes.Year, sqltypes.Char,
sqltypes.Bit, sqltypes.Enum, sqltypes.Set, sqltypes.Geometry, sqltypes.Binary, sqltypes.TypeJSON, sqltypes.Vector:
val, pos, ok := readLenEncStringAsBytesCopy(data, pos)
- return sqltypes.MakeTrusted(sqltypes.VarBinary, val), pos, ok
+ return sqltypes.MakeTrusted(typ, val), pos, ok
default:
return sqltypes.NULL, pos, false
}
diff --git a/go/sqltypes/value.go b/go/sqltypes/value.go
index 4dde979066b..438b51a13ba 100644
--- a/go/sqltypes/value.go
+++ b/go/sqltypes/value.go
@@ -19,7 +19,6 @@ package sqltypes
import (
"bytes"
- "encoding/base64"
"encoding/hex"
"encoding/json"
"errors"
@@ -441,6 +440,8 @@ func (v Value) EncodeSQL(b BinWriter) {
switch {
case v.Type() == Null:
b.Write(NullBytes)
+ case v.IsBinary():
+ encodeBinarySQL(v.val, b)
case v.IsQuoted():
encodeBytesSQL(v.val, b)
case v.Type() == Bit:
@@ -456,6 +457,8 @@ func (v Value) EncodeSQLStringBuilder(b *strings.Builder) {
switch {
case v.Type() == Null:
b.Write(NullBytes)
+ case v.IsBinary():
+ encodeBinarySQLStringBuilder(v.val, b)
case v.IsQuoted():
encodeBytesSQLStringBuilder(v.val, b)
case v.Type() == Bit:
@@ -482,6 +485,8 @@ func (v Value) EncodeSQLBytes2(b *bytes2.Buffer) {
switch {
case v.Type() == Null:
b.Write(NullBytes)
+ case v.IsBinary():
+ encodeBinarySQLBytes2(v.val, b)
case v.IsQuoted():
encodeBytesSQLBytes2(v.val, b)
case v.Type() == Bit:
@@ -491,18 +496,6 @@ func (v Value) EncodeSQLBytes2(b *bytes2.Buffer) {
}
}
-// EncodeASCII encodes the value using 7-bit clean ascii bytes.
-func (v Value) EncodeASCII(b BinWriter) {
- switch {
- case v.Type() == Null:
- b.Write(NullBytes)
- case v.IsQuoted() || v.Type() == Bit:
- encodeBytesASCII(v.val, b)
- default:
- b.Write(v.val)
- }
-}
-
// IsNull returns true if Value is null.
func (v Value) IsNull() bool {
return v.Type() == Null
@@ -758,6 +751,22 @@ func (v Value) TinyWeight() uint32 {
return v.tinyweight
}
+func encodeBinarySQL(val []byte, b BinWriter) {
+ buf := &bytes2.Buffer{}
+ encodeBinarySQLBytes2(val, buf)
+ b.Write(buf.Bytes())
+}
+
+func encodeBinarySQLBytes2(val []byte, buf *bytes2.Buffer) {
+ buf.Write([]byte("_binary"))
+ encodeBytesSQLBytes2(val, buf)
+}
+
+func encodeBinarySQLStringBuilder(val []byte, buf *strings.Builder) {
+ buf.Write([]byte("_binary"))
+ encodeBytesSQLStringBuilder(val, buf)
+}
+
func encodeBytesSQL(val []byte, b BinWriter) {
buf := &bytes2.Buffer{}
encodeBytesSQLBytes2(val, buf)
@@ -838,16 +847,6 @@ func encodeBytesSQLBits(val []byte, b BinWriter) {
fmt.Fprint(b, "'")
}
-func encodeBytesASCII(val []byte, b BinWriter) {
- buf := &bytes2.Buffer{}
- buf.WriteByte('\'')
- encoder := base64.NewEncoder(base64.StdEncoding, buf)
- encoder.Write(val)
- encoder.Close()
- buf.WriteByte('\'')
- b.Write(buf.Bytes())
-}
-
// SQLEncodeMap specifies how to escape binary data with '\'.
// Complies to https://dev.mysql.com/doc/refman/5.7/en/string-literals.html
// Handling escaping of % and _ is different than other characters.
diff --git a/go/sqltypes/value_test.go b/go/sqltypes/value_test.go
index c7bdf1234dd..fbf9be5b19b 100644
--- a/go/sqltypes/value_test.go
+++ b/go/sqltypes/value_test.go
@@ -367,34 +367,28 @@ func TestEncode(t *testing.T) {
outSQL string
outASCII string
}{{
- in: NULL,
- outSQL: "null",
- outASCII: "null",
+ in: NULL,
+ outSQL: "null",
}, {
- in: TestValue(Int64, "1"),
- outSQL: "1",
- outASCII: "1",
+ in: TestValue(Int64, "1"),
+ outSQL: "1",
}, {
- in: TestValue(VarChar, "foo"),
- outSQL: "'foo'",
- outASCII: "'Zm9v'",
+ in: TestValue(VarChar, "foo"),
+ outSQL: "'foo'",
}, {
- in: TestValue(VarChar, "\x00'\"\b\n\r\t\x1A\\"),
- outSQL: "'\\0\\'\"\\b\\n\\r\\t\\Z\\\\'",
- outASCII: "'ACciCAoNCRpc'",
+ in: TestValue(VarChar, "\x00'\"\b\n\r\t\x1A\\"),
+ outSQL: "'\\0\\'\"\\b\\n\\r\\t\\Z\\\\'",
+ }, {
+ in: TestValue(VarBinary, "\x00'\"\b\n\r\t\x1A\\"),
+ outSQL: "_binary'\\0\\'\"\\b\\n\\r\\t\\Z\\\\'",
}, {
- in: TestValue(Bit, "a"),
- outSQL: "b'01100001'",
- outASCII: "'YQ=='",
+ in: TestValue(Bit, "a"),
+ outSQL: "b'01100001'",
}}
for _, tcase := range testcases {
var buf strings.Builder
tcase.in.EncodeSQL(&buf)
assert.Equal(t, tcase.outSQL, buf.String())
-
- buf.Reset()
- tcase.in.EncodeASCII(&buf)
- assert.Equal(t, tcase.outASCII, buf.String())
}
}
@@ -639,6 +633,9 @@ func TestEncodeSQLStringBuilder(t *testing.T) {
}, {
in: TestTuple(TestValue(Int64, "1"), TestValue(VarChar, "foo")),
outSQL: "(1, 'foo')",
+ }, {
+ in: TestValue(VarBinary, "foo"),
+ outSQL: "_binary'foo'",
}}
for _, tcase := range testcases {
var buf strings.Builder
diff --git a/go/test/endtoend/vtgate/queries/misc/misc_test.go b/go/test/endtoend/vtgate/queries/misc/misc_test.go
index 69108b26293..fd869c4ba5b 100644
--- a/go/test/endtoend/vtgate/queries/misc/misc_test.go
+++ b/go/test/endtoend/vtgate/queries/misc/misc_test.go
@@ -20,7 +20,6 @@ import (
"context"
"database/sql"
"fmt"
- "strconv"
"strings"
"testing"
"time"
@@ -200,7 +199,7 @@ func TestHighNumberOfParams(t *testing.T) {
var vals []any
var params []string
for i := 0; i < paramCount; i++ {
- vals = append(vals, strconv.Itoa(i))
+ vals = append(vals, i)
params = append(params, "?")
}
diff --git a/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go b/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
index ed43d57b578..45baf7af903 100644
--- a/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
+++ b/go/test/endtoend/vtgate/queries/vexplain/vexplain_test.go
@@ -18,6 +18,7 @@ package vexplain
import (
"context"
+ "fmt"
"testing"
"github.com/stretchr/testify/require"
@@ -75,24 +76,29 @@ func TestVtGateVExplain(t *testing.T) {
`vexplain queries insert into user (id,lookup,lookup_unique) values (4,'apa','foo'),(5,'apa','bar'),(6,'monkey','nobar')`,
"vexplain queries/all will actually run queries")
- expected := `[
+ binaryPrefix := ""
+ if utils.BinaryIsAtLeastAtVersion(22, "vtgate") {
+ binaryPrefix = "_binary"
+ }
+
+ expected := fmt.Sprintf(`[
[VARCHAR("ks") VARCHAR("-40") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('apa', 1, '\x16k@\xb4J\xbaK\xd6') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
+ [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('apa', 1, %s'\x16k@\xb4J\xbaK\xd6') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('monkey', 3, 'N\xb1\x90ɢ\xfa\x16\x9c') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
+ [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('monkey', 3, %s'N\xb1\x90ɢ\xfa\x16\x9c') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('monkey', 'N\xb1\x90ɢ\xfa\x16\x9c')")]
+ [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('monkey', %s'N\xb1\x90ɢ\xfa\x16\x9c')")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('apa', '\x16k@\xb4J\xbaK\xd6')")]
+ [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('apa', %s'\x16k@\xb4J\xbaK\xd6')")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into ` + "`user`" + `(id, lookup, lookup_unique) values (3, 'monkey', 'monkey')")]
+ [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into `+"`user`"+`(id, lookup, lookup_unique) values (3, 'monkey', 'monkey')")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into ` + "`user`" + `(id, lookup, lookup_unique) values (1, 'apa', 'apa')")]
- ]`
+ [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into `+"`user`"+`(id, lookup, lookup_unique) values (1, 'apa', 'apa')")]
+ ]`, binaryPrefix, binaryPrefix, binaryPrefix, binaryPrefix)
assertVExplainEquals(t, conn, `vexplain /*vt+ EXECUTE_DML_QUERIES */ queries insert into user (id,lookup,lookup_unique) values (1,'apa','apa'),(3,'monkey','monkey')`, expected)
// Assert that the output of vexplain all doesn't have begin queries because they aren't explainable
@@ -109,27 +115,27 @@ func TestVtGateVExplain(t *testing.T) {
// transaction explicitly started to no commit in the end.
utils.Exec(t, conn, "begin")
- expected = `[
+ expected = fmt.Sprintf(`[
[VARCHAR("ks") VARCHAR("-40") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('apa', 4, '\xd2\xfd\x88g\xd5\\r-\xfe'), ('apa', 5, 'p\xbb\x02<\x81\f\xa8z') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
+ [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('apa', 4, %s'\xd2\xfd\x88g\xd5\\r-\xfe'), ('apa', 5, %s'p\xbb\x02<\x81\f\xa8z') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('monkey', 6, '\xf0\x98H\\n\xc4ľq') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
+ [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into lookup(lookup, id, keyspace_id) values ('monkey', 6, %s'\xf0\x98H\\n\xc4ľq') on duplicate key update lookup = values(lookup), id = values(id), keyspace_id = values(keyspace_id)")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('foo', '\xd2\xfd\x88g\xd5\\r-\xfe')")]
+ [VARCHAR("ks") VARCHAR("-40") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('foo', %s'\xd2\xfd\x88g\xd5\\r-\xfe')")]
[VARCHAR("ks") VARCHAR("80-c0") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("80-c0") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('bar', 'p\xbb\x02<\x81\f\xa8z')")]
+ [VARCHAR("ks") VARCHAR("80-c0") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('bar', %s'p\xbb\x02<\x81\f\xa8z')")]
[VARCHAR("ks") VARCHAR("c0-") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("c0-") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('nobar', '\xf0\x98H\\n\xc4ľq')")]
+ [VARCHAR("ks") VARCHAR("c0-") VARCHAR("insert into lookup_unique(lookup_unique, keyspace_id) values ('nobar', %s'\xf0\x98H\\n\xc4ľq')")]
[VARCHAR("ks") VARCHAR("-40") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("80-c0") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("c0-") VARCHAR("commit")]
[VARCHAR("ks") VARCHAR("40-80") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into ` + "`user`" + `(id, lookup, lookup_unique) values (5, 'apa', 'bar')")]
+ [VARCHAR("ks") VARCHAR("40-80") VARCHAR("insert into `+"`user`"+`(id, lookup, lookup_unique) values (5, 'apa', 'bar')")]
[VARCHAR("ks") VARCHAR("c0-") VARCHAR("begin")]
- [VARCHAR("ks") VARCHAR("c0-") VARCHAR("insert into ` + "`user`" + `(id, lookup, lookup_unique) values (4, 'apa', 'foo'), (6, 'monkey', 'nobar')")]
- ]`
+ [VARCHAR("ks") VARCHAR("c0-") VARCHAR("insert into `+"`user`"+`(id, lookup, lookup_unique) values (4, 'apa', 'foo'), (6, 'monkey', 'nobar')")]
+ ]`, binaryPrefix, binaryPrefix, binaryPrefix, binaryPrefix, binaryPrefix, binaryPrefix)
assertVExplainEquals(t, conn, `vexplain /*vt+ EXECUTE_DML_QUERIES */ queries insert into user (id,lookup,lookup_unique) values (4,'apa','foo'),(5,'apa','bar'),(6,'monkey','nobar')`, expected)
utils.Exec(t, conn, "rollback")
diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go
index c8daabcf4e0..b9af85d410e 100644
--- a/go/vt/sqlparser/ast_format.go
+++ b/go/vt/sqlparser/ast_format.go
@@ -1357,7 +1357,7 @@ func (node *AssignmentExpr) Format(buf *TrackedBuffer) {
func (node *Literal) Format(buf *TrackedBuffer) {
switch node.Type {
case StrVal:
- sqltypes.MakeTrusted(sqltypes.VarBinary, node.Bytes()).EncodeSQL(buf)
+ sqltypes.MakeTrusted(sqltypes.VarChar, node.Bytes()).EncodeSQL(buf)
case IntVal, FloatVal, DecimalVal, HexNum, BitNum:
buf.astPrintf(node, "%#s", node.Val)
case HexVal:
diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go
index 07762bb8447..1950a79a613 100644
--- a/go/vt/sqlparser/ast_format_fast.go
+++ b/go/vt/sqlparser/ast_format_fast.go
@@ -1768,7 +1768,7 @@ func (node *AssignmentExpr) FormatFast(buf *TrackedBuffer) {
func (node *Literal) FormatFast(buf *TrackedBuffer) {
switch node.Type {
case StrVal:
- sqltypes.MakeTrusted(sqltypes.VarBinary, node.Bytes()).EncodeSQL(buf)
+ sqltypes.MakeTrusted(sqltypes.VarChar, node.Bytes()).EncodeSQL(buf)
case IntVal, FloatVal, DecimalVal, HexNum, BitNum:
buf.WriteString(node.Val)
case HexVal:
diff --git a/go/vt/sqlparser/encodable_test.go b/go/vt/sqlparser/encodable_test.go
index f11be5e6452..dcbaa893595 100644
--- a/go/vt/sqlparser/encodable_test.go
+++ b/go/vt/sqlparser/encodable_test.go
@@ -28,6 +28,15 @@ func TestEncodable(t *testing.T) {
in Encodable
out string
}{{
+ in: InsertValues{{
+ sqltypes.NewInt64(1),
+ sqltypes.NewVarChar("foo('a')"),
+ }, {
+ sqltypes.NewInt64(2),
+ sqltypes.NewVarChar("bar(`b`)"),
+ }},
+ out: "(1, 'foo(\\'a\\')'), (2, 'bar(`b`)')",
+ }, {
in: InsertValues{{
sqltypes.NewInt64(1),
sqltypes.NewVarBinary("foo('a')"),
@@ -35,14 +44,14 @@ func TestEncodable(t *testing.T) {
sqltypes.NewInt64(2),
sqltypes.NewVarBinary("bar(`b`)"),
}},
- out: "(1, 'foo(\\'a\\')'), (2, 'bar(`b`)')",
+ out: "(1, _binary'foo(\\'a\\')'), (2, _binary'bar(`b`)')",
}, {
// Single column.
in: &TupleEqualityList{
Columns: []IdentifierCI{NewIdentifierCI("pk")},
Rows: [][]sqltypes.Value{
{sqltypes.NewInt64(1)},
- {sqltypes.NewVarBinary("aa")},
+ {sqltypes.NewVarChar("aa")},
},
},
out: "pk in (1, 'aa')",
@@ -53,11 +62,11 @@ func TestEncodable(t *testing.T) {
Rows: [][]sqltypes.Value{
{
sqltypes.NewInt64(1),
- sqltypes.NewVarBinary("aa"),
+ sqltypes.NewVarChar("aa"),
},
{
sqltypes.NewInt64(2),
- sqltypes.NewVarBinary("bb"),
+ sqltypes.NewVarChar("bb"),
},
},
},
diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go
index 941e19abc7c..3a769f05688 100644
--- a/go/vt/sqlparser/parse_test.go
+++ b/go/vt/sqlparser/parse_test.go
@@ -4116,6 +4116,9 @@ func TestInvalid(t *testing.T) {
}, {
input: "select * from foo where b <=> any (select id from t1)",
err: "syntax error at position 42",
+ }, {
+ input: "select _binary foo",
+ err: "syntax error at position 19 near 'foo'",
},
}
diff --git a/go/vt/sqlparser/parsed_query_test.go b/go/vt/sqlparser/parsed_query_test.go
index 19aa75bb1d6..1458a3e6527 100644
--- a/go/vt/sqlparser/parsed_query_test.go
+++ b/go/vt/sqlparser/parsed_query_test.go
@@ -118,7 +118,7 @@ func TestGenerateQuery(t *testing.T) {
Columns: []IdentifierCI{NewIdentifierCI("pk")},
Rows: [][]sqltypes.Value{
{sqltypes.NewInt64(1)},
- {sqltypes.NewVarBinary("aa")},
+ {sqltypes.NewVarChar("aa")},
},
},
},
@@ -132,11 +132,11 @@ func TestGenerateQuery(t *testing.T) {
Rows: [][]sqltypes.Value{
{
sqltypes.NewInt64(1),
- sqltypes.NewVarBinary("aa"),
+ sqltypes.NewVarChar("aa"),
},
{
sqltypes.NewInt64(2),
- sqltypes.NewVarBinary("bb"),
+ sqltypes.NewVarChar("bb"),
},
},
},
diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go
index ecfb75432e1..682efc9f6ec 100644
--- a/go/vt/sqlparser/sql.go
+++ b/go/vt/sqlparser/sql.go
@@ -1543,239 +1543,239 @@ var yyExca = [...]int{
149, 165,
191, 165,
363, 165,
- -2, 524,
+ -2, 523,
-1, 61,
- 38, 784,
- 254, 784,
- 265, 784,
- 300, 798,
- 301, 798,
- -2, 786,
+ 38, 783,
+ 254, 783,
+ 265, 783,
+ 300, 797,
+ 301, 797,
+ -2, 785,
-1, 66,
- 256, 822,
- -2, 820,
+ 256, 821,
+ -2, 819,
-1, 122,
- 253, 1621,
+ 253, 1620,
-2, 131,
-1, 124,
1, 158,
751, 158,
-2, 165,
-1, 135,
- 150, 409,
- 259, 409,
- -2, 513,
+ 150, 408,
+ 259, 408,
+ -2, 512,
-1, 154,
149, 165,
191, 165,
363, 165,
- -2, 533,
+ -2, 532,
-1, 748,
177, 41,
-2, 43,
-1, 957,
+ 95, 1637,
+ -2, 1481,
+ -1, 958,
95, 1638,
+ 236, 1642,
-2, 1482,
- -1, 958,
- 95, 1639,
- 236, 1643,
- -2, 1483,
-1, 959,
- 236, 1642,
+ 236, 1641,
-2, 42,
-1, 1043,
- 65, 896,
- -2, 909,
+ 65, 895,
+ -2, 908,
-1, 1131,
- 264, 1109,
- 269, 1109,
- -2, 420,
+ 264, 1108,
+ 269, 1108,
+ -2, 419,
-1, 1216,
- 1, 581,
- 751, 581,
+ 1, 580,
+ 751, 580,
-2, 165,
-1, 1527,
- 236, 1643,
- -2, 1483,
+ 236, 1642,
+ -2, 1482,
+ -1, 1739,
+ 65, 896,
+ -2, 912,
-1, 1740,
65, 897,
-2, 913,
- -1, 1741,
- 65, 898,
- -2, 914,
- -1, 1801,
+ -1, 1800,
149, 165,
191, 165,
363, 165,
- -2, 459,
- -1, 1884,
- 150, 409,
- 259, 409,
- -2, 513,
- -1, 1893,
- 264, 1110,
- 269, 1110,
- -2, 421,
+ -2, 458,
+ -1, 1883,
+ 150, 408,
+ 259, 408,
+ -2, 512,
+ -1, 1892,
+ 264, 1109,
+ 269, 1109,
+ -2, 420,
+ -1, 2341,
+ 236, 1646,
+ -2, 1640,
-1, 2342,
- 236, 1647,
- -2, 1641,
- -1, 2343,
- 236, 1643,
- -2, 1639,
- -1, 2446,
+ 236, 1642,
+ -2, 1638,
+ -1, 2445,
149, 165,
191, 165,
363, 165,
- -2, 460,
- -1, 2453,
+ -2, 459,
+ -1, 2452,
28, 186,
-2, 188,
- -1, 2916,
+ -1, 2915,
86, 96,
96, 96,
- -2, 976,
- -1, 2984,
- 726, 702,
- -2, 676,
- -1, 3208,
- 55, 1586,
- -2, 1580,
- -1, 4045,
- 726, 702,
- -2, 690,
- -1, 4137,
- 98, 634,
- 104, 634,
- 114, 634,
- 193, 634,
- 194, 634,
- 195, 634,
- 196, 634,
- 197, 634,
- 198, 634,
- 199, 634,
- 200, 634,
- 201, 634,
- 202, 634,
- 203, 634,
- 204, 634,
- 205, 634,
- 206, 634,
- 207, 634,
- 208, 634,
- 209, 634,
- 210, 634,
- 211, 634,
- 212, 634,
- 213, 634,
- 214, 634,
- 215, 634,
- 216, 634,
- 217, 634,
- 218, 634,
- 219, 634,
- 220, 634,
- 221, 634,
- 222, 634,
- 223, 634,
- 224, 634,
- 225, 634,
- 226, 634,
- 227, 634,
- 228, 634,
- 229, 634,
- 230, 634,
- 231, 634,
- 232, 634,
- 233, 634,
- 234, 634,
- -2, 2018,
+ -2, 975,
+ -1, 2983,
+ 726, 701,
+ -2, 675,
+ -1, 3207,
+ 55, 1585,
+ -2, 1579,
+ -1, 4044,
+ 726, 701,
+ -2, 689,
+ -1, 4136,
+ 98, 633,
+ 104, 633,
+ 114, 633,
+ 193, 633,
+ 194, 633,
+ 195, 633,
+ 196, 633,
+ 197, 633,
+ 198, 633,
+ 199, 633,
+ 200, 633,
+ 201, 633,
+ 202, 633,
+ 203, 633,
+ 204, 633,
+ 205, 633,
+ 206, 633,
+ 207, 633,
+ 208, 633,
+ 209, 633,
+ 210, 633,
+ 211, 633,
+ 212, 633,
+ 213, 633,
+ 214, 633,
+ 215, 633,
+ 216, 633,
+ 217, 633,
+ 218, 633,
+ 219, 633,
+ 220, 633,
+ 221, 633,
+ 222, 633,
+ 223, 633,
+ 224, 633,
+ 225, 633,
+ 226, 633,
+ 227, 633,
+ 228, 633,
+ 229, 633,
+ 230, 633,
+ 231, 633,
+ 232, 633,
+ 233, 633,
+ 234, 633,
+ -2, 2017,
}
const yyPrivate = 57344
-const yyLast = 57238
+const yyLast = 56607
var yyAct = [...]int{
- 973, 3696, 3697, 87, 3695, 4026, 4180, 4212, 961, 4116,
- 4135, 2147, 3359, 2371, 4008, 4225, 4104, 1282, 4179, 1284,
- 968, 3645, 960, 2135, 3260, 2443, 3267, 2073, 3931, 3221,
- 5, 3308, 3495, 3317, 3322, 4006, 3319, 3318, 3316, 3321,
- 3320, 3074, 3632, 2373, 3159, 3337, 3275, 2518, 2014, 752,
- 3336, 3225, 3222, 3535, 3048, 3073, 3541, 3219, 2876, 3738,
- 2398, 747, 922, 3209, 3525, 2481, 746, 780, 2950, 3366,
- 1861, 1804, 921, 3030, 2505, 2981, 2486, 1760, 1093, 4077,
- 3339, 2951, 2549, 2952, 163, 2414, 1041, 2431, 87, 2882,
- 2419, 1163, 1061, 1068, 2901, 1038, 43, 2868, 2327, 2417,
- 926, 1909, 2131, 42, 2852, 1139, 2295, 1041, 2081, 3022,
- 2418, 41, 2294, 2169, 2527, 3563, 149, 2504, 1891, 2406,
- 2566, 2488, 1103, 2943, 1126, 1121, 1793, 2918, 1773, 2421,
- 100, 1721, 1540, 2175, 2106, 104, 2095, 1465, 105, 1448,
- 2010, 1898, 1100, 1097, 1870, 3224, 762, 1132, 1990, 1127,
- 1129, 1101, 2477, 1128, 1792, 1078, 1050, 2478, 1080, 1778,
- 1743, 1523, 1499, 2202, 2072, 2183, 3733, 2399, 749, 757,
- 2850, 1047, 2889, 107, 85, 1272, 2022, 127, 167, 125,
- 126, 1883, 3496, 1060, 1046, 3725, 1040, 99, 1044, 1212,
- 132, 133, 93, 923, 3552, 1073, 756, 1036, 1048, 1045,
- 106, 750, 1544, 98, 4213, 3633, 1072, 1063, 3305, 1280,
- 739, 1258, 2520, 2521, 2522, 4061, 2520, 3004, 3003, 2564,
- 2972, 1466, 3625, 1035, 4162, 84, 3038, 3039, 1549, 682,
- 1053, 128, 4057, 2368, 2369, 134, 2088, 3588, 2087, 1168,
- 2086, 4062, 1143, 1165, 1094, 4056, 2085, 2084, 2083, 2053,
- 1462, 1228, 679, 1459, 680, 4156, 1182, 1183, 1184, 2848,
- 1187, 1188, 1189, 1190, 1176, 2617, 1193, 1194, 1195, 1196,
- 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
- 1207, 1208, 1209, 740, 1088, 1037, 1087, 1142, 1054, 3327,
- 3205, 1975, 2, 2878, 1764, 4183, 1118, 1762, 3700, 1062,
- 3163, 2553, 1117, 128, 1116, 1115, 1169, 1172, 1173, 3327,
- 1482, 1039, 4235, 4035, 2974, 724, 95, 724, 95, 3700,
- 4178, 1105, 3324, 1229, 1765, 4203, 3499, 1763, 3498, 1476,
- 4218, 1110, 1086, 1090, 925, 1185, 2997, 111, 112, 113,
- 2392, 116, 4166, 4164, 122, 2552, 4057, 191, 1034, 3325,
- 674, 718, 927, 190, 95, 4217, 2395, 95, 1461, 2394,
- 4009, 1754, 737, 738, 2994, 2813, 718, 4165, 4163, 3325,
- 2093, 128, 1029, 1030, 1031, 1032, 129, 2109, 3331, 1043,
- 3385, 718, 4131, 3927, 3926, 976, 977, 978, 3638, 1167,
- 1166, 3639, 172, 1119, 3699, 976, 977, 978, 3331, 86,
- 1086, 1090, 925, 4193, 3937, 4160, 3657, 1075, 1076, 713,
- 1450, 3646, 4105, 86, 4113, 3699, 2624, 2546, 86, 3936,
- 2140, 4140, 2892, 3411, 1872, 1265, 3656, 1267, 1478, 2927,
- 3256, 1109, 2926, 3037, 1111, 2928, 3257, 3258, 2932, 4117,
- 1114, 1472, 1221, 1222, 1464, 2438, 2439, 2065, 2066, 718,
- 2893, 1794, 169, 1795, 2621, 170, 2849, 698, 2437, 1479,
- 3021, 1480, 1481, 1460, 3752, 1264, 1266, 1248, 1027, 1026,
- 696, 718, 1236, 4027, 1224, 1253, 1254, 1237, 1249, 1242,
- 2939, 189, 95, 3095, 1236, 2551, 2622, 1277, 718, 1237,
- 718, 2018, 718, 3328, 2497, 3393, 95, 1235, 1112, 1234,
- 3391, 95, 2456, 2455, 1443, 3363, 2370, 2615, 3361, 4040,
- 693, 2885, 2886, 3328, 2402, 4121, 2068, 2064, 2491, 708,
- 4145, 732, 3367, 1211, 736, 4121, 1996, 86, 730, 1790,
- 88, 2402, 1186, 1114, 703, 1106, 1725, 3023, 1965, 3979,
- 4143, 3980, 1108, 1107, 2982, 706, 3354, 2528, 716, 4184,
- 4149, 4150, 2571, 3007, 3355, 2591, 717, 2592, 2573, 2593,
- 3277, 3278, 2567, 1079, 1991, 719, 4215, 4144, 1269, 1442,
- 4185, 1251, 1252, 1449, 1274, 1262, 1250, 1243, 1257, 1263,
- 719, 1217, 1966, 1255, 1967, 3025, 3011, 2569, 3012, 1268,
- 2618, 1112, 2619, 1256, 2570, 719, 173, 3623, 3627, 3626,
- 1276, 3364, 3911, 1728, 3362, 179, 1275, 2572, 2594, 1192,
- 95, 1191, 1152, 2574, 1261, 1141, 683, 1141, 685, 699,
- 2531, 721, 3704, 720, 689, 2415, 687, 691, 700, 692,
- 1113, 686, 2019, 697, 1123, 1161, 688, 701, 702, 705,
- 709, 710, 711, 707, 704, 1122, 695, 722, 1160, 1123,
- 1159, 3096, 1158, 1157, 1156, 1155, 3538, 4157, 1154, 1149,
- 1089, 1083, 1081, 719, 1500, 1876, 2975, 1162, 1514, 3276,
- 1514, 2490, 2580, 2576, 2578, 2579, 2577, 2581, 2582, 2583,
- 3279, 3279, 1098, 4236, 4190, 719, 3382, 1135, 1501, 1502,
- 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1098,
- 1098, 1171, 719, 1096, 719, 1134, 719, 1134, 2011, 2400,
- 2401, 1170, 3622, 1281, 3162, 1281, 1281, 1871, 1140, 1074,
- 1140, 3026, 3299, 1113, 2557, 2556, 2400, 2401, 1089, 1083,
- 1081, 2007, 1451, 164, 1179, 3006, 1869, 1471, 1468, 1469,
- 1470, 1475, 1477, 1474, 1868, 1473, 2000, 1867, 1998, 1999,
- 1997, 2001, 2002, 2003, 3042, 1467, 2639, 2992, 2008, 3190,
- 1791, 3188, 1153, 4158, 1865, 1041, 1524, 1529, 1530, 1227,
- 1533, 1535, 1536, 1537, 1538, 1539, 673, 1542, 1543, 1545,
- 1545, 4022, 1545, 1545, 1550, 1550, 1550, 1553, 1554, 1555,
+ 973, 3695, 3696, 87, 3694, 4025, 4179, 4211, 961, 4115,
+ 4134, 2146, 3358, 2370, 4007, 4224, 4103, 1282, 4178, 1284,
+ 968, 3644, 960, 2134, 3259, 2442, 3266, 2072, 3930, 3220,
+ 5, 3307, 3494, 3316, 3321, 4005, 3318, 3317, 3315, 3320,
+ 3319, 3073, 3631, 2372, 3158, 3336, 3274, 2517, 2013, 752,
+ 3335, 3224, 3221, 3534, 3047, 3072, 3540, 3218, 2875, 3737,
+ 2397, 747, 3338, 3208, 3524, 2480, 746, 922, 2949, 3365,
+ 1860, 1803, 780, 3029, 2504, 2980, 2485, 1759, 1093, 4076,
+ 921, 2951, 2950, 2430, 163, 2413, 1041, 2548, 87, 2881,
+ 2418, 1061, 1038, 1068, 2867, 1908, 2851, 2900, 2326, 2416,
+ 926, 41, 1163, 42, 1139, 2130, 2294, 1041, 2080, 2417,
+ 2293, 2526, 3021, 2503, 43, 3562, 2168, 2405, 1890, 2487,
+ 2565, 2942, 1103, 1126, 1121, 149, 1792, 2917, 1772, 2420,
+ 100, 1720, 1540, 2174, 104, 105, 2105, 2094, 1465, 1448,
+ 2009, 1897, 1100, 1097, 1869, 3223, 762, 1132, 1989, 2476,
+ 1101, 1127, 1128, 1791, 2477, 1777, 1078, 1129, 757, 1080,
+ 1742, 1050, 2201, 1523, 2182, 2888, 3732, 1499, 749, 1047,
+ 2849, 2071, 85, 107, 1272, 2021, 167, 127, 2398, 125,
+ 126, 3495, 1882, 1060, 132, 3724, 1040, 133, 1044, 1045,
+ 1073, 1212, 93, 923, 3551, 99, 1549, 1036, 1048, 98,
+ 4212, 750, 1046, 739, 1544, 3632, 1072, 1063, 1280, 3304,
+ 2519, 1258, 84, 2519, 2520, 2521, 4060, 3003, 3002, 2563,
+ 2971, 106, 1466, 3624, 1035, 4161, 3037, 3038, 3587, 128,
+ 1053, 4055, 4056, 2367, 2368, 2087, 134, 3699, 3699, 1168,
+ 682, 1143, 4061, 1094, 2086, 2085, 2084, 2083, 2082, 2052,
+ 1228, 679, 2847, 680, 1165, 2616, 3204, 3162, 4234, 2552,
+ 4177, 4182, 4202, 1176, 4155, 1110, 1105, 1182, 1183, 1184,
+ 3498, 1187, 1188, 1189, 1190, 1087, 740, 1193, 1194, 1195,
+ 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205,
+ 1206, 1207, 1208, 1209, 1142, 1088, 1054, 1763, 1039, 1062,
+ 1753, 128, 1117, 2551, 1116, 1115, 1037, 1118, 2, 1761,
+ 1482, 95, 3326, 1169, 1172, 1173, 1974, 4034, 95, 2877,
+ 724, 3497, 3326, 1229, 2394, 4217, 2973, 1764, 1462, 2393,
+ 1476, 1459, 4056, 3698, 3698, 3323, 2996, 4008, 724, 1762,
+ 2391, 2812, 95, 4165, 2092, 3384, 1185, 4130, 2993, 1034,
+ 4216, 4163, 927, 111, 112, 113, 3926, 116, 3925, 1167,
+ 122, 718, 2108, 191, 1166, 4192, 674, 95, 4164, 128,
+ 190, 3936, 3324, 1086, 1090, 925, 4162, 3637, 737, 738,
+ 3638, 4159, 3324, 86, 976, 977, 978, 718, 1029, 1030,
+ 1031, 1032, 86, 129, 3656, 1043, 86, 1450, 3645, 4104,
+ 4112, 3330, 2545, 1119, 2623, 3935, 2891, 2139, 4139, 172,
+ 3410, 3330, 976, 977, 978, 1871, 3256, 3257, 2848, 1086,
+ 1090, 925, 718, 1075, 1076, 2926, 3655, 1793, 2925, 1794,
+ 713, 2927, 2437, 2438, 2892, 3255, 1461, 3036, 4116, 2064,
+ 2065, 2620, 1472, 2550, 2436, 1464, 3020, 3751, 1248, 1253,
+ 1254, 1277, 1027, 1026, 4026, 2931, 2974, 1211, 1236, 1479,
+ 1249, 1480, 1481, 1237, 1242, 2938, 95, 718, 718, 169,
+ 718, 1478, 170, 2017, 2621, 95, 2455, 2454, 698, 95,
+ 1236, 718, 3362, 3360, 3392, 1237, 1114, 3094, 1221, 1222,
+ 3390, 696, 4144, 1235, 1443, 1234, 2884, 2885, 189, 2614,
+ 2063, 732, 2067, 736, 4039, 1995, 2369, 2210, 730, 718,
+ 2401, 3366, 4142, 1724, 4120, 4183, 3327, 3022, 2572, 2527,
+ 1224, 2496, 4148, 4149, 2401, 86, 3327, 1789, 88, 2981,
+ 1964, 693, 3276, 3277, 2566, 3978, 4184, 3979, 3006, 4143,
+ 708, 1460, 4120, 1466, 1112, 2490, 3353, 1990, 2590, 4214,
+ 2591, 1186, 2592, 1269, 3354, 703, 1442, 1255, 1250, 1274,
+ 1449, 1257, 1243, 1500, 1276, 1217, 706, 1256, 2570, 716,
+ 1275, 1251, 1252, 2573, 1965, 719, 1966, 717, 3363, 3361,
+ 2617, 3024, 2618, 2568, 3626, 3381, 3625, 1501, 1502, 1503,
+ 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2593, 1192,
+ 1191, 719, 3910, 1727, 1079, 1152, 2202, 1141, 95, 1141,
+ 2569, 2204, 1150, 173, 2018, 2209, 2205, 2530, 3622, 2206,
+ 2207, 2208, 179, 2571, 2203, 2211, 2212, 2213, 2214, 2215,
+ 2216, 2217, 2218, 2219, 1122, 3703, 719, 683, 1123, 685,
+ 699, 3275, 721, 2414, 720, 689, 1123, 687, 691, 700,
+ 692, 1476, 686, 3278, 697, 3095, 1875, 688, 701, 702,
+ 705, 709, 710, 711, 707, 704, 4156, 695, 722, 1162,
+ 1161, 3161, 3010, 1514, 3011, 1160, 1113, 1159, 1158, 3537,
+ 1157, 719, 719, 1156, 719, 2579, 2575, 2577, 2578, 2576,
+ 2580, 2581, 2582, 1155, 1154, 719, 3278, 1149, 2489, 4235,
+ 4189, 1089, 1083, 1081, 1098, 2399, 2400, 1098, 1171, 1135,
+ 1140, 1096, 1140, 1281, 1134, 1281, 1281, 1098, 1170, 2399,
+ 2400, 1134, 2010, 719, 1074, 1999, 1870, 1997, 1998, 1996,
+ 2000, 2001, 2002, 3621, 3025, 2556, 2555, 2006, 1471, 1468,
+ 1469, 1470, 1475, 1477, 1474, 1451, 1473, 1089, 1083, 1081,
+ 164, 3189, 1179, 3187, 3298, 1153, 1467, 3005, 1790, 3041,
+ 1868, 2975, 1151, 1472, 1867, 1041, 1524, 1529, 1530, 1866,
+ 1533, 1535, 1536, 1537, 1538, 1539, 2991, 1542, 1543, 1545,
+ 1545, 2007, 1545, 1545, 1550, 1550, 1550, 1553, 1554, 1555,
1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575,
1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
@@ -1788,1068 +1788,1079 @@ var yyAct = [...]int{
1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655,
1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
- 1676, 1521, 4034, 2973, 1270, 1677, 1458, 1679, 1680, 1681,
- 1682, 1683, 723, 1439, 1440, 1441, 2941, 1120, 4080, 1550,
- 1550, 1550, 1550, 1550, 1550, 3586, 3587, 1082, 3655, 1534,
- 974, 3009, 974, 714, 1690, 1691, 1692, 1693, 1694, 1695,
- 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 715, 1525,
- 1517, 1518, 1519, 1520, 2550, 3539, 4119, 3329, 3330, 1466,
- 1531, 2976, 165, 3698, 2996, 1718, 4119, 1246, 1233, 177,
- 3333, 974, 1546, 94, 1547, 1548, 2623, 3329, 3330, 1977,
- 1976, 1978, 1979, 1980, 3698, 3483, 1220, 94, 4118, 1150,
- 3333, 89, 94, 1897, 2494, 1082, 1223, 1232, 4118, 1238,
- 1239, 1240, 1241, 1551, 1552, 2548, 3020, 3577, 2995, 3019,
- 185, 3559, 1215, 2622, 3049, 2923, 1141, 2853, 2855, 1724,
- 2888, 3029, 2825, 1278, 1279, 1515, 1516, 2143, 1041, 1782,
- 1753, 1678, 1041, 1141, 1226, 2495, 3171, 3170, 1041, 2883,
- 681, 1511, 2493, 2444, 4148, 1514, 3255, 1754, 2650, 2184,
- 1141, 124, 1494, 166, 171, 168, 174, 175, 176, 178,
- 180, 181, 182, 183, 1715, 4229, 2185, 1476, 1057, 184,
- 186, 187, 188, 1259, 1273, 1716, 2496, 2111, 119, 4048,
- 1995, 1164, 2176, 3069, 1500, 1178, 2492, 4194, 4147, 3618,
- 3263, 2112, 1512, 1513, 2110, 3747, 3383, 2023, 3051, 1481,
- 1231, 94, 1896, 3551, 2568, 2077, 2004, 1796, 1501, 1502,
- 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1140,
- 2176, 2510, 2659, 1734, 1144, 1134, 1735, 104, 1732, 1146,
- 105, 2650, 1736, 1147, 1145, 3593, 1140, 3592, 1040, 1151,
- 2545, 3264, 2535, 1716, 1480, 1481, 1722, 1684, 1685, 1686,
- 1687, 1688, 1689, 1140, 1148, 1709, 120, 1906, 1905, 1134,
- 1137, 1138, 1895, 1098, 2543, 107, 3266, 1131, 1135, 1141,
- 1152, 3061, 3060, 3059, 1114, 1210, 3053, 1150, 3057, 1472,
- 3052, 2540, 3050, 1245, 3032, 1052, 3261, 3055, 1130, 3031,
- 1141, 2854, 3032, 1482, 1247, 4237, 3054, 3031, 1889, 4186,
- 1873, 1874, 1875, 3578, 4231, 2182, 3277, 3278, 1141, 3652,
- 1730, 3653, 2547, 3262, 2540, 3056, 3058, 4081, 3919, 1985,
- 1731, 3918, 4014, 1756, 2544, 3909, 1719, 1733, 1482, 1960,
- 1037, 1260, 1882, 1899, 1899, 1992, 2016, 1993, 1759, 1214,
- 1994, 1911, 1942, 1912, 1216, 1914, 1916, 3268, 1901, 1920,
- 1922, 1924, 1926, 1928, 1230, 2024, 1754, 2542, 1482, 1281,
- 2170, 1787, 1788, 1039, 2181, 1983, 4082, 1950, 1951, 1856,
- 1900, 4015, 1140, 1956, 1957, 976, 977, 978, 1134, 1137,
- 1138, 2332, 1098, 3669, 1864, 2329, 1131, 1135, 3668, 2167,
- 1984, 4238, 1972, 1140, 2331, 3600, 1879, 4227, 1144, 1134,
- 4228, 3599, 4226, 1146, 1892, 1880, 1878, 1147, 1145, 3589,
- 972, 1140, 3306, 1177, 3295, 3276, 2948, 1174, 2947, 1506,
- 1507, 1509, 1508, 1510, 1511, 1737, 1903, 3279, 2099, 2100,
- 2097, 2098, 2946, 2500, 1986, 742, 1982, 1946, 1970, 190,
- 2648, 1500, 1479, 3041, 1480, 1481, 1969, 1968, 1213, 1958,
- 2647, 3071, 1952, 1938, 2012, 2096, 1941, 1949, 1943, 724,
- 1948, 1947, 129, 1971, 1113, 1501, 1502, 1503, 1504, 1505,
- 1506, 1507, 1509, 1508, 1510, 1511, 1918, 1479, 172, 1480,
- 1481, 1729, 1482, 2211, 1117, 128, 1116, 1115, 2159, 2148,
- 2149, 2150, 2151, 2161, 2152, 2153, 2154, 2166, 2162, 2155,
- 2156, 2163, 2164, 2165, 2157, 2158, 2160, 1479, 2332, 1480,
- 1481, 2029, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
- 1508, 1510, 1511, 2099, 2100, 2629, 2630, 3358, 1445, 1281,
- 1281, 3583, 1790, 724, 1482, 2051, 2025, 2026, 169, 4187,
- 2930, 170, 724, 4043, 2516, 87, 2515, 3265, 87, 2514,
- 2030, 2513, 2512, 2698, 2511, 2874, 4214, 2037, 2038, 2039,
- 2407, 2408, 1767, 1478, 1754, 1754, 1482, 189, 2050, 4174,
- 1754, 1482, 2874, 1754, 3941, 1471, 1468, 1469, 1470, 1475,
- 1477, 1474, 2203, 1473, 1482, 2696, 4042, 2205, 1500, 1478,
- 1754, 2210, 2206, 1467, 2167, 2207, 2208, 2209, 4018, 1482,
- 2204, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220,
- 2700, 1768, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
- 1508, 1510, 1511, 1482, 2874, 4112, 2138, 2138, 2136, 2136,
- 2139, 1479, 4017, 1480, 1481, 2874, 4091, 2101, 110, 2874,
- 4087, 4036, 101, 3999, 1754, 42, 1482, 2686, 42, 109,
- 1482, 108, 102, 4016, 1482, 3914, 2027, 3898, 4199, 1754,
- 3636, 4033, 3946, 2031, 1754, 2033, 2034, 2035, 2036, 101,
- 2646, 3897, 2040, 3746, 2222, 103, 4197, 1754, 3945, 102,
- 3922, 1754, 173, 1479, 2052, 1480, 1481, 2874, 3910, 3550,
- 3744, 179, 1754, 2159, 2148, 2149, 2150, 2151, 2161, 2152,
- 2153, 2154, 2166, 2162, 2155, 2156, 2163, 2164, 2165, 2157,
- 2158, 2160, 2078, 1754, 3902, 1479, 85, 1480, 1481, 85,
- 1479, 3665, 1480, 1481, 1754, 3901, 1715, 1714, 1713, 1712,
- 3636, 1754, 2108, 1479, 3597, 1480, 1481, 1716, 2058, 2059,
- 1754, 2171, 4127, 1754, 1482, 3582, 4125, 1754, 1479, 2113,
- 1480, 1481, 2874, 3634, 2540, 1754, 2114, 3368, 2116, 2117,
- 2118, 2119, 2120, 2121, 2123, 2125, 2126, 2127, 2128, 2129,
- 2130, 3365, 1479, 3298, 1480, 1481, 2142, 1504, 1505, 1506,
- 1507, 1509, 1508, 1510, 1511, 3297, 2340, 2957, 2342, 3269,
- 2115, 3557, 1754, 3273, 2944, 1479, 2246, 1480, 1481, 1479,
- 3272, 1480, 1481, 1479, 1711, 1480, 1481, 1482, 1525, 1704,
- 2186, 2187, 2188, 2189, 2780, 1754, 3644, 2341, 2612, 164,
- 3288, 3287, 1478, 2328, 2200, 2221, 2177, 2330, 1500, 3285,
- 3286, 1496, 1482, 1497, 3274, 2604, 4123, 1754, 2983, 3270,
- 1500, 2603, 2638, 2238, 3271, 3283, 3284, 1498, 1512, 1513,
- 1495, 2562, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
- 1508, 1510, 1511, 1482, 1501, 1502, 1503, 1504, 1505, 1506,
- 1507, 1509, 1508, 1510, 1511, 3283, 3282, 2655, 2423, 1500,
- 2561, 2339, 2898, 1754, 2345, 2346, 2622, 3005, 1860, 2986,
- 2340, 2397, 2342, 1479, 2376, 1480, 1481, 2054, 104, 3992,
- 1754, 105, 2020, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
- 1509, 1508, 1510, 1511, 1981, 1482, 2979, 2980, 2962, 104,
- 2453, 2412, 105, 2387, 3990, 1754, 1482, 1973, 2375, 1488,
- 1489, 1490, 1491, 1492, 1493, 1487, 1484, 3400, 2107, 1502,
- 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2874,
- 2873, 1103, 1963, 2919, 2919, 2654, 1479, 3554, 1480, 1481,
- 2141, 1754, 1482, 103, 1959, 2871, 2462, 2463, 2464, 2465,
- 2457, 2448, 2458, 2459, 2460, 2461, 2447, 1053, 2425, 103,
- 1955, 1479, 1954, 1480, 1481, 1103, 2467, 2429, 1953, 2469,
- 2470, 2471, 2472, 2388, 2363, 1860, 1859, 1802, 1801, 2890,
- 1769, 1271, 2890, 3250, 2452, 2390, 109, 2381, 1754, 2382,
- 2541, 2483, 1479, 2622, 1480, 1481, 4075, 2451, 3987, 1754,
- 2897, 2920, 2920, 1482, 2489, 3553, 2529, 3601, 1754, 2410,
- 1482, 2922, 2622, 3220, 4047, 2434, 2435, 2874, 2433, 1482,
- 2898, 3503, 2450, 2869, 3550, 3285, 2449, 1088, 1482, 1087,
- 3193, 2436, 2780, 1482, 3969, 1754, 2683, 2526, 165, 2682,
- 2540, 2523, 2405, 1758, 1479, 177, 1480, 1481, 1482, 2366,
- 2141, 2499, 2079, 2063, 2540, 1479, 2898, 1480, 1481, 3550,
- 1478, 2898, 2006, 1143, 3602, 3603, 3604, 1789, 1042, 95,
- 2484, 1125, 1124, 1899, 1482, 4153, 2480, 2473, 2475, 2476,
- 2503, 4094, 2498, 2502, 2534, 3933, 185, 2537, 1482, 2538,
- 2554, 1479, 1761, 1480, 1481, 3524, 1754, 1482, 3899, 3759,
- 3617, 3309, 3517, 1754, 3614, 1482, 2484, 2533, 1142, 2536,
- 2532, 3514, 1754, 3595, 1482, 3416, 3415, 1862, 1482, 2558,
- 3512, 1754, 2482, 2559, 2560, 3475, 1754, 2555, 1482, 166,
- 171, 168, 174, 175, 176, 178, 180, 181, 182, 183,
- 3473, 1754, 1482, 3356, 3311, 184, 186, 187, 188, 1482,
- 3307, 95, 1479, 2987, 1480, 1481, 1755, 1757, 1482, 1479,
- 2479, 1480, 1481, 2474, 2627, 2954, 3572, 2565, 1479, 2468,
- 1480, 1481, 2466, 1041, 1041, 1041, 1988, 1479, 1894, 1480,
- 1481, 4188, 1479, 1482, 1480, 1481, 1890, 1858, 1215, 3469,
- 1754, 1482, 121, 1535, 3360, 1535, 1482, 1479, 4031, 1480,
- 1481, 1934, 3564, 3565, 1482, 3934, 3466, 1754, 2497, 2379,
- 3519, 2642, 4209, 1482, 2953, 2056, 4207, 4181, 4055, 2597,
- 3464, 1754, 3974, 1479, 1482, 1480, 1481, 3567, 3303, 3302,
- 1482, 2645, 110, 2342, 3462, 1754, 1482, 1479, 3301, 1480,
- 1481, 3460, 1754, 109, 1482, 108, 1479, 3220, 1480, 1481,
- 3458, 1754, 3570, 103, 1479, 2966, 1480, 1481, 1935, 1936,
- 1937, 2598, 2341, 1479, 3569, 1480, 1481, 1479, 2954, 1480,
- 1481, 3239, 678, 2614, 1482, 3456, 1754, 1479, 1482, 1480,
- 1481, 3242, 2057, 3454, 1754, 3238, 3243, 2620, 3452, 1754,
- 1482, 1479, 4051, 1480, 1481, 3935, 3450, 1754, 1479, 1482,
- 1480, 1481, 3724, 2628, 3723, 3448, 1754, 1479, 1482, 1480,
- 1481, 2396, 1766, 2385, 1717, 2634, 3446, 1754, 1754, 2631,
- 2632, 2633, 3444, 1754, 1482, 3240, 1055, 2108, 3442, 1754,
- 3241, 3558, 1479, 3543, 1480, 1481, 3440, 1754, 3198, 3197,
- 1479, 3542, 1480, 1481, 4013, 1479, 741, 1480, 1481, 3737,
- 2635, 3739, 2637, 1479, 1482, 1480, 1481, 3722, 3546, 3605,
- 1058, 2640, 1479, 2641, 1480, 1481, 3438, 1754, 1059, 3207,
- 3436, 1754, 1482, 1479, 2005, 1480, 1481, 1056, 2658, 1479,
- 1025, 1480, 1481, 3906, 2636, 1479, 1482, 1480, 1481, 3281,
- 1482, 3422, 1754, 1479, 2937, 1480, 1481, 1482, 2958, 1930,
- 3398, 1754, 2590, 1482, 2184, 2643, 3244, 1482, 2907, 2908,
- 2589, 2824, 3606, 3607, 3608, 2588, 2845, 1754, 1482, 2606,
- 2607, 2185, 1482, 1479, 2609, 1480, 1481, 1479, 2587, 1480,
- 1481, 1067, 1482, 2610, 2694, 2586, 2585, 2812, 2584, 1479,
- 1181, 1480, 1481, 2856, 1180, 1066, 2843, 1754, 1479, 3376,
- 1480, 1481, 1931, 1932, 1933, 2953, 101, 1479, 3035, 1480,
- 1481, 1444, 1041, 2993, 2818, 1754, 102, 129, 2138, 3548,
- 2136, 2859, 1482, 1479, 101, 1480, 1481, 103, 2795, 1754,
- 103, 4223, 2787, 1754, 102, 2895, 2896, 1482, 2857, 2778,
- 1754, 2970, 3210, 3212, 2423, 2776, 1754, 1041, 2915, 2763,
- 1754, 3213, 2601, 1479, 4130, 1480, 1481, 2104, 2102, 2103,
- 2761, 1754, 2894, 4032, 2860, 3619, 2862, 1482, 3929, 110,
- 3280, 1479, 1482, 1480, 1481, 2949, 1482, 2911, 2875, 2391,
- 109, 3526, 108, 2107, 1482, 1479, 2626, 1480, 1481, 1479,
- 103, 1480, 1481, 3196, 2407, 2408, 1479, 2062, 1480, 1481,
- 2061, 3195, 1479, 1482, 1480, 1481, 1479, 1482, 1480, 1481,
- 108, 2884, 3998, 3997, 2759, 1754, 1722, 1479, 2847, 1480,
- 1481, 1479, 109, 1480, 1481, 110, 3536, 3977, 3745, 2757,
- 1754, 1479, 3743, 1480, 1481, 42, 109, 2867, 108, 2940,
- 2942, 3742, 3735, 2913, 2912, 1482, 3615, 2914, 3547, 3545,
- 3312, 2933, 2524, 1877, 2887, 1716, 110, 2917, 2872, 2755,
- 1754, 1065, 2991, 3734, 2753, 1754, 2890, 109, 2751, 1754,
- 3708, 1479, 1482, 1480, 1481, 2871, 2749, 1754, 2921, 4211,
- 4210, 4210, 2489, 2924, 1482, 3099, 1479, 2684, 1480, 1481,
- 1482, 2931, 2377, 2934, 1783, 2747, 1754, 1775, 4211, 2745,
- 1754, 4019, 2956, 3581, 3002, 3, 2179, 2959, 2960, 1482,
- 97, 2180, 2945, 1482, 114, 115, 1479, 2076, 1480, 1481,
- 10, 1479, 1, 1480, 1481, 1479, 1033, 1480, 1481, 2955,
- 1447, 2074, 1446, 1479, 9, 1480, 1481, 2743, 1754, 1482,
- 3585, 2963, 4142, 2964, 2967, 2968, 2969, 2075, 694, 2242,
- 8, 2999, 1479, 2367, 1480, 1481, 1479, 1720, 1480, 1481,
- 1882, 4182, 4138, 4139, 2741, 1754, 1974, 1964, 3647, 2293,
- 3930, 1482, 3045, 3046, 2988, 2989, 2739, 1754, 3315, 2530,
- 3613, 1482, 2737, 1754, 2487, 1133, 154, 2445, 2446, 2998,
- 4107, 118, 1482, 1091, 1479, 117, 1480, 1481, 1136, 1244,
- 1482, 2735, 1754, 2525, 1482, 2733, 1754, 3637, 1482, 2938,
- 2454, 1808, 1806, 1482, 1807, 1805, 1810, 1482, 3024, 1809,
- 3043, 1479, 3062, 1480, 1481, 4079, 3027, 1482, 3384, 2325,
- 2685, 2731, 1754, 1479, 3482, 1480, 1481, 1482, 1771, 1479,
- 2067, 1480, 1481, 731, 1482, 2910, 3080, 3081, 3082, 3083,
- 3084, 3085, 3086, 3087, 3088, 3089, 725, 192, 1479, 2357,
- 1480, 1481, 1479, 3515, 1480, 1481, 3097, 1797, 1776, 2060,
- 3000, 3063, 1175, 2729, 1754, 684, 3289, 1755, 2364, 2563,
- 690, 1532, 2055, 3194, 2724, 1754, 2925, 1085, 1479, 1482,
- 1480, 1481, 2720, 1754, 1077, 2378, 2718, 1754, 2861, 1084,
- 2711, 1754, 3907, 3228, 3540, 2709, 1754, 3206, 3208, 1770,
- 1482, 2877, 3211, 3204, 4012, 3736, 1482, 2389, 4092, 3481,
- 1479, 3101, 1480, 1481, 2935, 1772, 1717, 3502, 2657, 3477,
- 1479, 3047, 1480, 1481, 3157, 1482, 3413, 3033, 2174, 3064,
- 3034, 1479, 1522, 1480, 1481, 2422, 3703, 2094, 754, 1479,
- 753, 1480, 1481, 1479, 751, 1480, 1481, 1479, 2863, 1480,
- 1481, 3044, 1479, 3175, 1480, 1481, 1479, 2891, 1480, 1481,
- 1486, 1485, 962, 2236, 2851, 1784, 1479, 3164, 1480, 1481,
- 2902, 3412, 3166, 2900, 2899, 2978, 1479, 2599, 1480, 1481,
- 2430, 3566, 2423, 1479, 3562, 1480, 1481, 4134, 3090, 2328,
- 2424, 2328, 3404, 2330, 2420, 2330, 2870, 3137, 3402, 913,
- 912, 1482, 763, 755, 3227, 745, 87, 975, 911, 2423,
- 2423, 2423, 2423, 2423, 2501, 910, 3175, 2841, 3342, 3147,
- 3148, 3149, 3150, 3151, 3343, 3165, 3008, 3167, 1479, 2423,
- 1480, 1481, 2423, 3357, 3010, 2936, 3353, 3232, 1482, 1463,
- 3249, 1739, 1482, 2319, 2320, 2321, 2322, 2323, 3174, 1479,
- 1742, 1480, 1481, 2016, 1482, 1479, 2386, 1480, 1481, 1104,
- 2344, 3381, 4038, 2347, 2348, 1482, 3186, 2625, 3192, 3187,
- 3189, 3191, 1482, 3201, 1479, 3199, 1480, 1481, 3410, 3214,
- 3215, 3202, 2425, 1482, 2903, 2906, 2907, 2908, 2904, 1738,
- 2905, 2909, 4045, 2840, 3323, 3332, 3631, 3304, 2984, 2365,
- 3234, 3235, 1046, 3237, 2517, 3340, 1044, 1482, 3231, 2425,
- 2425, 2425, 2425, 2425, 3245, 104, 1482, 1045, 105, 3233,
- 3253, 69, 3236, 1482, 46, 4007, 4076, 3259, 3251, 2425,
- 2836, 3252, 2425, 1482, 2835, 905, 902, 3705, 3706, 3707,
- 3160, 3161, 3290, 4058, 3292, 3291, 2834, 4059, 901, 4060,
- 1479, 3200, 1480, 1481, 1482, 3293, 3294, 2833, 1482, 2231,
- 1457, 1454, 4155, 1482, 2832, 2069, 96, 3344, 3313, 36,
- 35, 2489, 3341, 3334, 1482, 2831, 34, 3345, 1482, 33,
- 32, 26, 25, 3217, 3351, 1482, 24, 1479, 23, 1480,
- 1481, 1479, 22, 1480, 1481, 29, 3223, 19, 21, 2822,
- 20, 3223, 18, 1479, 3369, 1480, 1481, 3372, 2821, 3326,
- 4177, 3371, 4222, 3379, 1479, 2820, 1480, 1481, 123, 55,
- 52, 1479, 50, 1480, 1481, 2819, 131, 130, 53, 3389,
- 3386, 3387, 1479, 3388, 1480, 1481, 3390, 49, 3392, 1218,
- 3394, 3405, 3406, 3407, 3408, 3409, 2816, 47, 31, 30,
- 2811, 17, 16, 15, 14, 2804, 1479, 13, 1480, 1481,
- 12, 11, 7, 6, 39, 1479, 2803, 1480, 1481, 38,
- 2802, 37, 1479, 28, 1480, 1481, 27, 2801, 40, 1535,
- 4, 2971, 1479, 1535, 1480, 1481, 3314, 2519, 0, 0,
- 0, 0, 0, 2644, 0, 0, 0, 2649, 0, 3527,
- 0, 3529, 0, 1479, 0, 1480, 1481, 1479, 0, 1480,
- 1481, 3497, 1479, 0, 1480, 1481, 0, 0, 3501, 0,
- 2652, 0, 2653, 1479, 0, 1480, 1481, 1479, 2661, 1480,
- 1481, 0, 2663, 2664, 1479, 0, 1480, 1481, 0, 0,
- 0, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678,
- 2679, 0, 2681, 0, 3380, 0, 3226, 0, 0, 0,
- 0, 2423, 0, 0, 3528, 0, 3530, 0, 0, 0,
- 3532, 0, 0, 3537, 3579, 2687, 2688, 2689, 2690, 0,
- 2692, 2693, 3544, 2695, 0, 0, 0, 2697, 0, 3549,
- 0, 2702, 2703, 0, 2704, 1482, 0, 2707, 2708, 2710,
- 2712, 2713, 2714, 2715, 2716, 2717, 2719, 2721, 2722, 2723,
- 2725, 743, 2727, 2728, 2730, 2732, 2734, 2736, 2738, 2740,
- 2742, 2744, 2746, 2748, 2750, 2752, 2754, 2756, 2758, 2760,
- 2762, 2764, 2765, 2766, 3571, 2768, 3344, 2770, 3335, 2772,
- 2773, 3341, 2775, 2777, 2779, 3573, 3345, 3504, 2782, 3506,
- 3507, 3508, 2786, 3596, 3580, 3598, 2791, 2792, 2793, 2794,
- 3574, 2425, 3568, 1482, 0, 3641, 3642, 3374, 3375, 2805,
- 2806, 2807, 2808, 2809, 2810, 3590, 3591, 2814, 2815, 0,
- 0, 0, 3534, 1482, 0, 2817, 0, 2800, 0, 0,
- 2823, 0, 0, 1482, 0, 2826, 2827, 2828, 2829, 2830,
- 1482, 0, 0, 0, 0, 1482, 2837, 2838, 0, 2839,
- 1482, 0, 2842, 2844, 2389, 3561, 2846, 0, 0, 1482,
- 1064, 0, 0, 1070, 1070, 1482, 2858, 3624, 0, 1482,
- 0, 3628, 3629, 3630, 3575, 3576, 0, 0, 0, 1482,
- 3643, 0, 0, 0, 1479, 0, 1480, 1481, 1482, 0,
- 2903, 2906, 2907, 2908, 2904, 2799, 2905, 2909, 3659, 0,
- 3564, 3565, 0, 0, 2665, 0, 0, 0, 1482, 0,
- 0, 0, 0, 1482, 0, 2798, 0, 0, 0, 0,
- 1482, 2680, 0, 3670, 0, 2797, 0, 1482, 0, 0,
- 0, 1482, 2796, 0, 0, 1482, 0, 2790, 0, 0,
- 1482, 0, 2789, 0, 1482, 0, 0, 0, 0, 1482,
- 0, 2788, 1479, 0, 1480, 1481, 0, 2785, 0, 1482,
- 0, 2784, 0, 0, 0, 0, 3711, 0, 3712, 3713,
- 3714, 2783, 1479, 0, 1480, 1481, 3721, 0, 1482, 3728,
- 2781, 3730, 1479, 0, 1480, 1481, 0, 0, 3701, 1479,
- 0, 1480, 1481, 1482, 1479, 3731, 1480, 1481, 0, 1479,
- 2774, 1480, 1481, 0, 3227, 2771, 0, 87, 1479, 3227,
- 1480, 1481, 2769, 0, 1479, 0, 1480, 1481, 1479, 2767,
- 1480, 1481, 0, 2726, 0, 0, 1482, 2706, 1479, 0,
- 1480, 1481, 2705, 0, 3753, 0, 2701, 1479, 3732, 1480,
- 1481, 2699, 0, 2138, 3664, 2136, 3761, 3741, 3751, 3740,
- 0, 2691, 0, 3748, 0, 3750, 0, 1479, 0, 1480,
- 1481, 0, 1479, 0, 1480, 1481, 0, 0, 0, 1479,
- 2662, 1480, 1481, 0, 3913, 0, 1479, 0, 1480, 1481,
- 1479, 3765, 1480, 1481, 1479, 2656, 1480, 1481, 0, 1479,
- 0, 1480, 1481, 1479, 0, 1480, 1481, 0, 1479, 0,
- 1480, 1481, 3620, 3621, 0, 0, 0, 42, 1479, 0,
- 1480, 1481, 0, 3905, 3932, 3904, 0, 0, 2651, 0,
- 0, 0, 0, 0, 3920, 0, 0, 1479, 0, 1480,
- 1481, 3924, 3925, 0, 0, 0, 0, 3903, 1744, 0,
- 0, 0, 1479, 0, 1480, 1481, 0, 3971, 3972, 0,
- 0, 0, 1752, 0, 3755, 1745, 3075, 3076, 3077, 3078,
- 3079, 0, 0, 0, 0, 3729, 0, 3915, 3916, 3917,
- 0, 2138, 0, 2136, 3975, 1479, 3094, 1480, 1481, 0,
- 2383, 2384, 1751, 1749, 1750, 1746, 0, 1747, 0, 0,
- 0, 0, 0, 0, 3223, 0, 3762, 3763, 0, 0,
- 3978, 0, 4020, 3227, 3981, 0, 0, 0, 0, 3757,
- 1748, 0, 0, 0, 0, 0, 0, 1553, 1554, 1555,
- 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
- 1566, 1567, 1568, 1569, 1570, 1571, 1573, 1574, 1575, 1576,
- 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586,
- 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
- 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606,
- 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
- 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626,
- 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
- 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646,
- 1647, 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657,
- 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
- 1673, 1674, 1675, 1676, 1690, 1691, 1692, 1693, 1694, 1695,
- 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 4021, 4005,
- 0, 3976, 4004, 0, 0, 0, 3226, 3995, 0, 0,
- 0, 3226, 4039, 0, 4001, 0, 4003, 0, 0, 0,
- 0, 0, 3065, 0, 0, 1744, 0, 0, 0, 0,
- 87, 0, 0, 0, 0, 0, 3229, 0, 0, 1752,
- 0, 4024, 1745, 0, 0, 0, 0, 0, 0, 0,
- 4023, 0, 0, 0, 3247, 0, 0, 4046, 3908, 4041,
- 4028, 0, 0, 0, 0, 4044, 0, 1740, 1741, 1751,
- 1749, 1750, 1746, 0, 1747, 0, 3912, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1748, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4064, 0, 0, 4065, 0, 0, 0, 0, 4089, 0,
- 42, 0, 0, 87, 0, 0, 0, 0, 0, 0,
- 0, 4074, 0, 0, 0, 0, 1483, 0, 0, 4083,
- 0, 0, 0, 0, 3139, 0, 3141, 0, 0, 0,
- 4093, 0, 0, 0, 0, 3932, 4109, 4095, 0, 4120,
- 0, 0, 3152, 3153, 3154, 3155, 4106, 1541, 0, 4098,
- 4103, 3378, 4100, 4099, 4097, 4102, 4101, 0, 0, 0,
- 4128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4025, 0, 4133, 3395, 3396, 3226, 3397, 3399, 3401, 0,
- 4151, 0, 0, 0, 0, 0, 0, 4141, 0, 4146,
- 0, 0, 0, 0, 0, 4159, 4120, 4161, 0, 0,
- 0, 4172, 0, 42, 3414, 0, 0, 0, 0, 3417,
- 0, 3419, 3420, 3421, 3423, 3424, 3425, 3426, 3427, 3428,
- 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3437, 3439, 3441,
- 3443, 3445, 3447, 3449, 3451, 3453, 3455, 3457, 3459, 3461,
- 3463, 3465, 3467, 3468, 3470, 3471, 3472, 3474, 2016, 4195,
- 3476, 4192, 3478, 3479, 3480, 4202, 4206, 3484, 3485, 3486,
- 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 2138, 4208,
- 2136, 4205, 4204, 4120, 4216, 4201, 3500, 4191, 4176, 4171,
- 3505, 4224, 4090, 3223, 3509, 3510, 4085, 3511, 3513, 0,
- 3516, 3518, 4232, 3520, 3521, 3522, 3523, 4230, 0, 0,
- 0, 0, 0, 3531, 0, 0, 0, 0, 0, 0,
- 4030, 4241, 4242, 3972, 4240, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2138, 0, 2136, 4239,
- 0, 0, 0, 0, 4037, 0, 0, 0, 3555, 3556,
- 0, 0, 3560, 0, 4049, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4167, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 44, 45, 88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
- 0, 0, 0, 48, 76, 77, 0, 74, 78, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4084, 0, 0, 0, 0, 0, 1774, 0, 0,
- 0, 62, 0, 0, 0, 0, 0, 3635, 0, 0,
- 0, 0, 0, 95, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1863, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3654, 0, 0, 3658, 0, 958, 0, 0,
- 0, 0, 0, 83, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3671,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 0, 0, 195, 0, 0, 0,
- 729, 0, 0, 0, 4189, 735, 0, 0, 1717, 0,
- 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 195, 3694, 0, 0, 0, 0, 51, 54,
- 57, 56, 59, 2021, 73, 1023, 3702, 82, 79, 0,
- 0, 1024, 0, 3709, 0, 0, 0, 735, 195, 735,
- 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 61, 91, 90, 0, 0, 71, 72, 58, 0,
- 0, 0, 0, 0, 80, 81, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 63, 64, 0,
- 65, 66, 67, 68, 0, 0, 0, 0, 0, 0,
- 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
- 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
- 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
- 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
- 1021, 1022, 3921, 0, 0, 0, 0, 0, 0, 0,
- 0, 3928, 0, 0, 60, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3938, 3939, 3940, 0, 3942, 0, 3943, 3944, 0,
- 0, 0, 0, 3947, 3948, 3949, 3950, 3951, 3952, 3953,
+ 1676, 1521, 3697, 3697, 1270, 1677, 4033, 1679, 1680, 1681,
+ 1682, 1683, 2549, 1440, 1441, 2972, 3585, 3586, 1439, 1550,
+ 1550, 1550, 1550, 1550, 1550, 974, 2940, 1120, 3654, 1534,
+ 1223, 1220, 974, 723, 1690, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 2995, 1525,
+ 1517, 1518, 1519, 1520, 714, 4118, 974, 94, 1514, 2621,
+ 1531, 4079, 2852, 2854, 2622, 1717, 94, 1864, 1082, 715,
+ 94, 1551, 1552, 1227, 1546, 1896, 1547, 1548, 3538, 165,
+ 3328, 3329, 1215, 4118, 1458, 3482, 177, 4117, 1141, 89,
+ 3328, 3329, 2994, 3332, 1233, 3382, 673, 1232, 4157, 1238,
+ 1239, 1240, 1241, 3332, 1976, 1975, 1977, 1978, 1979, 3170,
+ 3019, 1515, 1516, 3018, 1082, 4117, 4147, 3008, 2547, 1723,
+ 4021, 2493, 190, 1278, 1279, 3576, 3558, 185, 1041, 2922,
+ 1752, 3028, 1041, 2887, 1141, 2824, 1246, 1109, 1041, 2142,
+ 1111, 1265, 1781, 1267, 2638, 129, 1678, 1226, 3169, 1471,
+ 1468, 1469, 1470, 1475, 1477, 1474, 4228, 1473, 2882, 681,
+ 4146, 172, 2494, 2443, 1714, 1715, 1178, 1467, 2166, 2492,
+ 166, 171, 168, 174, 175, 176, 178, 180, 181, 182,
+ 183, 1264, 1266, 1141, 1895, 1514, 184, 186, 187, 188,
+ 124, 1140, 1506, 1507, 1509, 1508, 1510, 1511, 1994, 94,
+ 1511, 3254, 2649, 2495, 1259, 1141, 1753, 1494, 2183, 1057,
+ 119, 2022, 1273, 2491, 4047, 1684, 1685, 1686, 1687, 1688,
+ 1689, 169, 1733, 1734, 170, 2184, 104, 105, 1731, 1164,
+ 3031, 3617, 1735, 1715, 3550, 3030, 2853, 1140, 1040, 1114,
+ 2110, 1106, 1144, 1134, 1114, 1210, 1721, 1146, 1108, 1107,
+ 189, 1147, 1145, 2567, 2111, 1512, 1513, 2109, 1141, 2076,
+ 2003, 1795, 2175, 1231, 3068, 107, 4193, 2158, 2147, 2148,
+ 2149, 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155,
+ 2162, 2163, 2164, 2156, 2157, 2159, 1140, 1482, 120, 1141,
+ 2649, 1262, 1134, 1137, 1138, 1263, 1098, 1112, 1888, 2509,
+ 1131, 1135, 3031, 1481, 2175, 1268, 2658, 3030, 1140, 1214,
+ 1729, 1872, 1873, 1874, 1134, 1137, 1138, 3746, 1098, 1718,
+ 1730, 1130, 1131, 1135, 3592, 2546, 3591, 1732, 2534, 1959,
+ 1261, 1755, 1898, 1898, 1905, 1910, 2015, 1911, 1758, 1913,
+ 1915, 1881, 1941, 1919, 1921, 1923, 1925, 1927, 1900, 3262,
+ 1039, 1037, 1245, 1991, 1904, 1992, 1786, 1787, 1993, 1281,
+ 2169, 1140, 1260, 1247, 2181, 173, 1144, 1134, 1855, 2023,
+ 1899, 1146, 1480, 1481, 179, 1147, 1145, 1894, 1949, 1950,
+ 1753, 2539, 1500, 1216, 1955, 1956, 1863, 2539, 4226, 1482,
+ 2544, 4227, 1140, 4225, 1177, 2542, 1148, 1878, 1174, 1879,
+ 3263, 1152, 1877, 1891, 1150, 4236, 1501, 1502, 1503, 1504,
+ 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1230, 1213, 2098,
+ 2099, 2096, 2097, 4185, 2543, 3265, 1902, 3577, 1052, 1113,
+ 2541, 3048, 1753, 1984, 1113, 742, 1479, 4230, 1480, 1481,
+ 2180, 1736, 4080, 724, 4013, 3260, 2095, 3651, 1945, 3652,
+ 3918, 1482, 3917, 1937, 2011, 3908, 1940, 1982, 1942, 2098,
+ 2099, 2628, 2629, 3668, 1971, 3276, 3277, 976, 977, 978,
+ 3667, 3599, 3261, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
+ 1508, 1510, 1511, 128, 1117, 3598, 1116, 1115, 3588, 1482,
+ 1789, 4081, 1500, 4014, 3305, 1496, 3294, 1497, 2947, 2946,
+ 2945, 4237, 164, 2499, 1983, 1985, 3267, 1969, 1482, 1968,
+ 2028, 1498, 1512, 1513, 1495, 3050, 1501, 1502, 1503, 1504,
+ 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1967, 1981, 1281,
+ 1281, 1957, 1951, 1948, 2050, 1970, 2024, 2025, 1479, 1947,
+ 1480, 1481, 2331, 4198, 1753, 87, 2328, 3070, 87, 1946,
+ 2029, 1500, 4186, 3040, 1917, 2330, 1728, 2036, 2037, 2038,
+ 1482, 3582, 2331, 724, 2929, 3357, 724, 2049, 2515, 1482,
+ 2514, 972, 1445, 4042, 3275, 1501, 1502, 1503, 1504, 1505,
+ 1506, 1507, 1509, 1508, 1510, 1511, 3278, 2166, 3060, 3059,
+ 3058, 1500, 2513, 3052, 2512, 3056, 2511, 3051, 2510, 3049,
+ 1479, 4187, 1480, 1481, 3054, 1504, 1505, 1506, 1507, 1509,
+ 1508, 1510, 1511, 3053, 4041, 1501, 1502, 1503, 1504, 1505,
+ 1506, 1507, 1509, 1508, 1510, 1511, 2137, 2137, 2135, 2135,
+ 2138, 1482, 3055, 3057, 101, 4017, 2697, 2100, 1479, 4016,
+ 1480, 1481, 1482, 4015, 102, 42, 1478, 1753, 42, 1482,
+ 2873, 4213, 4196, 1753, 1482, 3913, 2026, 1479, 1766, 1480,
+ 1481, 4126, 1753, 2030, 1482, 2032, 2033, 2034, 2035, 4173,
+ 1753, 3399, 2039, 3897, 2221, 1488, 1489, 1490, 1491, 1492,
+ 1493, 1487, 1484, 3896, 2051, 3745, 2158, 2147, 2148, 2149,
+ 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155, 2162,
+ 2163, 2164, 2156, 2157, 2159, 1753, 3264, 1767, 3743, 1479,
+ 3664, 1480, 1481, 1713, 85, 2873, 1753, 85, 1479, 2077,
+ 1480, 1481, 1712, 4124, 1753, 1753, 1714, 1715, 1711, 1482,
+ 1478, 1753, 2107, 3596, 4122, 1753, 4035, 2057, 2058, 110,
+ 3581, 165, 1753, 101, 2170, 3367, 3991, 1753, 177, 103,
+ 109, 3364, 108, 102, 2112, 3297, 2113, 4030, 2115, 2116,
+ 2117, 2118, 2119, 2120, 2122, 2124, 2125, 2126, 2127, 2128,
+ 2129, 1710, 3296, 2956, 1482, 2943, 1708, 1710, 2141, 1704,
+ 1479, 1706, 1480, 1481, 1707, 1705, 2339, 1709, 2341, 185,
+ 2114, 1479, 1482, 1480, 1481, 2873, 4111, 3945, 1479, 2245,
+ 1480, 1481, 1482, 1479, 2611, 1480, 1481, 2603, 1525, 2185,
+ 2186, 2187, 2188, 1479, 1753, 1480, 1481, 2340, 2406, 2407,
+ 2602, 3989, 1753, 2199, 2220, 1753, 2176, 2329, 2327, 1482,
+ 1500, 2561, 166, 171, 168, 174, 175, 176, 178, 180,
+ 181, 182, 183, 2237, 2560, 1482, 2873, 4090, 184, 186,
+ 187, 188, 2699, 1482, 1501, 1502, 1503, 1504, 1505, 1506,
+ 1507, 1509, 1508, 1510, 1511, 1482, 3986, 1753, 3944, 1482,
+ 2873, 4086, 3998, 1753, 1500, 2396, 2637, 2422, 1479, 2375,
+ 1480, 1481, 3635, 4032, 2338, 3921, 1753, 2344, 2345, 2339,
+ 1482, 2341, 2873, 3909, 3968, 1753, 104, 105, 1501, 1502,
+ 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2053,
+ 1482, 2647, 3635, 1753, 2873, 3633, 3901, 104, 105, 2452,
+ 2411, 2646, 2386, 1479, 2019, 1480, 1481, 2539, 1753, 3900,
+ 2374, 3556, 1753, 1482, 2685, 2779, 1753, 3940, 2106, 3287,
+ 3286, 1479, 103, 1480, 1481, 3523, 1753, 2695, 3268, 1980,
+ 1103, 1479, 3272, 1480, 1481, 3284, 3285, 3516, 1753, 3271,
+ 1972, 3513, 1753, 3282, 3283, 2461, 2462, 2463, 2464, 2456,
+ 2447, 2457, 2458, 2459, 2460, 2446, 1053, 2424, 1479, 1962,
+ 1480, 1481, 3511, 1753, 1103, 2466, 2428, 1958, 2468, 2469,
+ 2470, 2471, 2387, 3273, 1479, 1954, 1480, 1481, 3269, 3282,
+ 3281, 2362, 1479, 3270, 1480, 1481, 2380, 1753, 2381, 2389,
+ 2482, 1953, 1482, 1952, 1479, 2450, 1480, 1481, 1479, 2870,
+ 1480, 1481, 1482, 2488, 2409, 2528, 1753, 86, 44, 45,
+ 88, 2897, 1753, 103, 2434, 2433, 1768, 1087, 2432, 1479,
+ 1271, 1480, 1481, 2449, 2448, 2918, 92, 1482, 2621, 3004,
+ 48, 76, 77, 2889, 74, 78, 2525, 1088, 1482, 1479,
+ 3643, 1480, 1481, 1859, 2985, 2982, 75, 3553, 2498, 1501,
+ 1502, 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511,
+ 2918, 1143, 1479, 2961, 1480, 1481, 2978, 2979, 109, 2483,
+ 3219, 1898, 2479, 2472, 2474, 2475, 1482, 2868, 62, 2502,
+ 2497, 3549, 2501, 2533, 3474, 1753, 2536, 2889, 2537, 2553,
+ 95, 1482, 3249, 2919, 3472, 1753, 2873, 2872, 2140, 1753,
+ 1859, 1858, 2621, 2921, 1482, 2483, 2532, 2540, 2535, 2531,
+ 2897, 1482, 1801, 1800, 1142, 3552, 2896, 2451, 3549, 3468,
+ 1753, 2557, 190, 2554, 1478, 2558, 2559, 1482, 2919, 4074,
+ 3465, 1753, 4046, 2976, 2873, 2897, 3502, 110, 2621, 1482,
+ 83, 1479, 1478, 1480, 1481, 129, 1482, 151, 109, 3600,
+ 108, 1479, 3284, 1480, 1481, 3192, 1754, 1756, 103, 1482,
+ 1770, 172, 2435, 2626, 3549, 2779, 2564, 2682, 3463, 1753,
+ 2645, 2539, 1041, 1041, 1041, 2681, 1479, 2897, 1480, 1481,
+ 2539, 2522, 2404, 3461, 1753, 1757, 2365, 1479, 2140, 1480,
+ 1481, 1482, 1535, 2078, 1535, 162, 3459, 1753, 2062, 2005,
+ 1933, 150, 1788, 3457, 1753, 1125, 3601, 3602, 3603, 1124,
+ 2641, 1042, 1482, 95, 4152, 4093, 3932, 1760, 2596, 3455,
+ 1753, 169, 3898, 1753, 170, 1479, 3758, 1480, 1481, 1482,
+ 2644, 1769, 2341, 3616, 3613, 51, 54, 57, 56, 59,
+ 1479, 73, 1480, 1481, 82, 79, 1884, 1885, 161, 160,
+ 189, 3453, 1753, 1479, 1482, 1480, 1481, 1934, 1935, 1936,
+ 1479, 2340, 1480, 1481, 3594, 3415, 3414, 1861, 61, 91,
+ 90, 2481, 2613, 71, 72, 58, 1479, 1482, 1480, 1481,
+ 3355, 80, 81, 3451, 1753, 3310, 1482, 2619, 1479, 3306,
+ 1480, 1481, 1482, 2986, 95, 1479, 1482, 1480, 1481, 2478,
+ 1482, 2473, 2467, 2627, 3449, 1753, 1482, 2465, 1479, 1987,
+ 1480, 1481, 1893, 1889, 1716, 1857, 2633, 121, 2630, 2631,
+ 2632, 3447, 1753, 1482, 63, 64, 2107, 65, 66, 67,
+ 68, 3308, 2953, 2952, 1215, 3359, 3563, 3564, 3933, 2496,
+ 1479, 2378, 1480, 1481, 2055, 4208, 3445, 1753, 4206, 2634,
+ 4180, 2636, 155, 1886, 158, 4054, 1883, 3973, 156, 157,
+ 2639, 1479, 2640, 1480, 1481, 173, 3566, 1482, 3302, 3443,
+ 1753, 1482, 3301, 3569, 179, 3300, 3219, 2657, 1479, 3905,
+ 1480, 1481, 3568, 2635, 3441, 1753, 1482, 2953, 3439, 1753,
+ 1482, 60, 3437, 1753, 2965, 2597, 1482, 3238, 3435, 1753,
+ 3237, 2384, 1482, 1479, 2642, 1480, 1481, 1482, 3241, 3239,
+ 2823, 2056, 1482, 3242, 3240, 3421, 1753, 1482, 2605, 2606,
+ 4050, 1482, 3723, 2608, 3722, 1482, 1479, 678, 1480, 1481,
+ 3934, 1765, 2609, 2693, 2395, 1479, 2811, 1480, 1481, 2654,
+ 3557, 1479, 2855, 1480, 1481, 1479, 3197, 1480, 1481, 1479,
+ 3196, 1480, 1481, 1482, 3542, 1479, 1055, 1480, 1481, 3397,
+ 1753, 1041, 3541, 2844, 1753, 4012, 3736, 2137, 3738, 2135,
+ 2858, 3545, 1479, 2004, 1480, 1481, 3206, 3721, 2842, 1753,
+ 1025, 89, 2817, 1753, 2894, 2895, 1482, 2856, 2794, 1753,
+ 1058, 1482, 3280, 2422, 2786, 1753, 1041, 2914, 1059, 2777,
+ 1753, 741, 164, 2936, 2775, 1753, 2957, 1056, 2589, 2762,
+ 1753, 2893, 2183, 2859, 3618, 2861, 1479, 2653, 1480, 1481,
+ 1479, 1482, 1480, 1481, 3209, 3211, 1482, 2874, 3375, 2184,
+ 1482, 2588, 2106, 3212, 1482, 1479, 1067, 1480, 1481, 1479,
+ 2587, 1480, 1481, 2586, 2585, 1479, 2948, 1480, 1481, 2584,
+ 1066, 1479, 1482, 1480, 1481, 3604, 1479, 1482, 1480, 1481,
+ 2883, 1479, 1482, 1480, 1481, 1721, 1479, 2846, 1480, 1481,
+ 1479, 1181, 1480, 1481, 1479, 1929, 1480, 1481, 2760, 1753,
+ 2583, 1180, 1482, 3571, 42, 2952, 2866, 101, 2939, 2941,
+ 3034, 94, 2912, 2911, 1715, 1482, 2913, 102, 159, 1444,
+ 2932, 1482, 1479, 2886, 1480, 1481, 2916, 2871, 3605, 3606,
+ 3607, 2990, 3547, 2758, 1753, 2103, 2101, 2102, 2756, 1753,
+ 2992, 129, 2754, 1753, 103, 1482, 3518, 2920, 1930, 1931,
+ 1932, 2488, 2923, 1482, 4222, 1479, 2969, 1480, 1481, 2930,
+ 1479, 2933, 1480, 1481, 2752, 1753, 2406, 2407, 2600, 2750,
+ 1753, 4129, 4031, 3001, 2748, 1753, 2178, 3525, 3928, 2944,
+ 3279, 2179, 2955, 2910, 2390, 1482, 2625, 2958, 2959, 1482,
+ 1479, 2061, 1480, 1481, 3514, 1479, 2954, 1480, 1481, 1479,
+ 2060, 1480, 1481, 1479, 108, 1480, 1481, 3480, 2962, 2966,
+ 2967, 2968, 2963, 2746, 1753, 1482, 3997, 3195, 70, 2241,
+ 2998, 1479, 109, 1480, 1481, 3194, 1479, 152, 1480, 1481,
+ 153, 1479, 3996, 1480, 1481, 3976, 3744, 3476, 1881, 1482,
+ 3742, 3044, 3045, 2987, 2988, 2744, 1753, 3243, 3741, 2906,
+ 2907, 1479, 101, 1480, 1481, 2997, 3734, 3614, 103, 3546,
+ 3544, 165, 102, 110, 1479, 3311, 1480, 1481, 177, 2523,
+ 1479, 1876, 1480, 1481, 109, 110, 108, 2742, 1753, 1065,
+ 3733, 2740, 1753, 3535, 1482, 2889, 109, 3707, 1482, 3042,
+ 3023, 3061, 2870, 1482, 1479, 3026, 1480, 1481, 4209, 2324,
+ 3098, 2683, 1479, 2376, 1480, 1481, 1482, 2738, 1753, 185,
+ 4210, 4209, 3, 1482, 1782, 3079, 3080, 3081, 3082, 3083,
+ 3084, 3085, 3086, 3087, 3088, 1774, 114, 115, 1482, 2356,
+ 4210, 2736, 1753, 4018, 1479, 3096, 1480, 1481, 1479, 2999,
+ 1480, 1481, 3580, 3062, 97, 2075, 1754, 2363, 10, 1,
+ 1033, 1447, 166, 171, 168, 174, 175, 176, 178, 180,
+ 181, 182, 183, 1446, 1479, 3584, 1480, 1481, 184, 186,
+ 187, 188, 2073, 4141, 694, 9, 2734, 1753, 2366, 2074,
+ 2732, 1753, 8, 1719, 4181, 3412, 2388, 4137, 1479, 4138,
+ 1480, 1481, 1973, 3100, 1963, 3646, 1716, 2292, 2730, 1753,
+ 3046, 3929, 3314, 3156, 2529, 3411, 3032, 3612, 3063, 3033,
+ 2486, 1133, 154, 1482, 2444, 2445, 4106, 1482, 118, 1091,
+ 2728, 1753, 2902, 2905, 2906, 2907, 2903, 117, 2904, 2908,
+ 3043, 1136, 3174, 1479, 1244, 1480, 1481, 1479, 2524, 1480,
+ 1481, 3636, 1479, 2235, 1480, 1481, 3163, 2937, 2453, 1807,
+ 1805, 3165, 1806, 1482, 2977, 1479, 1804, 1480, 1481, 1809,
+ 1808, 2422, 1479, 1482, 1480, 1481, 4078, 3089, 3383, 2684,
+ 3481, 2066, 2329, 2327, 2329, 2327, 3136, 1479, 1482, 1480,
+ 1481, 731, 2909, 3226, 1482, 87, 725, 192, 2422, 2422,
+ 2422, 2422, 2422, 2500, 1796, 3174, 3146, 3147, 3148, 3149,
+ 3150, 110, 1775, 2059, 3164, 3403, 3166, 1175, 2422, 2723,
+ 1753, 2422, 109, 684, 108, 3288, 3231, 1482, 2562, 3248,
+ 690, 1482, 103, 2318, 2319, 2320, 2321, 2322, 1532, 2054,
+ 3173, 3193, 2015, 1482, 2924, 1085, 1077, 3185, 2377, 2860,
+ 2343, 3191, 1482, 2346, 2347, 2719, 1753, 3186, 3188, 3190,
+ 1482, 3198, 3200, 1084, 3906, 2717, 1753, 3227, 3213, 3214,
+ 3201, 2424, 1479, 3539, 1480, 1481, 1479, 3205, 1480, 1481,
+ 2710, 1753, 3207, 2876, 3331, 3210, 2708, 1753, 2364, 3233,
+ 3234, 3230, 3236, 3203, 3339, 1044, 1045, 1482, 2424, 2424,
+ 2424, 2424, 2424, 104, 105, 3252, 3244, 3232, 4011, 1046,
+ 3235, 3735, 1479, 1482, 1480, 1481, 3258, 3250, 2424, 3401,
+ 3251, 2424, 1479, 2840, 1480, 1481, 4091, 2934, 1771, 1482,
+ 3501, 2656, 3290, 3199, 3291, 2839, 3289, 1479, 2173, 1480,
+ 1481, 1522, 756, 1479, 2835, 1480, 1481, 1482, 2421, 3702,
+ 2093, 754, 2834, 1482, 753, 3292, 3293, 3312, 751, 2862,
+ 2488, 3343, 3333, 1482, 2890, 1486, 3340, 1482, 1485, 962,
+ 2850, 1783, 3216, 3350, 3344, 1482, 1479, 2901, 1480, 1481,
+ 1479, 2899, 1480, 1481, 2898, 3222, 2598, 2429, 3565, 2833,
+ 3222, 3561, 1479, 3368, 1480, 1481, 3371, 1482, 4133, 2423,
+ 3370, 1479, 3378, 1480, 1481, 2832, 2419, 2869, 913, 1479,
+ 912, 1480, 1481, 763, 755, 745, 975, 911, 3388, 3385,
+ 3386, 2831, 3387, 910, 3341, 3389, 3342, 3391, 3007, 3393,
+ 3404, 3405, 3406, 3407, 3408, 3356, 3009, 2935, 3352, 2830,
+ 1463, 1738, 1741, 2385, 1104, 2821, 1479, 3380, 1480, 1481,
+ 2902, 2905, 2906, 2907, 2903, 2820, 2904, 2908, 4037, 2819,
+ 3563, 3564, 1479, 2624, 1480, 1481, 3409, 2818, 1535, 1737,
+ 4044, 3322, 1535, 3630, 3303, 3313, 2983, 2516, 1479, 69,
+ 1480, 1481, 2643, 46, 4006, 4075, 2648, 905, 3526, 2815,
+ 3528, 902, 3704, 3705, 3706, 3159, 1479, 3160, 1480, 1481,
+ 3496, 4057, 1479, 4058, 1480, 1481, 901, 3500, 4059, 2651,
+ 2230, 2652, 1479, 1457, 1480, 1481, 1479, 2660, 1480, 1481,
+ 1454, 2662, 2663, 4154, 1479, 2068, 1480, 1481, 96, 36,
+ 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678,
+ 35, 2680, 34, 3379, 33, 3225, 1479, 32, 1480, 1481,
+ 2422, 26, 25, 3527, 24, 3529, 23, 22, 29, 3531,
+ 19, 21, 3536, 3578, 2686, 2687, 2688, 2689, 20, 2691,
+ 2692, 3543, 2694, 1482, 18, 3325, 2696, 4176, 3548, 4221,
+ 2701, 2702, 123, 2703, 55, 1482, 2706, 2707, 2709, 2711,
+ 2712, 2713, 2714, 2715, 2716, 2718, 2720, 2721, 2722, 2724,
+ 743, 2726, 2727, 2729, 2731, 2733, 2735, 2737, 2739, 2741,
+ 2743, 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761,
+ 2763, 2764, 2765, 3570, 2767, 3579, 2769, 3334, 2771, 2772,
+ 3343, 2774, 2776, 2778, 3572, 3340, 3503, 2781, 3505, 3506,
+ 3507, 2785, 3595, 3344, 3597, 2790, 2791, 2792, 2793, 3573,
+ 2424, 3567, 1482, 52, 3640, 3641, 3373, 3374, 2804, 2805,
+ 2806, 2807, 2808, 2809, 3533, 2810, 2813, 2814, 50, 131,
+ 130, 1482, 53, 49, 2816, 3589, 3590, 2803, 1218, 2822,
+ 47, 31, 1482, 30, 2825, 2826, 2827, 2828, 2829, 1482,
+ 17, 16, 15, 14, 1482, 2836, 2837, 3560, 2838, 1482,
+ 13, 2841, 2843, 2388, 12, 2845, 11, 7, 1482, 1064,
+ 6, 39, 1070, 1070, 1482, 2857, 3574, 3575, 1482, 38,
+ 37, 28, 1479, 27, 1480, 1481, 40, 3623, 4, 3642,
+ 2970, 3627, 3628, 3629, 1479, 2518, 1480, 1481, 0, 0,
+ 0, 0, 0, 0, 2802, 0, 0, 3658, 0, 0,
+ 0, 0, 0, 2664, 0, 0, 0, 1482, 0, 0,
+ 0, 0, 1482, 2801, 0, 0, 0, 0, 0, 1482,
+ 2679, 0, 3669, 0, 2800, 0, 1482, 0, 0, 0,
+ 1482, 2799, 0, 0, 1482, 0, 2798, 0, 1482, 0,
+ 0, 2797, 1482, 0, 0, 0, 1482, 0, 0, 0,
+ 2796, 1479, 0, 1480, 1481, 0, 2795, 0, 1482, 0,
+ 2789, 0, 0, 0, 0, 3710, 0, 3711, 3712, 3713,
+ 1479, 0, 1480, 1481, 0, 3720, 0, 1482, 3727, 0,
+ 3729, 1479, 0, 1480, 1481, 0, 0, 3700, 1479, 0,
+ 1480, 1481, 1482, 1479, 3730, 1480, 1481, 0, 1479, 2788,
+ 1480, 1481, 0, 3226, 2787, 0, 87, 1479, 3226, 1480,
+ 1481, 2784, 0, 1479, 0, 1480, 1481, 1479, 2783, 1480,
+ 1481, 0, 2782, 0, 0, 0, 2780, 0, 0, 0,
+ 2773, 0, 1482, 3752, 2770, 0, 0, 3731, 2768, 0,
+ 0, 0, 2137, 3663, 2135, 3760, 3740, 3750, 3739, 0,
+ 2766, 0, 3747, 0, 3749, 0, 1479, 0, 1480, 1481,
+ 1482, 1479, 0, 1480, 1481, 0, 0, 0, 1479, 2725,
+ 1480, 1481, 0, 3912, 0, 1479, 0, 1480, 1481, 1479,
+ 3764, 1480, 1481, 1479, 2705, 1480, 1481, 1479, 0, 1480,
+ 1481, 1479, 0, 1480, 1481, 1479, 0, 1480, 1481, 0,
+ 0, 3619, 3620, 0, 0, 0, 42, 1479, 0, 1480,
+ 1481, 0, 3904, 3931, 3903, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3919, 2704, 0, 1479, 0, 1480, 1481,
+ 3923, 3924, 0, 0, 0, 0, 3902, 0, 0, 0,
+ 0, 1479, 0, 1480, 1481, 0, 3970, 3971, 0, 0,
+ 0, 0, 2700, 3754, 0, 3074, 3075, 3076, 3077, 3078,
+ 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0,
+ 2137, 0, 2135, 3974, 0, 3093, 0, 3914, 3915, 3916,
+ 0, 1479, 0, 1480, 1481, 0, 0, 0, 3761, 3762,
+ 0, 0, 0, 3222, 0, 0, 0, 0, 0, 3977,
+ 0, 4019, 3226, 3980, 0, 0, 0, 0, 3756, 1479,
+ 0, 1480, 1481, 0, 0, 0, 1553, 1554, 1555, 1556,
+ 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
+ 1567, 1568, 1569, 1570, 1571, 1573, 1574, 1575, 1576, 1577,
+ 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587,
+ 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597,
+ 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
+ 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617,
+ 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
+ 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637,
+ 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
+ 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658,
+ 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1673,
+ 1674, 1675, 1676, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
+ 1697, 1698, 1699, 1700, 1701, 1702, 1703, 4020, 4004, 0,
+ 3975, 4003, 0, 0, 0, 3225, 3994, 0, 0, 1482,
+ 3225, 4038, 0, 4000, 0, 4002, 0, 0, 1482, 0,
+ 0, 3064, 0, 0, 1743, 0, 0, 0, 0, 87,
+ 0, 0, 0, 0, 1743, 3228, 0, 0, 1751, 1482,
+ 4023, 1744, 0, 1482, 0, 0, 0, 0, 1751, 4022,
+ 0, 1744, 0, 3246, 0, 0, 4045, 3907, 4040, 4027,
+ 0, 0, 1482, 0, 4043, 0, 2382, 2383, 1750, 1748,
+ 1749, 1745, 0, 1746, 0, 3911, 1739, 1740, 1750, 1748,
+ 1749, 1745, 0, 1746, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0,
+ 0, 2698, 0, 0, 0, 0, 1747, 0, 0, 0,
+ 2690, 0, 0, 0, 0, 0, 0, 0, 0, 4063,
+ 0, 0, 4064, 0, 0, 0, 0, 4088, 0, 42,
+ 0, 2661, 87, 0, 0, 2655, 0, 0, 0, 0,
+ 4073, 0, 0, 0, 0, 1483, 0, 0, 4082, 0,
+ 0, 0, 0, 3138, 2650, 3140, 0, 0, 1479, 4092,
+ 1480, 1481, 0, 0, 3931, 4108, 4094, 1479, 4119, 1480,
+ 1481, 3151, 3152, 3153, 3154, 4105, 1541, 0, 4097, 4102,
+ 3377, 4099, 4098, 4096, 4101, 4100, 0, 0, 1479, 4127,
+ 1480, 1481, 1479, 0, 1480, 1481, 0, 0, 0, 4024,
+ 0, 4132, 3394, 3395, 3225, 3396, 3398, 3400, 0, 4150,
+ 0, 1479, 0, 1480, 1481, 0, 4140, 0, 4145, 0,
+ 0, 0, 0, 0, 4158, 4119, 4160, 0, 0, 0,
+ 4171, 0, 42, 3413, 0, 0, 0, 0, 3416, 0,
+ 3418, 3419, 3420, 3422, 3423, 3424, 3425, 3426, 3427, 3428,
+ 3429, 3430, 3431, 3432, 3433, 3434, 3436, 3438, 3440, 3442,
+ 3444, 3446, 3448, 3450, 3452, 3454, 3456, 3458, 3460, 3462,
+ 3464, 3466, 3467, 3469, 3470, 3471, 3473, 2015, 4194, 3475,
+ 4191, 3477, 3478, 3479, 4201, 4205, 3483, 3484, 3485, 3486,
+ 3487, 3488, 3489, 3490, 3491, 3492, 3493, 2137, 4207, 2135,
+ 4204, 4203, 4119, 4215, 4200, 3499, 4190, 4175, 4170, 3504,
+ 4223, 4089, 3222, 3508, 3509, 4084, 3510, 3512, 0, 3515,
+ 3517, 4231, 3519, 3520, 3521, 3522, 4229, 0, 4174, 0,
+ 0, 0, 3530, 0, 0, 0, 0, 1825, 0, 4029,
+ 4240, 4241, 3971, 4239, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2137, 0, 2135, 4238, 0,
+ 0, 0, 0, 4036, 0, 0, 0, 3554, 3555, 0,
+ 0, 3559, 0, 4048, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1825, 0, 0, 4166,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4083, 0, 0, 0, 0, 0, 1773, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3634, 0, 0, 0,
+ 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3653, 0, 0, 3657, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 676, 0, 1812, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3670, 0,
+ 0, 1028, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1826, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4188, 0, 0, 0, 1716, 0, 0,
+ 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3693, 0, 0, 0, 0, 1826, 0, 0,
+ 0, 0, 2020, 0, 0, 3701, 0, 0, 0, 0,
+ 0, 0, 3708, 1839, 1842, 1843, 1844, 1845, 1846, 1847,
+ 0, 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828,
+ 1829, 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815,
+ 1816, 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823,
+ 1831, 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0,
+ 0, 1824, 1839, 1842, 1843, 1844, 1845, 1846, 1847, 0,
+ 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828, 1829,
+ 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815, 1816,
+ 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823, 1831,
+ 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0, 0,
+ 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3920, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3927, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3937, 3938, 3939, 0, 3941, 0, 3942, 3943, 0, 0,
+ 0, 0, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953,
3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
- 3964, 3965, 3966, 3967, 3968, 0, 3970, 3973, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3692, 0,
- 0, 0, 3982, 3983, 3984, 3985, 3986, 3988, 3989, 3991,
- 3993, 3994, 3996, 0, 0, 0, 4000, 0, 0, 0,
- 4002, 0, 0, 0, 89, 0, 0, 0, 0, 0,
- 2089, 2090, 2091, 2092, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2105, 0, 0, 0,
- 0, 0, 0, 0, 0, 4029, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2144, 2145, 0, 0, 0, 0, 2168, 0, 0,
- 2172, 2173, 0, 0, 0, 2178, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199,
- 0, 2201, 0, 0, 0, 2223, 2224, 2225, 2226, 2227,
- 2228, 2229, 2230, 2232, 94, 2237, 0, 2239, 2240, 2241,
- 0, 2243, 2244, 2245, 0, 2247, 2248, 2249, 2250, 2251,
+ 3964, 3965, 3966, 3967, 0, 3969, 3972, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0,
+ 0, 3981, 3982, 3983, 3984, 3985, 3987, 3988, 3990, 3992,
+ 3993, 3995, 0, 0, 0, 3999, 0, 0, 0, 4001,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2088,
+ 2089, 2090, 2091, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2104, 1841, 0, 0, 0,
+ 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2143, 2144, 0, 0, 0, 0, 2167, 0, 0, 2171,
+ 2172, 0, 0, 0, 2177, 1841, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2189,
+ 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 0,
+ 2200, 0, 0, 0, 2222, 2223, 2224, 2225, 2226, 2227,
+ 2228, 2229, 2231, 0, 2236, 0, 2238, 2239, 2240, 0,
+ 2242, 2243, 2244, 0, 2246, 2247, 2248, 2249, 2250, 2251,
2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261,
2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281,
2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291,
- 2292, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304,
+ 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304,
2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314,
- 2315, 2316, 2317, 2318, 0, 0, 0, 0, 0, 2324,
- 0, 2326, 0, 2333, 2334, 2335, 2336, 2337, 2338, 0,
+ 2315, 2316, 2317, 0, 0, 0, 0, 0, 2323, 0,
+ 2325, 0, 2332, 2333, 2334, 2335, 2336, 2337, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 0,
+ 2357, 2358, 2359, 2360, 2361, 4010, 0, 0, 0, 0,
+ 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4068, 0, 0, 0, 1070,
+ 0, 4071, 0, 4072, 0, 0, 0, 0, 0, 0,
+ 0, 0, 190, 0, 0, 0, 1219, 0, 1225, 0,
+ 0, 0, 0, 0, 0, 0, 4087, 0, 0, 0,
+ 2402, 2403, 0, 0, 0, 129, 0, 151, 958, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 172, 4113, 4114, 0, 0, 2441, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4121, 4123, 4125, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1453, 0, 0, 0, 4131, 162, 0, 0, 0, 0,
+ 0, 150, 0, 0, 195, 0, 4153, 195, 0, 0,
+ 0, 729, 0, 0, 0, 0, 735, 0, 0, 0,
+ 0, 169, 0, 0, 170, 0, 0, 195, 2484, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 195, 4172, 0, 138, 139, 161, 160,
+ 189, 0, 0, 1716, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 735, 195,
+ 735, 0, 0, 0, 0, 0, 0, 0, 4195, 4197,
+ 4199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4052,
+ 0, 4220, 0, 0, 0, 0, 0, 4062, 0, 0,
+ 0, 0, 0, 0, 0, 95, 0, 0, 1023, 4232,
+ 4233, 0, 0, 963, 1024, 976, 977, 978, 964, 0,
+ 0, 965, 966, 0, 967, 0, 0, 0, 0, 0,
+ 0, 0, 155, 136, 158, 143, 135, 0, 156, 157,
+ 972, 0, 979, 980, 0, 173, 0, 0, 0, 0,
+ 0, 0, 0, 0, 179, 144, 0, 0, 0, 1716,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 147,
+ 145, 140, 141, 142, 146, 0, 0, 0, 0, 0,
+ 0, 137, 0, 0, 0, 0, 0, 0, 0, 0,
+ 148, 3345, 3346, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 981, 982, 983, 984, 985, 986, 987,
+ 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
+ 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
+ 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
+ 1018, 1019, 1020, 1021, 1022, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 70, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356,
- 0, 2358, 2359, 2360, 2361, 2362, 4011, 0, 0, 0,
- 0, 0, 4054, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4069, 0, 0, 0,
- 0, 1070, 4072, 0, 4073, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4088, 0, 0,
- 0, 0, 2403, 2404, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4175, 0, 0, 0, 0, 0, 190,
- 0, 0, 1826, 4114, 4115, 0, 0, 0, 2442, 0,
- 0, 195, 0, 195, 0, 0, 0, 4122, 4124, 4126,
- 0, 0, 129, 0, 151, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4132, 0, 0, 172, 0,
- 0, 0, 0, 0, 0, 0, 0, 4154, 0, 0,
- 735, 0, 735, 735, 0, 0, 0, 0, 0, 0,
+ 0, 0, 164, 0, 0, 0, 3347, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2485, 0, 162, 0, 735, 195, 0, 1023, 150, 0,
- 2332, 0, 0, 1024, 0, 4173, 0, 0, 0, 0,
- 0, 0, 0, 2137, 1717, 0, 0, 0, 169, 0,
- 0, 170, 0, 1527, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4196,
- 4198, 4200, 0, 138, 139, 161, 160, 189, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1785, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1802, 2659, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2665, 2666, 2667, 2668,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4053, 0, 4221, 0, 0, 0, 0, 0, 4063, 1813,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4233, 4234, 981, 982, 983, 984, 985, 986, 987, 988,
- 989, 990, 991, 992, 993, 994, 995, 996, 997, 998,
- 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
- 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
- 1019, 1020, 1021, 1022, 0, 0, 0, 0, 0, 0,
- 1717, 0, 0, 0, 0, 0, 0, 0, 0, 155,
- 136, 158, 143, 135, 0, 156, 157, 0, 0, 0,
- 0, 0, 173, 1827, 0, 0, 0, 0, 0, 0,
- 0, 179, 144, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 147, 145, 140, 141,
- 142, 146, 0, 0, 0, 0, 0, 0, 137, 0,
- 0, 0, 0, 0, 0, 0, 0, 148, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1527, 0, 1840, 1843,
- 1844, 1845, 1846, 1847, 1848, 0, 1849, 1850, 1852, 1853,
- 1851, 1854, 1855, 1828, 1829, 1830, 1831, 1811, 1812, 1841,
- 0, 1814, 0, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
- 1822, 1823, 0, 0, 1824, 1832, 1833, 1834, 1835, 0,
- 1836, 1837, 1838, 1839, 0, 0, 1825, 0, 0, 0,
- 0, 0, 0, 0, 195, 0, 0, 0, 735, 735,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 164,
- 0, 0, 0, 0, 0, 0, 0, 195, 2660, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2666, 2667,
- 2668, 2669, 0, 0, 0, 0, 0, 0, 735, 0,
- 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
- 195, 0, 0, 0, 735, 0, 1826, 0, 0, 0,
- 0, 0, 0, 1541, 735, 0, 0, 0, 0, 0,
- 0, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2977, 0, 0, 0, 0, 735, 0, 735,
- 0, 0, 0, 0, 129, 159, 151, 735, 0, 0,
- 1527, 735, 0, 0, 735, 735, 735, 735, 0, 735,
- 172, 735, 735, 0, 735, 735, 735, 735, 735, 735,
- 0, 0, 0, 0, 0, 0, 0, 1527, 735, 735,
- 1527, 735, 1527, 195, 735, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 162, 0, 0, 0, 0, 0,
- 150, 0, 0, 195, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 735, 0, 195, 0,
- 169, 0, 0, 170, 0, 0, 0, 0, 0, 735,
- 0, 1842, 735, 0, 195, 195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1885, 1886, 161, 160, 189,
- 0, 195, 0, 0, 152, 0, 0, 153, 195, 0,
- 0, 0, 0, 1813, 0, 0, 0, 195, 195, 195,
- 195, 195, 195, 195, 195, 195, 735, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1774, 165, 0,
- 0, 0, 0, 0, 0, 177, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 185, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1827, 0, 0,
- 0, 155, 1887, 158, 0, 1884, 0, 156, 157, 0,
- 0, 0, 0, 0, 173, 0, 0, 0, 0, 0,
- 0, 0, 0, 179, 0, 0, 0, 0, 0, 166,
- 171, 168, 174, 175, 176, 178, 180, 181, 182, 183,
- 0, 0, 0, 0, 0, 184, 186, 187, 188, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1840, 1843, 1844, 1845, 1846, 1847, 1848, 0,
- 1849, 1850, 1852, 1853, 1851, 1854, 1855, 1828, 1829, 1830,
- 1831, 1811, 1812, 1841, 0, 1814, 0, 1815, 1816, 1817,
- 1818, 1819, 1820, 1821, 1822, 1823, 735, 735, 1824, 1832,
- 1833, 1834, 1835, 0, 1836, 1837, 1838, 1839, 0, 0,
- 1825, 735, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3348, 3349, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 159, 0,
+ 0, 1541, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1943, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 164, 0, 0, 0, 0, 0, 0, 0, 3040,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 735, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1527, 0, 0, 0, 3066, 3067, 3068, 0,
- 0, 3070, 0, 0, 3072, 0, 0, 0, 0, 0,
- 1527, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3091, 3092, 3093, 0, 0, 0,
- 0, 0, 0, 3098, 0, 0, 0, 0, 3100, 0,
- 0, 3102, 3103, 3104, 0, 0, 0, 3105, 3106, 0,
- 0, 3107, 0, 3108, 0, 0, 0, 159, 0, 0,
- 3109, 0, 3110, 0, 0, 0, 3111, 0, 3112, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1988, 0, 0, 0, 0, 0, 0,
+ 0, 928, 0, 0, 0, 0, 0, 932, 0, 0,
+ 2016, 929, 930, 0, 0, 0, 931, 933, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2027, 0, 0, 0,
+ 0, 0, 0, 2031, 0, 0, 0, 152, 0, 0,
+ 153, 0, 0, 0, 2042, 2043, 2044, 2045, 2046, 2047,
+ 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 165, 0, 0, 0, 0, 0, 0, 177, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1880, 0, 0, 0,
+ 0, 0, 195, 0, 195, 0, 0, 0, 129, 0,
+ 151, 0, 166, 171, 168, 174, 175, 176, 178, 180,
+ 181, 182, 183, 0, 172, 0, 0, 0, 184, 186,
+ 187, 188, 1023, 0, 0, 2331, 0, 0, 1024, 0,
+ 0, 735, 0, 735, 735, 0, 0, 0, 2136, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
+ 0, 0, 0, 0, 150, 735, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 169, 0, 0, 170, 0, 0,
+ 0, 0, 0, 0, 1527, 0, 0, 2081, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1884,
+ 1885, 161, 160, 189, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 981, 982, 983,
+ 984, 985, 986, 987, 988, 989, 990, 991, 992, 993,
+ 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003,
+ 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
+ 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3039, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3065, 3066, 3067, 0, 0, 3069,
+ 0, 0, 3071, 0, 0, 155, 1886, 158, 0, 1883,
+ 0, 156, 157, 0, 0, 0, 0, 0, 173, 0,
+ 0, 0, 3090, 3091, 3092, 0, 0, 179, 0, 0,
+ 0, 3097, 0, 0, 0, 0, 3099, 0, 0, 3101,
+ 3102, 3103, 0, 0, 0, 3104, 3105, 0, 0, 3106,
+ 0, 3107, 0, 0, 0, 0, 0, 0, 3108, 0,
+ 3109, 0, 0, 0, 3110, 0, 3111, 0, 0, 3112,
0, 3113, 0, 3114, 0, 3115, 0, 3116, 0, 3117,
0, 3118, 0, 3119, 0, 3120, 0, 3121, 0, 3122,
0, 3123, 0, 3124, 0, 3125, 0, 3126, 0, 3127,
- 0, 3128, 0, 3129, 0, 3130, 0, 0, 0, 3131,
- 0, 3132, 0, 3133, 0, 0, 3134, 0, 3135, 0,
- 3136, 0, 2296, 3138, 0, 1842, 3140, 0, 0, 3142,
- 3143, 3144, 3145, 0, 0, 0, 0, 3146, 2296, 2296,
- 2296, 2296, 2296, 0, 0, 0, 2343, 0, 0, 0,
- 0, 0, 0, 3156, 0, 0, 0, 0, 0, 0,
- 0, 3169, 0, 0, 3173, 0, 152, 0, 0, 153,
- 0, 0, 0, 3176, 3177, 3178, 3179, 3180, 3181, 0,
- 0, 0, 3182, 3183, 0, 3184, 0, 3185, 0, 0,
- 0, 195, 0, 0, 0, 0, 735, 0, 0, 0,
- 165, 0, 0, 0, 0, 0, 0, 177, 0, 0,
- 0, 1070, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3128, 0, 3129, 0, 0, 0, 3130, 0, 3131,
+ 0, 3132, 0, 0, 3133, 0, 3134, 0, 3135, 0,
+ 2295, 3137, 0, 0, 3139, 0, 0, 3141, 3142, 3143,
+ 3144, 0, 0, 0, 0, 3145, 2295, 2295, 2295, 2295,
+ 2295, 0, 0, 0, 0, 195, 0, 0, 0, 735,
+ 735, 3155, 0, 0, 0, 164, 0, 0, 0, 3168,
+ 0, 0, 3172, 0, 0, 0, 0, 0, 195, 0,
+ 0, 3175, 3176, 3177, 3178, 3179, 3180, 0, 0, 0,
+ 3181, 3182, 0, 3183, 0, 3184, 0, 0, 0, 735,
+ 0, 0, 195, 0, 0, 0, 0, 2408, 0, 0,
+ 0, 0, 0, 0, 735, 2412, 0, 2415, 0, 1070,
+ 2081, 195, 0, 0, 0, 735, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
+ 3217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 735, 0,
+ 735, 159, 0, 0, 0, 3247, 0, 0, 735, 0,
+ 0, 1527, 735, 0, 0, 735, 735, 735, 735, 0,
+ 735, 0, 735, 735, 0, 735, 735, 735, 735, 735,
+ 735, 0, 0, 0, 0, 0, 0, 0, 1527, 735,
+ 735, 1527, 735, 1527, 195, 735, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 3309, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 735, 0, 0, 735, 0, 195, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 152, 0, 195, 153, 0, 0, 0, 0, 0, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 195, 195,
+ 195, 195, 195, 195, 195, 195, 195, 735, 0, 0,
+ 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
+ 0, 177, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2081, 3402, 0, 0, 1023, 0, 0, 2574, 0, 0,
+ 1024, 0, 0, 0, 0, 0, 0, 0, 2594, 2595,
+ 2136, 0, 2599, 0, 0, 0, 0, 0, 0, 3417,
+ 0, 0, 185, 0, 2604, 0, 0, 0, 0, 0,
+ 0, 2607, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2610, 0, 0,
+ 0, 0, 0, 0, 0, 166, 171, 168, 174, 175,
+ 176, 178, 180, 181, 182, 183, 0, 0, 0, 0,
+ 0, 184, 186, 187, 188, 0, 0, 0, 0, 981,
+ 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
+ 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
+ 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
+ 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
+ 1022, 0, 0, 0, 0, 0, 0, 735, 735, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1527, 0, 0, 0, 3615, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1527, 0, 957, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 712, 0, 0, 0, 0,
+ 0, 734, 0, 0, 0, 0, 0, 0, 3659, 0,
+ 3660, 0, 3661, 0, 3662, 0, 0, 0, 0, 0,
+ 0, 0, 3665, 3666, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3671, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3672, 0, 3673, 0,
+ 3674, 0, 3675, 734, 3676, 734, 3677, 0, 3678, 0,
+ 3679, 0, 3680, 0, 3681, 0, 3682, 2342, 3683, 0,
+ 3684, 0, 3685, 0, 3686, 0, 3687, 0, 0, 3688,
+ 0, 0, 0, 3689, 0, 3690, 0, 0, 0, 0,
+ 0, 3692, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 195, 0, 3709, 0, 0, 735, 0, 0, 0,
+ 2915, 0, 3714, 0, 3715, 3716, 0, 3717, 0, 3718,
+ 0, 0, 0, 0, 3719, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 195, 0, 0, 735,
- 0, 0, 3218, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 0, 0, 0, 735, 185, 0,
- 2343, 195, 0, 195, 0, 195, 195, 3248, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 735, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3748, 0, 195, 0, 0, 0, 735, 0, 0,
+ 2342, 195, 0, 195, 3757, 195, 195, 3759, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3763,
+ 735, 0, 0, 0, 0, 2964, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 166, 171, 168, 174, 175, 176, 178, 180, 181,
- 182, 183, 0, 0, 0, 0, 0, 184, 186, 187,
- 188, 0, 0, 0, 0, 0, 0, 3310, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 735, 0,
0, 0, 0, 0, 0, 735, 735, 735, 195, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3012, 3013, 3014, 3015, 3016, 3017, 0, 0, 0,
0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
- 0, 0, 735, 735, 0, 0, 735, 0, 735, 0,
- 0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 735, 0, 0, 735, 0, 735, 2081,
+ 3027, 0, 0, 0, 735, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3035, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
- 0, 0, 0, 3403, 735, 0, 0, 0, 735, 735,
+ 0, 0, 0, 0, 735, 0, 0, 0, 735, 735,
+ 0, 0, 0, 0, 4009, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 957, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3418, 190, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1881, 0, 0, 195, 0, 0, 0,
- 0, 0, 0, 195, 0, 129, 0, 151, 0, 0,
+ 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
+ 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 195, 195, 0, 0, 195, 0,
- 195, 172, 0, 0, 0, 0, 0, 0, 0, 0,
- 195, 0, 712, 0, 0, 0, 0, 195, 734, 0,
+ 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 195, 0, 0, 0, 914, 0, 0, 195, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 162, 0, 0, 0, 0,
- 0, 150, 0, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
195, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 169, 0, 0, 170, 0, 0, 0, 0, 0,
- 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1885, 1886, 161, 160,
- 189, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1527,
- 0, 2343, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 733, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3616,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1527,
+ 0, 2342, 0, 0, 1095, 0, 1102, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 155, 1887, 158, 0, 1884, 0, 156, 157,
- 0, 0, 3640, 0, 0, 173, 0, 0, 0, 0,
- 0, 0, 0, 0, 179, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4065, 0, 0,
+ 4066, 0, 4067, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3660, 0, 3661, 0, 3662, 0, 3663, 0, 0, 0,
- 0, 0, 0, 0, 3666, 3667, 0, 0, 0, 0,
- 0, 0, 0, 0, 3672, 0, 0, 914, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3673, 0,
- 3674, 0, 3675, 0, 3676, 0, 3677, 0, 3678, 0,
- 3679, 0, 3680, 0, 3681, 0, 3682, 0, 3683, 0,
- 3684, 0, 3685, 0, 3686, 0, 3687, 0, 3688, 0,
- 0, 3689, 0, 0, 0, 3690, 0, 3691, 0, 0,
- 0, 0, 164, 3693, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 733, 0, 0, 0, 0,
- 0, 0, 195, 0, 0, 3710, 0, 0, 0, 0,
- 0, 0, 0, 735, 3715, 0, 3716, 3717, 0, 3718,
- 0, 3719, 0, 0, 0, 0, 3720, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1095, 0, 1102,
- 0, 195, 0, 3749, 0, 0, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3758, 0, 0, 3760,
- 0, 0, 0, 0, 0, 0, 0, 0, 159, 0,
- 0, 3764, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3900, 0, 0,
+ 0, 0, 0, 0, 0, 0, 734, 1438, 734, 734,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3299, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3337, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3351, 1526,
+ 0, 0, 0, 0, 4151, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3369, 0,
+ 0, 3372, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4167, 0, 4168, 0, 4169, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 0, 0, 0, 0, 0,
+ 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 735, 0, 0, 0, 0, 0, 0, 735,
- 1723, 0, 0, 735, 735, 0, 0, 0, 735, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4218, 0, 4219,
+ 0, 195, 0, 0, 0, 0, 195, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1527, 735, 0, 152, 0, 0,
- 153, 0, 0, 0, 0, 0, 0, 195, 195, 195,
- 195, 195, 195, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 676,
- 0, 165, 0, 0, 0, 195, 195, 0, 177, 0,
- 0, 0, 0, 0, 0, 0, 4010, 0, 0, 1028,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
- 0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
- 0, 1099, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 734, 1438, 734, 734, 0, 0, 0,
- 0, 0, 166, 171, 168, 174, 175, 176, 178, 180,
- 181, 182, 183, 0, 0, 0, 735, 734, 184, 186,
- 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 735, 3532, 0, 0, 0,
+ 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 0, 0, 0, 0, 0, 735,
+ 0, 0, 0, 735, 735, 0, 0, 0, 735, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1527, 735, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 195, 195, 195,
+ 195, 195, 195, 0, 734, 734, 0, 0, 0, 0,
+ 0, 3593, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 195, 195, 0, 0, 0,
+ 0, 3608, 0, 3609, 3610, 3611, 0, 0, 0, 0,
+ 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
+ 195, 0, 0, 0, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 734, 0, 0, 0, 0, 0, 735, 0, 0, 0,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 734, 0, 734, 0, 0, 0, 0,
+ 0, 0, 0, 734, 0, 0, 1526, 734, 0, 0,
+ 734, 734, 734, 734, 0, 734, 735, 734, 734, 0,
+ 734, 734, 734, 734, 734, 734, 0, 0, 0, 0,
+ 0, 0, 0, 1526, 734, 734, 1526, 734, 1526, 0,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1283, 0, 1283,
+ 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1452, 0, 0, 0, 734, 0, 0, 734, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 735, 0, 4052, 0, 0, 0, 0, 0, 0,
+ 0, 735, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 735, 0, 0, 0, 0, 4066,
- 0, 0, 4067, 0, 4068, 0, 0, 0, 0, 195,
+ 0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
0, 0, 735, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
1527, 0, 0, 735, 735, 1527, 195, 195, 195, 195,
195, 0, 0, 0, 0, 0, 0, 0, 195, 0,
0, 0, 0, 0, 195, 0, 195, 0, 0, 195,
- 195, 195, 0, 0, 0, 0, 0, 0, 0, 1526,
+ 195, 195, 915, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 0, 4152, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 1527, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 195, 734, 734, 0, 0, 4168, 0, 4169, 0, 4170,
0, 0, 0, 0, 195, 0, 0, 0, 0, 0,
- 1283, 0, 1283, 1283, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 193, 0,
+ 1527, 677, 734, 734, 0, 735, 0, 0, 0, 0,
+ 195, 0, 0, 0, 0, 0, 0, 734, 0, 0,
+ 0, 677, 0, 0, 195, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1051, 0, 0,
0, 0, 0, 0, 195, 0, 0, 195, 0, 0,
- 0, 734, 0, 0, 1452, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 734, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 734, 0, 4219,
- 0, 4220, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 1526, 734, 0, 0, 734, 734, 734,
- 734, 0, 734, 0, 734, 734, 0, 734, 734, 734,
- 734, 734, 734, 0, 0, 0, 0, 0, 0, 0,
- 1526, 734, 734, 1526, 734, 1526, 0, 734, 0, 0,
+ 0, 0, 0, 0, 1071, 1071, 0, 0, 0, 0,
+ 0, 0, 0, 677, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1725, 1726, 0, 734, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1526, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2145, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1779, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
+ 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1856, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 734, 0, 0, 0, 0,
- 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1219, 0, 1225, 0, 0, 0,
+ 0, 0, 0, 0, 1095, 735, 1892, 0, 0, 0,
+ 0, 0, 0, 0, 1901, 0, 0, 0, 1903, 0,
+ 0, 1906, 1907, 1909, 1909, 0, 1909, 0, 1909, 1909,
+ 0, 1918, 1909, 1909, 1909, 1909, 1909, 0, 0, 0,
+ 0, 0, 195, 0, 0, 1938, 1939, 0, 1095, 0,
+ 0, 1944, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1986, 0, 0, 4049, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2008, 0, 195, 2012,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 195, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1453, 0,
- 0, 0, 0, 0, 0, 0, 0, 195, 0, 0,
+ 0, 734, 0, 0, 0, 0, 0, 195, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 195, 0, 195,
- 195, 195, 0, 0, 0, 0, 0, 0, 0, 735,
+ 0, 0, 0, 1283, 0, 0, 0, 195, 0, 195,
+ 195, 195, 0, 0, 734, 0, 0, 0, 0, 735,
735, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1726, 1727,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 734, 0, 0, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 735, 735,
- 735, 735, 0, 0, 0, 0, 0, 0, 1780, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1798, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1857, 0, 0, 0, 0, 734,
- 734, 0, 0, 0, 1866, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1095, 0, 1893,
- 0, 0, 0, 0, 0, 0, 0, 1902, 0, 0,
- 0, 1904, 0, 0, 1907, 1908, 1910, 1910, 0, 1910,
- 0, 1910, 1910, 0, 1919, 1910, 1910, 1910, 1910, 1910,
- 0, 915, 0, 0, 0, 0, 0, 0, 1939, 1940,
- 0, 1095, 0, 0, 1945, 734, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1526, 0, 0, 0, 0,
- 0, 0, 0, 0, 2146, 0, 0, 0, 0, 0,
- 0, 0, 0, 1526, 0, 0, 1987, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 193, 0, 2009,
- 677, 0, 2013, 0, 0, 735, 0, 735, 0, 195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 677, 0, 0, 0, 0, 0, 0, 0, 1527, 0,
- 0, 0, 195, 0, 0, 735, 1051, 735, 0, 0,
- 0, 0, 0, 0, 0, 0, 1283, 0, 0, 0,
- 0, 0, 0, 1071, 1071, 0, 0, 0, 0, 0,
- 0, 0, 677, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 0, 0, 1803, 0, 0, 0, 0, 195, 0,
- 0, 735, 0, 0, 0, 0, 0, 0, 0, 734,
- 0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 735, 735, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1944, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
- 0, 0, 734, 0, 0, 0, 735, 0, 735, 0,
- 0, 0, 0, 0, 0, 0, 1283, 1283, 0, 0,
- 734, 1989, 0, 734, 0, 0, 0, 0, 0, 0,
- 0, 2070, 0, 0, 0, 0, 0, 735, 2017, 0,
0, 0, 0, 734, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2028, 0, 0, 0, 0, 0,
- 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 0,
+ 734, 734, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2132, 0, 0, 0, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 0, 0, 0, 734, 734,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
- 0, 0, 0, 0, 0, 734, 734, 0, 0, 734,
- 0, 734, 0, 0, 0, 0, 0, 734, 0, 0,
+ 0, 734, 0, 0, 0, 0, 0, 734, 734, 0,
+ 0, 734, 0, 734, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1283, 1283, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0,
+ 0, 0, 0, 0, 734, 0, 0, 0, 0, 734,
+ 0, 0, 0, 734, 734, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 734, 0, 0,
- 0, 734, 734, 195, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 735, 195, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 735, 0, 735, 0, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2131,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0,
+ 0, 0, 195, 0, 0, 735, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1283, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 677, 0, 677, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2082, 0, 735, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1527, 735, 0,
- 735, 0, 0, 0, 0, 0, 2380, 0, 734, 0,
+ 734, 0, 0, 0, 0, 735, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 195, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 2343, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393,
+ 0, 0, 0, 0, 1526, 0, 734, 0, 1528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1780, 0, 0,
- 1283, 0, 0, 0, 0, 0, 195, 735, 0, 0,
+ 0, 0, 0, 1283, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
+ 0, 0, 0, 0, 0, 0, 735, 0, 735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1095, 0, 1526, 0, 734, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 677, 0, 0,
+ 0, 0, 2379, 0, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 735, 0, 0, 0, 0, 195, 0, 1102, 0,
- 0, 0, 0, 0, 0, 2506, 2507, 2508, 0, 0,
- 735, 0, 735, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0,
- 0, 0, 1102, 1902, 0, 0, 1902, 0, 1902, 677,
- 0, 0, 0, 0, 2539, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1528, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1095,
- 0, 0, 0, 0, 2132, 0, 0, 0, 2132, 2132,
+ 0, 0, 0, 0, 0, 2392, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1779, 0, 0, 1283, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2409, 0, 0, 0,
- 0, 0, 0, 0, 2413, 0, 2416, 0, 0, 2082,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
+ 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0,
+ 0, 2505, 2506, 2507, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 2616, 0, 0, 0, 0,
+ 0, 0, 1095, 195, 0, 0, 0, 0, 1102, 1901,
+ 0, 0, 1901, 0, 1901, 0, 0, 0, 734, 0,
+ 2538, 735, 195, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 677,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0,
+ 2131, 0, 1051, 0, 2131, 2131, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2928, 0, 0,
+ 0, 0, 0, 0, 0, 0, 677, 735, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 0, 0, 677, 0, 1527, 735, 0,
+ 735, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 734, 0, 0, 0, 0, 735, 2342, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2929, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1528, 0, 734, 0, 0,
+ 0, 0, 0, 0, 734, 0, 0, 0, 734, 734,
+ 0, 0, 0, 734, 0, 0, 195, 735, 0, 0,
+ 0, 2615, 1528, 0, 0, 1528, 0, 1528, 677, 1526,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 677, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014,
+ 677, 735, 0, 0, 0, 0, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 677, 1283, 0, 0,
+ 735, 0, 735, 677, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2040, 2041, 677, 677, 677, 677, 677, 677,
+ 677, 734, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 734, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 734, 0, 0, 677, 0,
- 0, 0, 734, 0, 0, 0, 734, 734, 0, 0,
0, 734, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1051, 0, 0, 0, 0, 0, 1526, 734, 2082,
- 0, 0, 0, 0, 0, 0, 2575, 0, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 2595, 2596, 0,
- 0, 2600, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2605, 677, 0, 0, 0, 0, 0,
- 2608, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2611, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1528, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1528, 95, 0, 1528, 1023, 1528, 677, 0, 0,
- 963, 1024, 976, 977, 978, 964, 0, 0, 965, 966,
- 0, 967, 0, 0, 0, 0, 0, 1961, 0, 734,
- 0, 0, 0, 0, 0, 0, 0, 972, 0, 979,
- 980, 0, 677, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2864, 0, 0, 0, 0, 2015, 677,
- 0, 0, 0, 0, 0, 0, 0, 2879, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
- 0, 0, 677, 0, 0, 0, 0, 0, 3346, 3347,
- 0, 2041, 2042, 677, 677, 677, 677, 677, 677, 677,
- 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
- 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
- 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
- 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
- 1021, 1022, 0, 0, 734, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
- 0, 0, 0, 0, 0, 2961, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3348, 0, 0, 0, 734, 0, 0,
- 0, 0, 2393, 0, 0, 0, 0, 0, 0, 2985,
- 0, 0, 0, 1902, 1902, 734, 0, 0, 2990, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
- 0, 0, 0, 1526, 0, 3001, 734, 734, 1526, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3349, 3350, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3296,
- 0, 0, 0, 0, 0, 0, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 1526, 0, 0, 2132, 0, 734, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2916,
+ 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 734, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2863,
+ 0, 0, 0, 0, 0, 0, 0, 734, 0, 0,
+ 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0,
+ 0, 734, 0, 0, 0, 1526, 0, 0, 734, 734,
+ 1526, 0, 0, 0, 0, 0, 0, 1528, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 928, 0,
- 0, 0, 0, 0, 932, 0, 1528, 0, 929, 930,
- 0, 0, 0, 931, 933, 0, 2132, 0, 0, 0,
- 3377, 0, 0, 0, 1528, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1528, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2965, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2960, 734, 0, 0, 1526, 0, 0, 0, 0,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2392, 0,
+ 0, 0, 0, 0, 0, 2984, 0, 0, 0, 1901,
+ 1901, 0, 0, 0, 2989, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3000, 3376, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2014, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3013, 3014, 3015, 3016, 3017, 3018, 0, 0, 0, 0,
- 0, 3158, 0, 0, 0, 0, 0, 0, 734, 0,
- 0, 0, 0, 1283, 0, 0, 0, 0, 2082, 3028,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3036, 1910, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3203, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1961, 1283, 0, 0, 0,
- 0, 0, 0, 3230, 1910, 0, 0, 0, 0, 0,
0, 1071, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1051, 0, 0, 0, 0, 0, 0, 0, 0, 3584,
+ 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0,
+ 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
- 0, 0, 0, 0, 2015, 677, 0, 677, 0, 677,
- 2432, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 734, 0, 0, 0, 2014, 677, 0, 677, 0, 677,
+ 2431, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 734, 0, 0, 0, 1095, 0, 0,
- 0, 0, 0, 0, 0, 2393, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 734, 734, 734, 734, 0, 0, 0, 0, 0,
- 0, 0, 2509, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2508, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3583, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3157, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1283,
+ 0, 0, 0, 0, 734, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3202, 0,
+ 0, 0, 0, 734, 734, 734, 734, 0, 0, 0,
+ 677, 0, 1283, 0, 0, 0, 0, 677, 0, 3229,
+ 1909, 0, 0, 0, 0, 0, 0, 0, 677, 677,
+ 0, 0, 677, 0, 2601, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 677, 0, 0, 0, 0, 0,
+ 0, 677, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
+ 0, 0, 0, 0, 2612, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0,
+ 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1528, 0, 2014, 0, 0, 0, 0,
+ 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 677, 0, 0, 0, 0, 1857, 0, 677, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 677, 677,
- 0, 0, 677, 0, 2602, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 677, 0, 0, 0, 734, 0,
- 734, 677, 0, 0, 0, 0, 0, 3300, 0, 0,
+ 0, 0, 0, 1526, 0, 0, 0, 0, 0, 0,
+ 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1526, 0, 0, 0, 0, 0, 677, 734, 0,
- 734, 0, 0, 3338, 2613, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3352, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3370, 0, 0,
- 3373, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 734, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
- 0, 0, 0, 1528, 0, 2015, 0, 734, 0, 2393,
- 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
+ 0, 1856, 0, 0, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3648, 3649,
- 3650, 3651, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 734,
- 0, 734, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 3533, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
+ 0, 734, 0, 734, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
+ 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2392, 2392, 0, 0, 0,
+ 0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
+ 677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3647, 3648, 3649, 3650, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3594, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3726, 0, 3726, 677, 0,
- 3609, 0, 3610, 3611, 3612, 0, 1961, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3754, 0, 3756, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
- 677, 0, 0, 0, 734, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2393, 0, 0, 0, 0,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3923, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1283, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 677, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1526, 734, 0, 734, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 734, 0, 1528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 734, 734,
- 0, 0, 0, 0, 0, 0, 0, 0, 1528, 3726,
- 0, 0, 0, 0, 0, 0, 3726, 0, 3726, 0,
0, 677, 677, 677, 677, 677, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 2393, 0, 677,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 677,
677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 677, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 734, 0, 734, 0, 0, 0, 0,
+ 0, 0, 734, 0, 677, 0, 0, 0, 0, 0,
+ 0, 3725, 734, 3725, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1526, 734, 0, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3753, 0, 3755, 0, 0, 0, 0, 0, 0,
+ 734, 734, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3786, 3788, 3787, 3853, 3854, 3855, 3856, 3857, 3858,
- 3859, 3789, 3790, 805, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2393, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3922, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1283, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2393, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 734, 0, 734, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3725, 0, 0, 0, 0,
+ 0, 0, 3725, 0, 3725, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4070, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4078, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2393, 0,
- 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0,
0, 1071, 0, 677, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1283, 1283, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1528, 0, 0, 0, 0, 1528,
677, 677, 677, 677, 677, 0, 0, 0, 0, 0,
- 0, 0, 3246, 0, 0, 0, 0, 0, 1961, 0,
- 677, 0, 0, 677, 3254, 2015, 0, 4136, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3794, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4078, 677, 3802,
- 3803, 0, 0, 3878, 3877, 3876, 0, 0, 3874, 3875,
- 3873, 0, 0, 0, 1528, 0, 0, 0, 0, 0,
- 0, 2393, 0, 0, 677, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4050, 0, 0, 677, 0,
- 1857, 0, 4136, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
- 0, 677, 0, 0, 3879, 928, 0, 781, 782, 3880,
- 3881, 932, 3882, 784, 785, 929, 930, 0, 779, 783,
- 931, 933, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3783, 3784, 3785,
- 3791, 3792, 3793, 3804, 3851, 3852, 3860, 3862, 884, 3861,
- 3863, 3864, 3865, 3868, 3869, 3870, 3871, 3866, 3867, 3872,
- 3766, 3770, 3767, 3768, 3769, 3781, 3771, 3772, 3773, 3774,
- 3775, 3776, 3777, 3778, 3779, 3780, 3782, 3883, 3884, 3885,
- 3886, 3887, 3888, 3797, 3801, 3800, 3798, 3799, 3795, 3796,
- 3823, 3822, 3824, 3825, 3826, 3827, 3828, 3829, 3831, 3830,
- 3832, 3833, 3834, 3835, 3836, 3837, 3805, 3806, 3809, 3810,
- 3808, 3807, 3811, 3820, 3821, 3812, 3813, 3814, 3815, 3816,
- 3817, 3819, 3818, 3838, 3839, 3840, 3841, 3842, 3844, 3843,
- 3847, 3848, 3846, 3845, 3850, 3849, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 677, 0, 0, 934,
- 0, 935, 0, 0, 939, 0, 0, 0, 941, 940,
- 0, 942, 904, 903, 0, 0, 936, 937, 0, 938,
+ 0, 0, 3245, 0, 0, 0, 0, 0, 1960, 0,
+ 677, 0, 0, 677, 3253, 2014, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 677, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 677, 0, 0, 3889, 3890, 3891, 3892, 3893, 3894,
- 3895, 3896, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 677, 0, 677, 677, 677, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 677, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2392, 0, 0, 0, 0, 677, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
+ 0, 677, 0, 0, 0, 0, 0, 2392, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785,
+ 3787, 3786, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3788,
+ 3789, 805, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4069, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2392, 0, 4085, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1283, 1283, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4135, 0, 0, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 677, 0, 0, 0, 0, 2392, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1856, 0, 4135, 0,
+ 0, 677, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3793, 0, 0, 0, 0, 0, 0, 0,
+ 0, 677, 0, 677, 677, 677, 0, 3801, 3802, 0,
+ 0, 3877, 3876, 3875, 0, 0, 3873, 3874, 3872, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3878, 928, 0, 781, 782, 3879, 3880, 932,
+ 3881, 784, 785, 929, 930, 0, 779, 783, 931, 933,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1961, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1528, 0, 0, 0, 1961, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3782, 3783, 3784, 3790, 3791,
+ 3792, 3803, 3850, 3851, 3859, 3861, 884, 3860, 3862, 3863,
+ 3864, 3867, 3868, 3869, 3870, 3865, 3866, 3871, 3765, 3769,
+ 3766, 3767, 3768, 3780, 3770, 3771, 3772, 3773, 3774, 3775,
+ 3776, 3777, 3778, 3779, 3781, 3882, 3883, 3884, 3885, 3886,
+ 3887, 3796, 3800, 3799, 3797, 3798, 3794, 3795, 3822, 3821,
+ 3823, 3824, 3825, 3826, 3827, 3828, 3830, 3829, 3831, 3832,
+ 3833, 3834, 3835, 3836, 3804, 3805, 3808, 3809, 3807, 3806,
+ 3810, 3819, 3820, 3811, 3812, 3813, 3814, 3815, 3816, 3818,
+ 3817, 3837, 3838, 3839, 3840, 3841, 3843, 3842, 3846, 3847,
+ 3845, 3844, 3849, 3848, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1960, 0, 0, 0, 934, 0, 935,
+ 0, 0, 939, 0, 0, 0, 941, 940, 0, 942,
+ 904, 903, 1528, 0, 936, 937, 1960, 938, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1961, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895,
+ 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2877,7 +2888,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1961, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1960, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2891,21 +2902,21 @@ var yyAct = [...]int{
0, 1528, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1961, 0, 0, 396, 0, 0, 0, 0, 0, 0,
+ 1960, 0, 0, 396, 0, 0, 0, 0, 0, 0,
1421, 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, 1337,
1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289,
1317, 1349, 270, 1314, 1407, 1366, 1423, 366, 267, 1295,
1286, 204, 505, 1320, 430, 1336, 203, 1386, 487, 252,
377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
518, 422, 1430, 370, 1372, 0, 497, 401, 0, 0,
- 2015, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385,
+ 2014, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385,
1303, 1371, 1425, 1332, 1381, 1426, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 4110, 507, 959,
- 0, 0, 0, 0, 4111, 0, 0, 0, 0, 238,
+ 413, 498, 286, 0, 0, 0, 0, 4109, 507, 959,
+ 0, 0, 0, 0, 4110, 0, 0, 0, 0, 238,
0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
340, 342, 344, 350, 357, 363, 336, 345, 1328, 1378,
609, 1420, 1329, 1380, 265, 321, 272, 264, 580, 1431,
@@ -2987,7 +2998,7 @@ var yyAct = [...]int{
1419, 1354, 596, 0, 0, 229, 1422, 1353, 0, 1383,
0, 1437, 1287, 1374, 0, 1290, 1294, 1433, 1417, 1323,
275, 0, 0, 0, 0, 0, 0, 0, 1350, 1361,
- 1395, 1399, 1344, 0, 0, 0, 0, 0, 0, 3255,
+ 1395, 1399, 1344, 0, 0, 0, 0, 0, 0, 3254,
0, 1321, 0, 1370, 0, 0, 0, 1299, 1291, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3062,7 +3073,7 @@ var yyAct = [...]int{
0, 0, 229, 1422, 1353, 0, 1383, 0, 1437, 1287,
1374, 0, 1290, 1294, 1433, 1417, 1323, 275, 0, 0,
0, 0, 0, 0, 0, 1350, 1361, 1395, 1399, 1344,
- 0, 0, 0, 0, 0, 0, 3216, 0, 1321, 0,
+ 0, 0, 0, 0, 0, 0, 3215, 0, 1321, 0,
1370, 0, 0, 0, 1299, 1291, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3137,7 +3148,7 @@ var yyAct = [...]int{
1422, 1353, 0, 1383, 0, 1437, 1287, 1374, 0, 1290,
1294, 1433, 1417, 1323, 275, 0, 0, 0, 0, 0,
0, 0, 1350, 1361, 1395, 1399, 1344, 0, 0, 0,
- 0, 0, 0, 2411, 0, 1321, 0, 1370, 0, 0,
+ 0, 0, 0, 2410, 0, 1321, 0, 1370, 0, 0,
0, 1299, 1291, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3506,7 +3517,7 @@ var yyAct = [...]int{
976, 977, 978, 964, 0, 238, 965, 966, 245, 967,
0, 924, 807, 809, 808, 874, 875, 876, 877, 878,
879, 880, 810, 811, 805, 972, 609, 979, 980, 0,
- 265, 321, 272, 264, 580, 0, 0, 2233, 2234, 2235,
+ 265, 321, 272, 264, 580, 0, 0, 2232, 2233, 2234,
0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
0, 0, 744, 761, 0, 775, 0, 0, 0, 275,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3575,12 +3586,12 @@ var yyAct = [...]int{
282, 273, 269, 250, 317, 385, 428, 518, 422, 776,
370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
0, 0, 0, 771, 772, 0, 0, 0, 0, 0,
- 0, 2440, 0, 323, 248, 325, 202, 413, 498, 286,
+ 0, 2439, 0, 323, 248, 325, 202, 413, 498, 286,
0, 95, 0, 0, 1023, 507, 959, 748, 925, 963,
1024, 976, 977, 978, 964, 0, 238, 965, 966, 245,
967, 0, 924, 807, 809, 808, 874, 875, 876, 877,
878, 879, 880, 810, 811, 805, 972, 609, 979, 980,
- 2441, 265, 321, 272, 264, 580, 0, 0, 0, 0,
+ 2440, 265, 321, 272, 264, 580, 0, 0, 0, 0,
0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
0, 0, 0, 744, 761, 0, 775, 0, 0, 0,
275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3743,7 +3754,7 @@ var yyAct = [...]int{
918, 0, 0, 629, 0, 0, 916, 0, 0, 0,
0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
473, 0, 0, 0, 969, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 4096, 0, 470, 372,
+ 284, 458, 432, 469, 440, 287, 4095, 0, 470, 372,
585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
@@ -3798,7 +3809,7 @@ var yyAct = [...]int{
518, 422, 776, 370, 0, 0, 497, 401, 0, 0,
0, 0, 0, 0, 0, 0, 771, 772, 0, 0,
0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 95, 0, 1754, 1023, 507, 959,
+ 413, 498, 286, 0, 95, 0, 1753, 1023, 507, 959,
748, 925, 963, 1024, 976, 977, 978, 964, 0, 238,
965, 966, 245, 967, 0, 924, 807, 809, 808, 874,
875, 876, 877, 878, 879, 880, 810, 811, 805, 972,
@@ -4034,7 +4045,7 @@ var yyAct = [...]int{
986, 987, 988, 989, 990, 991, 992, 993, 994, 995,
996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
- 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3172, 0, 0,
+ 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3171, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
402, 257, 0, 453, 918, 0, 0, 629, 0, 0,
916, 0, 0, 0, 0, 365, 0, 330, 197, 225,
@@ -4108,7 +4119,7 @@ var yyAct = [...]int{
985, 986, 987, 988, 989, 990, 991, 992, 993, 994,
995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
- 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3168, 0,
+ 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3167, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
0, 402, 257, 0, 453, 918, 0, 0, 629, 0,
0, 916, 0, 0, 0, 0, 365, 0, 330, 197,
@@ -4257,7 +4268,7 @@ var yyAct = [...]int{
993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 2124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 297, 0, 402, 257, 0, 453, 918, 0, 0,
629, 0, 0, 916, 0, 0, 0, 0, 365, 0,
330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
@@ -4331,7 +4342,7 @@ var yyAct = [...]int{
992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 2122, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1022, 2121, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 297, 0, 402, 257, 0, 453, 918, 0,
0, 629, 0, 0, 916, 0, 0, 0, 0, 365,
0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
@@ -4457,7 +4468,7 @@ var yyAct = [...]int{
230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 528, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
0, 270, 0, 0, 0, 0, 366, 267, 0, 0,
204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
@@ -4465,9 +4476,9 @@ var yyAct = [...]int{
422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 1711, 507, 959, 0,
- 0, 1708, 0, 0, 0, 0, 1706, 0, 238, 1707,
- 1705, 245, 1710, 0, 924, 351, 360, 359, 339, 340,
+ 498, 286, 0, 95, 0, 0, 0, 507, 194, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
@@ -4515,9 +4526,9 @@ var yyAct = [...]int{
530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 0, 454, 288, 650, 618, 484,
+ 0, 196, 221, 368, 94, 454, 288, 650, 618, 484,
613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2426, 0, 0, 2425, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
@@ -4530,22 +4541,22 @@ var yyAct = [...]int{
0, 617, 502, 227, 466, 290, 251, 0, 0, 211,
246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
- 0, 86, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
+ 395, 266, 433, 1776, 0, 376, 576, 577, 316, 0,
+ 0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 416, 0, 0, 1778, 0, 0,
0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 95, 0, 0, 0, 507, 194,
+ 413, 498, 286, 0, 0, 0, 0, 1780, 507, 724,
0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1479, 0, 1480, 1481, 0, 0, 0, 0,
0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4589,9 +4600,9 @@ var yyAct = [...]int{
571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 0, 196, 221, 368, 94, 454, 288, 650, 618,
+ 539, 0, 196, 221, 368, 0, 454, 288, 650, 618,
484, 613, 206, 223, 0, 262, 0, 0, 0, 0,
- 0, 0, 2427, 0, 0, 2426, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
@@ -4604,22 +4615,22 @@ var yyAct = [...]int{
320, 0, 617, 502, 227, 466, 290, 251, 0, 0,
211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 1777, 0, 376, 576, 577, 316,
- 0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 1779, 0,
+ 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
+ 0, 0, 86, 528, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 1781, 507,
+ 202, 413, 498, 286, 0, 95, 0, 1753, 0, 507,
724, 0, 0, 0, 0, 0, 0, 0, 0, 0,
238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
- 0, 0, 0, 1479, 0, 1480, 1481, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4663,7 +4674,7 @@ var yyAct = [...]int{
568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 0, 196, 221, 368, 0, 454, 288, 650,
+ 531, 539, 0, 196, 221, 368, 94, 454, 288, 650,
618, 484, 613, 206, 223, 0, 262, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 198, 200,
@@ -4679,7 +4690,7 @@ var yyAct = [...]int{
0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 86, 528, 0, 0, 0, 0, 0,
+ 316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
267, 0, 0, 204, 505, 0, 430, 0, 203, 0,
@@ -4687,8 +4698,8 @@ var yyAct = [...]int{
385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 95, 0, 1754, 0,
- 507, 724, 0, 0, 0, 0, 0, 0, 0, 0,
+ 325, 202, 413, 498, 286, 0, 95, 0, 0, 0,
+ 507, 194, 0, 0, 0, 0, 0, 0, 0, 0,
0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
@@ -4737,9 +4748,9 @@ var yyAct = [...]int{
562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 0, 196, 221, 368, 94, 454, 288,
+ 538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2426, 0, 0, 2425, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
@@ -4755,14 +4766,14 @@ var yyAct = [...]int{
520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 0, 0, 0, 0, 0, 270, 0, 0, 0, 0,
+ 2373, 0, 0, 0, 0, 270, 0, 0, 0, 0,
366, 267, 0, 0, 204, 505, 0, 430, 0, 203,
0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 95, 0, 0,
- 0, 507, 194, 0, 0, 0, 0, 0, 0, 0,
+ 248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
+ 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0,
0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
@@ -4781,7 +4792,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
+ 0, 2371, 470, 372, 585, 450, 601, 630, 631, 263,
406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
@@ -4813,7 +4824,7 @@ var yyAct = [...]int{
569, 529, 533, 537, 546, 564, 563, 544, 555, 566,
550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
- 0, 0, 0, 0, 0, 2427, 0, 0, 2426, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
@@ -4829,21 +4840,21 @@ var yyAct = [...]int{
519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 2374, 0, 0, 0, 0, 270, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
0, 366, 267, 0, 0, 204, 505, 0, 430, 0,
203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 1962, 507, 194, 0, 0, 0, 0, 0, 0,
+ 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4852,10 +4863,10 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 0, 0, 0, 0, 365, 0, 330, 197,
- 225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
+ 0, 0, 0, 0, 0, 0, 365, 1098, 330, 197,
+ 225, 1096, 0, 412, 461, 473, 0, 0, 0, 253,
0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 2372, 470, 372, 585, 450, 601, 630, 631,
+ 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
@@ -4903,21 +4914,21 @@ var yyAct = [...]int{
485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 0, 0, 0, 0, 0, 270, 0, 0,
+ 0, 0, 2373, 0, 0, 0, 0, 270, 0, 0,
0, 0, 366, 267, 0, 0, 204, 505, 0, 430,
0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 323, 248, 325, 202, 413, 498, 286, 0, 0,
- 0, 0, 0, 507, 724, 0, 0, 0, 0, 0,
+ 0, 0, 1961, 507, 194, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
363, 336, 345, 0, 0, 609, 0, 0, 0, 265,
321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
- 0, 0, 0, 0, 0, 0, 0, 1092, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4926,8 +4937,8 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 0, 0, 0, 0, 365, 1098, 330,
- 197, 225, 1096, 0, 412, 461, 473, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
+ 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
@@ -4977,14 +4988,14 @@ var yyAct = [...]int{
241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 2374, 0, 0, 0, 0, 270, 0,
+ 416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 0, 1962, 507, 194, 0, 0, 0, 0,
+ 0, 0, 1753, 0, 507, 724, 0, 0, 0, 0,
0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
@@ -5000,7 +5011,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 297, 0, 402, 257, 0, 453, 0, 0, 0,
- 629, 0, 0, 0, 0, 0, 0, 0, 365, 0,
+ 629, 0, 0, 0, 3726, 0, 0, 0, 365, 0,
330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
0, 253, 0, 471, 426, 604, 233, 284, 458, 432,
469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
@@ -5058,7 +5069,7 @@ var yyAct = [...]int{
370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 1754, 0, 507, 724, 0, 0, 0,
+ 0, 0, 0, 0, 2132, 507, 724, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
@@ -5067,14 +5078,14 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2133, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 297, 0, 402, 257, 0, 453, 0, 0,
- 0, 629, 0, 0, 0, 3727, 0, 0, 0, 365,
+ 0, 629, 0, 0, 0, 0, 0, 0, 0, 365,
0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
0, 0, 253, 0, 471, 426, 604, 233, 284, 458,
432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
@@ -5132,7 +5143,7 @@ var yyAct = [...]int{
0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 2133, 507, 724, 0, 0,
+ 286, 0, 0, 0, 0, 2879, 507, 724, 0, 0,
0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
@@ -5141,7 +5152,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2880,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5206,9 +5217,9 @@ var yyAct = [...]int{
422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 2880, 507, 724, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
+ 498, 286, 0, 0, 0, 0, 0, 507, 724, 0,
+ 0, 0, 0, 2864, 0, 0, 0, 0, 238, 0,
+ 0, 245, 2865, 0, 0, 351, 360, 359, 339, 340,
342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
@@ -5216,7 +5227,7 @@ var yyAct = [...]int{
0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2881, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5274,15 +5285,15 @@ var yyAct = [...]int{
395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
- 0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
+ 0, 0, 270, 1799, 0, 0, 0, 366, 267, 0,
0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 0, 507, 724,
- 0, 0, 0, 0, 2865, 0, 0, 0, 0, 238,
- 0, 0, 245, 2866, 0, 0, 351, 360, 359, 339,
+ 413, 498, 286, 0, 0, 0, 0, 1798, 507, 724,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
+ 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
@@ -5348,14 +5359,14 @@ var yyAct = [...]int{
523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
- 0, 0, 0, 270, 1800, 0, 0, 0, 366, 267,
+ 0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 1799, 507,
- 724, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
+ 726, 727, 728, 0, 0, 0, 0, 0, 0, 0,
238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
@@ -5429,7 +5440,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
325, 202, 413, 498, 286, 0, 0, 0, 0, 0,
- 507, 726, 727, 728, 0, 0, 0, 0, 0, 0,
+ 507, 724, 0, 0, 0, 0, 0, 0, 0, 0,
0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
@@ -5445,7 +5456,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
- 0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
+ 4070, 0, 0, 0, 365, 0, 330, 197, 225, 0,
0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
@@ -5503,7 +5514,7 @@ var yyAct = [...]int{
401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
- 0, 507, 724, 0, 0, 0, 0, 0, 0, 0,
+ 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0,
0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
@@ -5519,7 +5530,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
402, 257, 0, 453, 0, 0, 0, 629, 0, 0,
- 0, 4071, 0, 0, 0, 365, 0, 330, 197, 225,
+ 0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
@@ -5577,7 +5588,7 @@ var yyAct = [...]int{
497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 1962, 507, 194, 0, 0, 0, 0, 0, 0,
+ 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
@@ -5593,7 +5604,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 0, 0, 0, 0, 365, 0, 330, 197,
+ 0, 0, 3726, 0, 0, 0, 365, 0, 330, 197,
225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
@@ -5650,7 +5661,7 @@ var yyAct = [...]int{
269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 0,
+ 0, 323, 248, 325, 202, 413, 498, 286, 0, 95,
0, 0, 0, 507, 724, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
@@ -5667,7 +5678,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 3727, 0, 0, 0, 365, 0, 330,
+ 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
@@ -5717,7 +5728,7 @@ var yyAct = [...]int{
277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0,
416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
@@ -5725,7 +5736,7 @@ var yyAct = [...]int{
0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 95, 0, 0, 0, 507, 724, 0, 0, 0, 0,
+ 0, 0, 0, 0, 507, 194, 0, 0, 0, 0,
0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
@@ -5791,7 +5802,7 @@ var yyAct = [...]int{
274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 0, 0, 0, 2428, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
0, 0, 0, 0, 366, 267, 0, 0, 204, 505,
0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
@@ -5799,7 +5810,7 @@ var yyAct = [...]int{
370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 0, 507, 194, 0, 0, 0,
+ 0, 0, 0, 0, 1780, 507, 724, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
@@ -5873,7 +5884,7 @@ var yyAct = [...]int{
0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 1781, 507, 724, 0, 0,
+ 286, 0, 0, 0, 0, 0, 507, 194, 0, 0,
0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
@@ -5923,7 +5934,7 @@ var yyAct = [...]int{
532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 0, 454, 288, 650, 618, 484, 613,
+ 196, 221, 368, 2079, 454, 288, 650, 618, 484, 613,
206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
@@ -5947,7 +5958,7 @@ var yyAct = [...]int{
422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 0, 507, 194, 0,
+ 498, 286, 0, 0, 0, 0, 2070, 507, 724, 0,
0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
@@ -5997,7 +6008,7 @@ var yyAct = [...]int{
530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 2080, 454, 288, 650, 618, 484,
+ 0, 196, 221, 368, 0, 454, 288, 650, 618, 484,
613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
@@ -6016,12 +6027,12 @@ var yyAct = [...]int{
0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
- 0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
+ 1928, 204, 505, 0, 430, 0, 203, 0, 487, 252,
377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 2071, 507, 724,
+ 413, 498, 286, 0, 0, 0, 0, 0, 507, 724,
0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
@@ -6090,7 +6101,7 @@ var yyAct = [...]int{
0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
- 0, 1929, 204, 505, 0, 430, 0, 203, 0, 487,
+ 0, 1926, 204, 505, 0, 430, 0, 203, 0, 487,
252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6164,7 +6175,7 @@ var yyAct = [...]int{
316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
- 267, 0, 1927, 204, 505, 0, 430, 0, 203, 0,
+ 267, 0, 1924, 204, 505, 0, 430, 0, 203, 0,
487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6238,7 +6249,7 @@ var yyAct = [...]int{
577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
0, 0, 0, 0, 0, 270, 0, 0, 0, 0,
- 366, 267, 0, 1925, 204, 505, 0, 430, 0, 203,
+ 366, 267, 0, 1922, 204, 505, 0, 430, 0, 203,
0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6312,7 +6323,7 @@ var yyAct = [...]int{
576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
- 0, 366, 267, 0, 1923, 204, 505, 0, 430, 0,
+ 0, 366, 267, 0, 1920, 204, 505, 0, 430, 0,
203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6386,7 +6397,7 @@ var yyAct = [...]int{
376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
0, 0, 0, 0, 0, 0, 0, 270, 0, 0,
- 0, 0, 366, 267, 0, 1921, 204, 505, 0, 430,
+ 0, 0, 366, 267, 0, 1916, 204, 505, 0, 430,
0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
@@ -6460,7 +6471,7 @@ var yyAct = [...]int{
0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
- 0, 0, 0, 366, 267, 0, 1917, 204, 505, 0,
+ 0, 0, 0, 366, 267, 0, 1914, 204, 505, 0,
430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
@@ -6534,7 +6545,7 @@ var yyAct = [...]int{
396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
- 0, 0, 0, 0, 366, 267, 0, 1915, 204, 505,
+ 0, 0, 0, 0, 366, 267, 0, 1912, 204, 505,
0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
282, 273, 269, 250, 317, 385, 428, 518, 422, 0,
370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
@@ -6608,13 +6619,13 @@ var yyAct = [...]int{
433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 1913, 204,
+ 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 0, 507, 724, 0, 0,
+ 286, 0, 1887, 0, 0, 0, 507, 724, 0, 0,
0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
@@ -6682,13 +6693,13 @@ var yyAct = [...]int{
266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 0, 270, 0, 0, 0, 0, 366, 267, 0, 0,
+ 1784, 270, 0, 0, 0, 0, 366, 267, 0, 0,
204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 1888, 0, 0, 0, 507, 724, 0,
+ 498, 286, 0, 0, 0, 0, 0, 507, 194, 0,
0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
@@ -6756,13 +6767,13 @@ var yyAct = [...]int{
395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
- 0, 1785, 270, 0, 0, 0, 0, 366, 267, 0,
+ 0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 0, 507, 194,
+ 413, 498, 286, 0, 95, 0, 0, 0, 507, 959,
0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
@@ -6836,8 +6847,8 @@ var yyAct = [...]int{
428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 95, 0, 0, 0, 507,
- 959, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
+ 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
@@ -6851,7 +6862,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 402, 257,
+ 0, 0, 0, 0, 1456, 0, 297, 0, 402, 257,
0, 453, 0, 0, 0, 629, 0, 0, 0, 0,
0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
412, 461, 473, 0, 0, 0, 253, 0, 471, 426,
@@ -6896,7 +6907,7 @@ var yyAct = [...]int{
431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 300, 600,
+ 301, 302, 444, 445, 314, 315, 646, 647, 1455, 600,
633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
305, 320, 0, 617, 502, 227, 466, 290, 251, 0,
0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
@@ -6925,7 +6936,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1456, 0, 297, 0, 402,
+ 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
@@ -6963,14 +6974,14 @@ var yyAct = [...]int{
538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 0, 0, 0, 0, 0, 1049, 0, 0, 0, 198,
200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 1455,
+ 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
0, 0, 211, 246, 230, 259, 274, 277, 324, 391,
@@ -7000,7 +7011,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 0, 0, 0, 629, 0, 0,
+ 402, 257, 0, 453, 0, 675, 0, 629, 0, 0,
0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
@@ -7037,7 +7048,7 @@ var yyAct = [...]int{
550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1049, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
@@ -7059,7 +7070,7 @@ var yyAct = [...]int{
497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 194, 0, 0, 0, 0, 0, 0,
+ 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
@@ -7074,7 +7085,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 0, 675, 0, 629, 0,
+ 0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
0, 0, 0, 0, 0, 0, 365, 0, 330, 197,
225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
@@ -7114,7 +7125,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
+ 387, 388, 389, 4136, 410, 411, 414, 417, 418, 421,
423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
@@ -7188,7 +7199,7 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 4137, 410, 411, 414, 417, 418,
+ 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
@@ -7207,7 +7218,7 @@ var yyAct = [...]int{
0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 0, 0, 507, 724, 0, 0, 0, 0,
+ 0, 0, 0, 0, 507, 959, 0, 0, 0, 0,
0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
@@ -7281,7 +7292,7 @@ var yyAct = [...]int{
370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 0, 507, 959, 0, 0, 0,
+ 0, 0, 0, 0, 0, 507, 194, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
@@ -7346,105 +7357,30 @@ var yyAct = [...]int{
502, 227, 466, 290, 251, 0, 0, 211, 246, 230,
259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
- 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 0, 507, 194, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
- 0, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 0,
- 0, 0, 629, 0, 0, 0, 0, 0, 0, 0,
- 365, 0, 330, 197, 225, 0, 0, 412, 461, 473,
- 0, 0, 0, 253, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 199, 0, 0,
- 0, 0, 254, 255, 0, 575, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 0, 0, 0, 0, 0, 398, 0,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 0, 454, 288, 650, 618, 484, 613,
- 206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 0, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 0, 0, 376, 576, 577, 316,
+ 433, 0, 0, 376, 576, 577, 316,
}
var yyPact = [...]int{
- -1000, -1000, 4288, -1000, -548, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, 1925, -1000, -552, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, 2378, 2438, -1000, -1000, -1000, -1000, 2578, -1000, 993,
- 2027, -1000, 2363, 5078, -1000, 56487, 523, -1000, 53523, -453,
- 858, 217, 37221, -1000, 197, -1000, 185, 55005, 190, -1000,
- -1000, -1000, -1000, -453, 22401, 2260, 54, 53, 56487, -1000,
- -1000, -1000, -1000, -374, 2525, 1986, -1000, 406, -1000, -1000,
- -1000, -1000, -1000, -1000, 52782, -1000, 1086, -1000, -1000, 2375,
- 2360, 2240, 902, 2242, -1000, 2466, 1986, -1000, 22401, 2518,
- 2334, 21660, 21660, 462, -1000, -1000, 232, -1000, -1000, 32034,
- 56487, 40185, 281, -1000, 2363, -1000, -1000, -1000, 202, -1000,
- 360, 1906, -1000, 1905, -1000, 909, 875, 370, 860, 473,
- 369, 366, 365, 364, 363, 361, 359, 346, 383, -1000,
- 926, 926, -210, -211, 1338, 447, 445, 445, 1067, 478,
- 2336, 2332, -1000, -1000, 926, 926, 926, 341, 926, 926,
- 926, 926, 314, 312, 926, 926, 926, 926, 926, 926,
- 926, 926, 926, 926, 926, 926, 926, 926, 926, 926,
- 926, 932, 2363, 282, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, 2636, 2900, -1000, -1000, -1000, -1000, 2720, -1000, 1025,
+ 2152, -1000, 2517, 5041, -1000, 55856, 753, -1000, 52892, -454,
+ 877, 238, 36590, -1000, 177, -1000, 165, 54374, 169, -1000,
+ -1000, -1000, -1000, -454, 22511, 2360, 38, 37, 55856, -1000,
+ -1000, -1000, -1000, -373, 2674, 2129, -1000, 380, -1000, -1000,
+ -1000, -1000, -1000, -1000, 52151, -1000, 1229, -1000, -1000, 2522,
+ 2491, 2370, 943, 2372, -1000, 2590, 2129, -1000, 22511, 2666,
+ 2439, 21770, 21770, 467, -1000, -1000, 273, -1000, -1000, 31403,
+ 55856, 39554, 897, -1000, 2517, -1000, -1000, -1000, 212, -1000,
+ 349, 2043, -1000, 2039, -1000, 942, 1017, 408, 473, 466,
+ 405, 404, 394, 391, 389, 388, 386, 381, 385, -1000,
+ 974, 974, -236, -241, 1021, 454, 461, 461, 1048, 496,
+ 2473, 2463, -1000, -1000, 974, 974, 974, 360, 974, 974,
+ 974, 974, 303, 302, 974, 974, 974, 974, 974, 974,
+ 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
+ 974, 902, 2517, 266, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
@@ -7491,68 +7427,68 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, 56487, 188, 56487, -1000, 808, 516, -1000,
- -1000, -457, 1091, 1091, 84, 1091, 1091, 1091, 1091, 179,
- 939, 52, -1000, 178, 271, 175, 278, 1065, 172, -1000,
- -1000, 267, 1065, 1813, -1000, 911, 274, 191, -1000, 1091,
- 1091, -1000, 14967, 215, 14967, 14967, 269, 164, -1000, 2356,
- -1000, -1000, -1000, -1000, -1000, 1337, -1000, -1000, -1000, -1000,
- -23, 476, -1000, -1000, -1000, -1000, 55005, 52041, 212, -1000,
- -1000, 29, 1636, 1234, 22401, 1674, 885, -1000, -1000, 1584,
- 864, -1000, -1000, -1000, -1000, -1000, 797, -1000, 24624, 24624,
- 24624, 24624, -1000, -1000, 1904, 51300, 1904, 1904, 24624, 1904,
- 24624, 1904, 1904, 1904, 1904, 22401, 1904, 1904, 1904, 1904,
- -1000, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- -1000, -1000, -1000, -1000, 1904, 805, 1904, 1904, 1904, 1904,
- 1904, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1904, 1904,
- 1904, 1904, 1904, 1904, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, -1000, -1000, -1000,
- 1621, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 27588, 1541,
- 1540, 1539, -1000, 19437, 1904, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, 55856, 234, 55856, -1000, 821, 730, -1000,
+ -1000, -458, 1154, 1154, 80, 1154, 1154, 1154, 1154, 164,
+ 1008, 33, -1000, 160, 271, 149, 261, 1096, 798, -1000,
+ -1000, 252, 1096, 1852, -1000, 949, 259, 155, -1000, 1154,
+ 1154, -1000, 15077, 220, 15077, 15077, 256, 154, -1000, 2494,
+ -1000, -1000, -1000, -1000, -1000, 1381, -1000, -1000, -1000, -1000,
+ -36, 489, -1000, -1000, -1000, -1000, 54374, 51410, 290, -1000,
+ -1000, 30, 1958, 1395, 22511, 1420, 940, -1000, -1000, 1248,
+ 904, -1000, -1000, -1000, -1000, -1000, 783, -1000, 24734, 24734,
+ 24734, 24734, -1000, -1000, 2048, 50669, 2048, 2048, 24734, 2048,
+ 24734, 2048, 2048, 2048, 2048, 22511, 2048, 2048, 2048, 2048,
+ -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ -1000, -1000, -1000, -1000, 2048, 820, 2048, 2048, 2048, 2048,
+ 2048, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2048, 2048,
+ 2048, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, -1000,
+ 1591, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1583, 1540,
+ 1534, 1525, -1000, 19547, 2048, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, 56487, -1000, 1904, 219,
- 55005, 55005, 317, 1286, -1000, -1000, 2466, 1986, -1000, 2525,
- 2494, 406, -1000, 3898, 2151, 1553, 1378, 1986, 1877, 56487,
- -1000, 1927, -1000, -1000, -1000, -355, -358, 2175, 1423, 1812,
- -1000, -1000, -1000, -1000, 2693, 22401, -1000, -1000, 2559, -1000,
- 29070, 803, 2556, 50559, -1000, 462, 462, 1901, 429, 20,
- -1000, -1000, -1000, -1000, 952, 36480, -1000, -1000, -1000, -1000,
- -1000, 1811, 56487, -1000, -1000, 5491, 55005, -1000, 2022, -1000,
- 1809, -1000, 1952, 22401, 2028, 511, 55005, 493, 490, 482,
- 459, -62, -1000, -1000, -1000, -1000, -1000, -1000, 926, 926,
- 926, -1000, 381, 2510, 5078, 6391, -1000, -1000, -1000, 49818,
- 2021, 55005, -1000, 2013, -1000, 1021, 853, 892, 892, 55005,
- -1000, -1000, 55746, 55005, 1017, 1016, 55005, 55005, 55005, 55005,
- -1000, 49077, -1000, 48336, 47595, 1281, 55005, 46854, 46113, 45372,
- 44631, 43890, -1000, 2295, -1000, 2097, -1000, -1000, -1000, 55746,
- 55005, 55005, 55746, 55005, 55746, 56487, 55005, -1000, -1000, 343,
- -1000, -1000, 1266, 1265, 1262, 926, 926, 1257, 1800, 1794,
- 1792, 926, 926, 1254, 1776, 38703, 1764, 268, 1252, 1251,
- 1243, 1268, 1739, 257, 1726, 1241, 1195, 1239, 55005, 2011,
- 56487, -1000, 260, 1005, 428, 951, 2363, 2254, 1896, 475,
- 505, 55005, 450, 450, 55005, -1000, 15714, 56487, 235, -1000,
- 1714, 22401, -1000, 1089, 1065, 1065, -1000, -1000, -1000, -1000,
- -1000, -1000, 1091, 56487, 1089, -1000, -1000, -1000, 1065, 1091,
- 56487, 1091, 1091, 1091, 1091, 1065, 1065, 1065, 1091, 56487,
- 56487, 56487, 56487, 56487, 56487, 56487, 56487, 56487, 14967, 911,
- 1091, -459, -1000, 1709, -1000, -1000, -1000, 2127, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, 55856, -1000, 2048, 196,
+ 54374, 54374, 317, 1361, -1000, -1000, 2590, 2129, -1000, 2674,
+ 2662, 380, -1000, 3907, 2056, 1627, 1538, 2129, 2019, 55856,
+ -1000, 2052, -1000, -1000, -1000, -343, -355, 2294, 1519, 1848,
+ -1000, -1000, -1000, -1000, 2065, 22511, -1000, -1000, 2717, -1000,
+ 28439, 816, 2706, 49928, -1000, 467, 467, 2036, 427, -4,
+ -1000, -1000, -1000, -1000, 1006, 35849, -1000, -1000, -1000, -1000,
+ -1000, 1946, 55856, -1000, -1000, 4251, 54374, -1000, 2150, -1000,
+ 1934, -1000, 2102, 22511, 2174, 724, 54374, 515, 510, 506,
+ 468, -71, -1000, -1000, -1000, -1000, -1000, -1000, 974, 974,
+ 974, -1000, 372, 2658, 5041, 5724, -1000, -1000, -1000, 49187,
+ 2148, 54374, -1000, 2147, -1000, 1136, 835, 847, 847, 54374,
+ -1000, -1000, 55115, 54374, 1113, 1093, 54374, 54374, 54374, 54374,
+ -1000, 48446, -1000, 47705, 46964, 1359, 54374, 46223, 45482, 44741,
+ 44000, 43259, -1000, 2471, -1000, 2096, -1000, -1000, -1000, 55115,
+ 54374, 54374, 55115, 54374, 55115, 55856, 54374, -1000, -1000, 321,
+ -1000, -1000, 1354, 1344, 1338, 974, 974, 1337, 1825, 1823,
+ 1807, 974, 974, 1336, 1799, 38072, 1791, 260, 1332, 1314,
+ 1312, 1340, 1772, 282, 1761, 1333, 1309, 1310, 54374, 2144,
+ 55856, -1000, 243, 1023, 407, 1005, 2517, 2353, 2033, 481,
+ 528, 54374, 464, 464, 54374, -1000, 15824, 55856, 217, -1000,
+ 1736, 22511, -1000, 1103, 1096, 1096, -1000, -1000, -1000, -1000,
+ -1000, -1000, 1154, 55856, 1103, -1000, -1000, -1000, 1096, 1154,
+ 55856, 1154, 1154, 1154, 1154, 1096, 1096, 1096, 1154, 55856,
+ 55856, 55856, 55856, 55856, 55856, 55856, 55856, 55856, 15077, 949,
+ 1154, -459, -1000, 1721, -1000, -1000, -1000, 2256, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
@@ -7567,337 +7503,338 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14967, 14967,
- -1000, -1000, 2454, 2451, -1000, -1000, -1000, 1887, -1000, 180,
- 13, 182, -1000, 43149, 515, 950, -1000, 515, -1000, -1000,
- -1000, -1000, -1000, 1886, 42408, -1000, -460, -461, -462, -468,
- -1000, -1000, -1000, -470, -472, -1000, -1000, -1000, 22401, 22401,
- 22401, 22401, -250, -1000, 1208, 24624, 2396, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 22401, 262, 928, 24624, 24624, 24624,
- 24624, 24624, 24624, 24624, 26106, 25365, 24624, 24624, 24624, 24624,
- 24624, 24624, -1000, -1000, 34257, 4437, 4437, 864, 864, 864,
- 864, -1000, -173, 1884, 55746, -1000, -1000, -1000, 801, 22401,
- 22401, 864, -1000, 1269, 940, 19437, 22401, 22401, 22401, 22401,
- 931, 1234, 55746, 22401, -1000, 1378, -1000, -1000, -1000, -1000,
- 1169, -1000, -1000, 1032, 2307, 2307, 2307, 2307, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 2307, 22401,
- 1034, 1034, 1145, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 17955, 22401, 22401, 24624, 22401, 22401, 22401, 1378, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 1378, 22401,
- 1190, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 17208, 22401,
- 22401, 22401, 22401, 22401, -1000, -1000, -1000, -1000, -1000, -1000,
- 22401, 22401, 22401, 22401, 22401, 22401, 22401, 22401, 1378, 22401,
- 22401, 22401, 22401, 22401, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 1537, 1526, 1403, 22401, -1000,
- 1883, -1000, -200, 31293, 22401, 1706, 2554, 2053, 55005, -1000,
- -1000, -1000, -1000, 2466, -1000, 2466, 1537, 3661, 2178, 21660,
- -1000, -1000, 3661, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, 1841, -1000, 56487, 1877,
- 2431, 55005, -1000, -286, -1000, -289, 2173, 1703, 339, -1000,
- 22401, 22401, 1876, -1000, 1440, 56487, -1000, -250, -1000, 41667,
- -1000, -1000, 14220, 56487, 336, 56487, -1000, 30552, 40926, 300,
- -1000, 20, 1865, -1000, 26, 11, 18696, 862, -1000, -1000,
- -1000, 1338, 26847, 1817, 862, 109, -1000, -1000, -1000, 1952,
- -1000, 1952, 1952, 1952, 1952, 339, 339, 339, 339, -1000,
- -1000, -1000, -1000, -1000, 2007, 1952, 2004, -1000, 1952, 1952,
- 1952, 1952, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1998,
- 1998, 1998, 1995, 1995, 1957, 1957, 436, -1000, 22401, 408,
- 40185, 2444, 1238, 1505, 260, 459, 2052, 55005, 55005, 55005,
- 56487, 974, -1000, 1364, 1361, 1356, -1000, -533, 1875, -1000,
- -1000, 2509, -1000, -1000, 1028, 1048, 1041, 1049, 55005, 233,
- 331, -1000, 418, -1000, 40185, 55005, 1001, 892, 55005, -1000,
- 55005, -1000, -1000, -1000, -1000, -1000, 55005, -1000, -1000, 1874,
- -1000, 1888, 1128, 1035, 1095, 1011, 1874, -1000, -1000, -179,
- 1874, -1000, 1874, -1000, 1874, -1000, 1874, -1000, 1874, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 980, 328,
- -343, 55005, 233, 469, -1000, 468, 34257, -1000, -1000, -1000,
- 34257, 34257, -1000, -1000, -1000, -1000, 1692, 1663, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15077, 15077,
+ -1000, -1000, 2584, 2575, -1000, -1000, -1000, 2032, -1000, 163,
+ 5, 168, -1000, 42518, 513, 1004, -1000, 513, -1000, -1000,
+ -1000, -1000, -1000, 2027, 41777, -1000, -460, -461, -462, -463,
+ -1000, -1000, -1000, -464, -473, -1000, -1000, -1000, 22511, 22511,
+ 22511, 22511, -276, -1000, 1199, 24734, 2504, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 22511, 247, 991, 24734, 24734, 24734,
+ 24734, 24734, 24734, 24734, 26216, 25475, 24734, 24734, 24734, 24734,
+ 24734, 24734, -1000, -1000, 33626, 6276, 6276, 904, 904, 904,
+ 904, -1000, -186, 2022, 55115, -1000, -1000, -1000, 813, 22511,
+ 22511, 904, -1000, 1253, 1138, 19547, 22511, 22511, 22511, 22511,
+ 1011, 1395, 55115, 22511, -1000, 1538, -1000, -1000, -1000, -1000,
+ 1245, -1000, -1000, 1091, 2415, 2415, 2415, 2415, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 2415, 22511,
+ 148, 148, 719, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 18065, 22511, 22511, 24734, 22511, 22511, 22511, 1538, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511,
+ 1351, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 17318, 22511,
+ 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
+ 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511,
+ 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1638, 1518, 1544, 22511, -1000, 2020,
+ -1000, -200, 30662, 22511, 1691, 2695, 2185, 54374, -1000, -1000,
+ -1000, -1000, 2590, -1000, 2590, 1638, 3897, 2266, 21770, -1000,
+ -1000, 3897, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 1820, -1000, 55856, 2019, 2566,
+ 54374, -1000, -316, -1000, -321, 2296, 1687, 318, -1000, 22511,
+ 22511, 2016, -1000, 1698, 55856, -1000, -276, -1000, 41036, -1000,
+ -1000, 14330, 55856, 354, 55856, -1000, 29921, 40295, 319, -1000,
+ -4, 1996, -1000, 12, -2, 18806, 882, -1000, -1000, -1000,
+ 1021, 26957, 1950, 882, 83, -1000, -1000, -1000, 2102, -1000,
+ 2102, 2102, 2102, 2102, 318, 318, 318, 318, -1000, -1000,
+ -1000, -1000, -1000, 2142, 2102, 2137, -1000, 2102, 2102, 2102,
+ 2102, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2136, 2136,
+ 2136, 2134, 2134, 2106, 2106, 453, -1000, 22511, 435, 39554,
+ 2546, 1308, 1193, 243, 468, 2183, 54374, 54374, 54374, 55856,
+ 1052, -1000, 1408, 1404, 1380, -1000, -532, 2015, -1000, -1000,
+ 2656, -1000, -1000, 964, 1175, 1172, 893, 54374, 205, 328,
+ -1000, 440, -1000, 39554, 54374, 1087, 847, 54374, -1000, 54374,
+ -1000, -1000, -1000, -1000, -1000, 54374, -1000, -1000, 2014, -1000,
+ 2005, 1201, 1166, 1195, 1161, 2014, -1000, -1000, -194, 2014,
+ -1000, 2014, -1000, 2014, -1000, 2014, -1000, 2014, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 993, 286, -385,
+ 54374, 205, 480, -1000, 479, 33626, -1000, -1000, -1000, 33626,
+ 33626, -1000, -1000, -1000, -1000, 1656, 1643, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -522, 56487, -1000,
- 256, 949, 292, 299, 305, 56487, 354, 2327, 2325, 2324,
- 2317, 2304, 2299, 2291, 248, 311, 56487, 56487, 450, 2106,
- 56487, 2403, 56487, -1000, -1000, -1000, -1000, -1000, 1653, 1647,
- -1000, 1234, 56487, -1000, -1000, 1091, 1091, -1000, -1000, 56487,
- 1091, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1091,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 56487, -1000, -1000, -1000, -1000,
- 1630, -1000, 56487, -23, 169, -1000, -1000, 55005, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -109, -1000, 777,
- 21, 390, -1000, -1000, -1000, -1000, -1000, 2440, -1000, 1234,
- 999, 953, -1000, 1904, -1000, -1000, 1303, -1000, -1000, -1000,
- -1000, -1000, 1904, 1904, 1904, -1000, -1000, -1000, -1000, -1000,
- 262, 24624, 24624, 24624, 1596, 479, 1635, 1244, 1670, 1506,
- 1506, 1146, 24624, 1146, 24624, 863, 863, 863, 863, 863,
- -1000, -1000, -1000, -1000, -1000, -1000, 1621, -1000, 1616, -1000,
- 1904, 55746, 1774, 17208, 1552, 1264, 1378, 877, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -522, 55856, -1000, 228,
+ 998, 288, 315, 265, 55856, 367, 2469, 2438, 2433, 2432,
+ 2429, 2420, 2397, 241, 301, 55856, 55856, 464, 2240, 55856,
+ 2549, 55856, -1000, -1000, -1000, -1000, -1000, 1632, 1619, -1000,
+ 1395, 55856, -1000, -1000, 1154, 1154, -1000, -1000, 55856, 1154,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1154, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3572, 1378,
- 1636, 1378, 1769, 3539, 969, -1000, 22401, 1378, 3524, -1000,
- -1000, 1378, 1378, 22401, -1000, -1000, 22401, 22401, 22401, 22401,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 22401, 1505, 1873, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 55856, -1000, -1000, -1000, -1000, 1616,
+ -1000, 55856, -36, 161, -1000, -1000, 54374, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -119, -1000, 351, 8,
+ 378, -1000, -1000, -1000, -1000, -1000, 2570, -1000, 1395, 1127,
+ 1057, -1000, 2048, -1000, -1000, 1239, -1000, -1000, -1000, -1000,
+ -1000, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, 247,
+ 24734, 24734, 24734, 1630, 777, 1347, 1801, 1204, 1334, 1334,
+ 919, 24734, 919, 24734, 922, 922, 922, 922, 922, -1000,
+ -1000, -1000, -1000, -1000, -1000, 1591, -1000, 1589, -1000, 2048,
+ 55115, 1932, 17318, 2072, 1735, 1538, 931, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, 1870, 2549, 1529, 1505, 1505, 1505, 1505, 3505, 1505,
- 1505, 22401, 1477, -1000, -1000, -1000, 1377, 3495, 1344, 3490,
- 1505, 1505, -1000, 1505, 3486, 3481, 1378, 2689, 2684, 1505,
- 1505, 1505, 1505, 1505, 2680, 2676, 1505, 1505, 2668, 1505,
- 3477, 1505, 2657, 2615, 2589, 2585, 2566, 2560, 2548, 2521,
- 2483, 2479, 2460, 2452, 2448, 2443, 2413, 2398, 2344, 2333,
- 1505, 1505, 1505, 3473, 1505, 3466, 1505, 3459, 1505, 1505,
- 3454, 2329, 2323, 1378, 1866, -1000, 3434, 1505, 3425, 3415,
- 3411, 2316, 3405, 3396, 3391, 1505, 1505, 1505, 2312, 3386,
- 3379, 3369, 3349, 3281, 3071, 3064, 3060, 3049, 1505, 1403,
- 1403, 1403, 1403, 1403, 3044, -256, 1505, 1378, -1000, -1000,
- -1000, -1000, -1000, 3040, 2298, 3019, 3009, 3002, 2993, 1378,
- 1904, 796, -1000, -1000, 1403, 1378, 1378, 1403, 1403, 2969,
- 2958, 2951, 2940, 2928, 2924, 1505, 1505, -1000, 1505, 2887,
- 2811, 2280, 2250, 1378, -1000, 1403, 56487, -1000, -446, -1000,
- 22, 944, 1904, -1000, 38703, 1378, -1000, 5069, -1000, 1317,
- -1000, -1000, -1000, -1000, -1000, 35739, 1857, -1000, -1000, -1000,
- -1000, 1904, 1763, -1000, -1000, -1000, -1000, 339, 72, 34998,
- 857, 857, 124, 1234, 1234, 22401, -1000, -1000, -1000, -1000,
- -1000, -1000, 794, 2527, 387, 1904, -1000, 1895, 2899, -1000,
- -1000, -1000, 2429, 28329, -1000, -1000, 1904, 1904, 56487, 1846,
- 1845, -1000, 789, -1000, 1342, 1865, 20, -4, -1000, -1000,
- -1000, -1000, 1234, -1000, 1352, 345, 342, -1000, 435, -1000,
- -1000, -1000, -1000, 2278, 85, -1000, -1000, -1000, 322, 339,
- -1000, -1000, -1000, -1000, -1000, -1000, 1606, -1000, 1606, -1000,
- -1000, -1000, -1000, -1000, 1237, -1000, -1000, -1000, -1000, 1223,
- -1000, -1000, 1221, -1000, -1000, 2358, 2108, 408, -1000, -1000,
- 926, 1599, -1000, -1000, 2283, 926, 926, 55005, -1000, -1000,
- 1731, 2444, 256, 56487, 2100, -1000, 2052, 2052, 2052, -1000,
- 2392, -1000, -1000, -1000, -1000, -1000, -1000, -524, 163, 571,
- -1000, -1000, -1000, 5530, 55005, 1730, -1000, 229, -1000, 1651,
- -1000, 55005, -1000, 1702, 1988, 55005, 55005, -1000, -1000, -1000,
- 55005, 1904, -1000, -1000, -1000, -1000, 504, 2359, 330, -1000,
- -1000, -300, -1000, -1000, 233, 229, 55746, 55005, 862, -1000,
- -1000, -1000, -1000, -1000, -525, 1700, 480, 240, 488, 56487,
- 56487, 56487, 56487, 56487, 56487, 774, -1000, -1000, 37, -1000,
- -1000, 211, -1000, -1000, -1000, -1000, -1000, -1000, 211, -1000,
- -1000, -1000, -1000, -1000, 287, 465, -1000, 56487, 56487, 935,
- -1000, -1000, -1000, -1000, -1000, 1065, -1000, -1000, 1065, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3958, 1538, 1958,
+ 1538, 2351, 3939, 1053, -1000, 22511, 1538, 3935, -1000, -1000,
+ 1538, 1538, 22511, -1000, -1000, 22511, 22511, 22511, 22511, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 22511,
+ 1193, 2009, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, 2352, 56487, 0, -491, -1000, -488, 22401, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 1197, 477, 1635, 24624, 24624,
- 940, 940, 24624, -1000, -1000, -1000, 832, 832, 34257, -1000,
- 24624, 22401, -1000, -1000, 22401, 22401, 22401, 929, -1000, 22401,
- 1199, -1000, 22401, -1000, -256, 1403, 1505, 1505, 1505, 1505,
- -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
- 1894, -1000, 22401, 22401, 22401, 1378, 291, -1000, -1000, -1000,
- -256, 22401, -1000, -1000, 2547, -1000, 22401, -1000, 34257, 22401,
- 22401, 22401, -1000, -1000, -1000, 22401, 22401, -1000, -1000, 22401,
- -1000, 22401, -1000, -1000, -1000, -1000, -1000, -1000, 22401, -1000,
- 22401, -1000, -1000, -1000, 22401, -1000, 22401, -1000, -1000, 22401,
- -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401,
- -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401,
- -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401,
- -1000, 22401, -1000, 22401, -1000, -1000, -1000, 22401, -1000, 22401,
- -1000, 22401, -1000, -1000, 22401, -1000, 22401, -1000, 22401, -1000,
- 22401, 22401, -1000, 22401, 22401, 22401, -1000, 22401, 22401, 22401,
- 22401, -1000, -1000, -1000, -1000, 22401, 22401, 22401, 22401, 22401,
- 22401, 22401, 22401, 22401, 22401, -1000, -1000, -1000, -1000, -1000,
- -1000, 22401, -1000, 40185, 43, -256, 1190, 43, 1190, 23883,
- 812, 811, 23142, -1000, 22401, 16461, -1000, -1000, -1000, -1000,
- -1000, 22401, 22401, 22401, 22401, 22401, 22401, -1000, -1000, -1000,
- 22401, 22401, -1000, 22401, -1000, 22401, -1000, -1000, -1000, -1000,
- -1000, 944, -1000, 466, 464, 892, 55005, -1000, -1000, -1000,
- -1000, 1864, -1000, 2455, -1000, 2206, 2205, 2537, 2527, 21660,
- -1000, 30552, -1000, -1000, 55005, -408, -1000, 2247, 2369, 857,
- 857, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13473, 2466,
- 22401, 2092, 55746, 223, -1000, 29811, 55005, 55746, 30552, 30552,
- 30552, 30552, 30552, -1000, 2140, 2126, -1000, 2180, 2136, 2261,
- 56487, -1000, 1537, 1696, -1000, 22401, 32775, 1827, 30552, -1000,
- -1000, 30552, 56487, 12726, -1000, -1000, -3, -1, -1000, -1000,
- -1000, -1000, 1338, -1000, -1000, 1066, 2422, 2272, -1000, -1000,
- -1000, -1000, -1000, 1689, -1000, 1659, 1859, 1643, 1634, 328,
- -1000, 2005, 2349, 926, 926, -1000, 1219, -1000, 1269, 1597,
- 1585, -1000, -1000, -1000, 467, -1000, 56487, 2083, 2074, 2073,
- -1000, -540, 1217, 1985, 1941, 22401, 1979, 2507, 1851, 55005,
- -1000, -1000, 55746, -1000, 259, -1000, 408, 55005, -1000, -1000,
- -1000, 331, 56487, -1000, 8967, -1000, -1000, -1000, 229, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, 56487, 242, -1000, 1978,
- 1336, -1000, -1000, 2038, -1000, -1000, -1000, -1000, -1000, 213,
- 210, 1583, 195, 1569, 195, -1000, 56487, 927, 2108, 56487,
- -1000, -1000, -1000, 1091, 1091, -1000, -1000, 2343, -1000, 1269,
- 1505, 24624, 24624, -1000, 864, -1000, -1000, 510, -223, 1952,
- 1952, -1000, 1952, 1957, -1000, 1952, 154, 1952, 149, 1952,
- -1000, -1000, 1378, 1378, -1000, 1403, 2234, 1821, 2792, -1000,
- 1234, 22401, 2786, -1000, -1000, -256, -256, -256, -256, -256,
+ 2001, 2693, 1816, 1193, 1193, 1193, 1193, 3914, 1193, 1193,
+ 22511, 1839, -1000, -1000, -1000, 1460, 3905, 1586, 3606, 1193,
+ 1193, -1000, 1193, 3578, 3538, 1538, 2890, 2884, 1193, 1193,
+ 1193, 1193, 1193, 2869, 2859, 1193, 1193, 2823, 1193, 3523,
+ 1193, 2734, 2712, 2694, 2690, 2645, 2621, 2595, 2591, 2559,
+ 2527, 2488, 2483, 2478, 2456, 2452, 2447, 2412, 2343, 1193,
+ 1193, 1193, 3504, 1193, 3492, 1193, 3488, 1193, 1193, 3484,
+ 2338, 2333, 1538, 1999, -1000, 3480, 1193, 3476, 3472, 3465,
+ 2328, 3458, 3453, 3414, 1193, 1193, 1193, 2322, 3410, 3404,
+ 3395, 3390, 3385, 3378, 3367, 3348, 3281, 1193, 1544, 1544,
+ 1544, 1544, 1544, 3269, -280, 1193, 1538, -1000, -1000, -1000,
+ -1000, -1000, 3093, 2316, 3071, 3063, 3059, 3049, 1538, 2048,
+ 809, -1000, -1000, 1544, 1538, 1538, 1544, 1544, 3043, 3025,
+ 3009, 2993, 2956, 2948, 1193, 1193, -1000, 1193, 2939, 2927,
+ 2312, 2297, 1538, -1000, 1544, 55856, -1000, -453, -1000, -16,
+ 889, 2048, -1000, 38072, 1538, -1000, 5684, -1000, 1371, -1000,
+ -1000, -1000, -1000, -1000, 35108, 1911, -1000, -1000, -1000, -1000,
+ 2048, 1930, -1000, -1000, -1000, -1000, 318, 58, 34367, 876,
+ 876, 109, 1395, 1395, 22511, -1000, -1000, -1000, -1000, -1000,
+ -1000, 807, 2676, 371, 2048, -1000, 2011, 2757, -1000, -1000,
+ -1000, 2565, 27698, -1000, -1000, 2048, 2048, 55856, 1972, 1937,
+ -1000, 803, -1000, 1300, 1996, -4, -8, -1000, -1000, -1000,
+ -1000, 1395, -1000, 1376, 357, 359, -1000, 443, -1000, -1000,
+ -1000, -1000, 2387, 70, -1000, -1000, -1000, 332, 318, -1000,
+ -1000, -1000, -1000, -1000, -1000, 1587, -1000, 1587, -1000, -1000,
+ -1000, -1000, -1000, 1305, -1000, -1000, -1000, -1000, 1304, -1000,
+ -1000, 1303, -1000, -1000, 2379, 2227, 435, -1000, -1000, 974,
+ 1585, -1000, -1000, 2391, 974, 974, 54374, -1000, -1000, 1896,
+ 2546, 228, 55856, 2239, -1000, 2183, 2183, 2183, -1000, 2537,
+ -1000, -1000, -1000, -1000, -1000, -1000, -524, 175, 361, -1000,
+ -1000, -1000, 2041, 54374, 1900, -1000, 214, -1000, 1878, -1000,
+ 54374, -1000, 1877, 2128, 54374, 54374, -1000, -1000, -1000, 54374,
+ 2048, -1000, -1000, -1000, -1000, 523, 2516, 314, -1000, -1000,
+ -300, -1000, -1000, 205, 214, 55115, 54374, 882, -1000, -1000,
+ -1000, -1000, -1000, -525, 1862, 502, 225, 574, 55856, 55856,
+ 55856, 55856, 55856, 55856, 778, -1000, -1000, 23, -1000, -1000,
+ 191, -1000, -1000, -1000, -1000, -1000, -1000, 191, -1000, -1000,
+ -1000, -1000, -1000, 283, 478, -1000, 55856, 55856, 945, -1000,
+ -1000, -1000, -1000, -1000, 1096, -1000, -1000, 1096, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -69, 2765, 2720, 1505, -1000, 1951, 1950, -1000, 1505, 22401,
- 1505, 1378, 2225, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 2204, 2200, 2170, 2162, 2156,
- 2150, 2139, 2130, 2122, 2117, 2109, 2084, 2075, 2068, 2054,
- 2040, 1505, 1505, 2023, 1505, 1974, 1959, -1000, 1234, 1403,
- 2713, 1403, 1505, 1505, 2703, 306, 1505, 1628, 1628, 1628,
- 1628, 1628, 1403, 1403, 1403, 1403, 1505, 55005, -1000, -256,
- -1000, -1000, -325, -327, -1000, 1378, -256, 1855, 24624, 1505,
- 24624, 24624, 24624, 1505, 1378, -1000, 1954, 1945, 2647, 1936,
- 1505, 2044, 1505, 1505, 1505, 1929, -1000, 2435, 1904, 2435,
- 1904, 2435, 1568, 1317, 56487, -1000, -1000, -1000, -1000, 2527,
- 2486, -1000, 1854, -1000, 72, 599, -1000, 2210, 2369, -1000,
- 2506, 2233, 2505, -1000, -1000, -1000, -1000, -1000, 1234, -1000,
- 2366, 1858, -1000, 948, 1839, -1000, -1000, 20919, 1605, 2198,
- 785, 1568, 1893, 2899, 2047, 2072, 3365, -1000, -1000, -1000,
- -1000, 2119, -1000, 2107, -1000, -1000, 1927, -1000, 2000, 336,
- 30552, 1890, 1890, -1000, 781, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, 1083, 8967, 2567, -1000, 1557, -1000, 1343, 203,
- 1214, -1000, -1000, 926, 926, -1000, 996, 994, -1000, 56487,
- 1948, -1000, 339, 1546, 339, 1206, -1000, -1000, 1200, -1000,
- -1000, -1000, -1000, 1903, 2255, -1000, -1000, -1000, -1000, 56487,
- -1000, 56487, 56487, 56487, 1939, 2503, -1000, 22401, 1935, 934,
- 2348, 55005, 55005, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 421, 926, -504, 302, 301, 926,
- 926, 926, -543, -1000, -1000, 1566, 1544, -1000, -208, -1000,
- 22401, -1000, -1000, -1000, -1000, -1000, 1180, 1180, 1541, 1540,
- 1539, -1000, 1927, -1000, -1000, -1000, 1629, -1000, -1000, -185,
- 55005, 55005, 55005, 55005, -1000, -1000, -1000, 1114, -1000, -1000,
+ 2484, 55856, 4, -491, -1000, -488, 22511, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1307, 482, 1347, 24734, 24734, 1138,
+ 1138, 24734, -1000, -1000, -1000, 1149, 1149, 33626, -1000, 24734,
+ 22511, -1000, -1000, 22511, 22511, 22511, 1010, -1000, 22511, 1295,
+ -1000, 22511, -1000, -280, 1544, 1193, 1193, 1193, 1193, -280,
+ -280, -280, -280, -280, -280, -280, -280, -280, -280, 1976,
+ -1000, 22511, 22511, 22511, 1538, 295, -1000, -1000, -1000, -280,
+ 22511, -1000, -1000, 2692, -1000, 22511, -1000, 33626, 22511, 22511,
+ 22511, -1000, -1000, -1000, 22511, 22511, -1000, -1000, 22511, -1000,
+ 22511, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511,
+ -1000, -1000, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000,
+ 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
+ 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
+ 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
+ 22511, -1000, 22511, -1000, -1000, -1000, 22511, -1000, 22511, -1000,
+ 22511, -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
+ 22511, -1000, 22511, 22511, 22511, -1000, 22511, 22511, 22511, 22511,
+ -1000, -1000, -1000, -1000, 22511, 22511, 22511, 22511, 22511, 22511,
+ 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
+ 22511, -1000, 39554, 0, -280, 1351, 0, 1351, 23993, 823,
+ 784, 23252, -1000, 22511, 16571, -1000, -1000, -1000, -1000, -1000,
+ 22511, 22511, 22511, 22511, 22511, 22511, -1000, -1000, -1000, 22511,
+ 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000, -1000, -1000,
+ 889, -1000, 458, 456, 847, 54374, -1000, -1000, -1000, -1000,
+ 1989, -1000, 2609, -1000, 2317, 2313, 2684, 2676, 21770, -1000,
+ 29921, -1000, -1000, 54374, -442, -1000, 2354, 2401, 876, 876,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13583, 2590, 22511,
+ 2221, 55115, 223, -1000, 29180, 54374, 55115, 29921, 29921, 29921,
+ 29921, 29921, -1000, 2255, 2252, -1000, 2264, 2263, 2582, 55856,
+ -1000, 1638, 1845, -1000, 22511, 32144, 1936, 29921, -1000, -1000,
+ 29921, 55856, 12836, -1000, -1000, 2, -21, -1000, -1000, -1000,
+ -1000, 1021, -1000, -1000, 1225, 2562, 2375, -1000, -1000, -1000,
+ -1000, -1000, 1813, -1000, 1777, 1986, 1769, 1753, 286, -1000,
+ 2172, 2479, 974, 974, -1000, 1301, -1000, 1253, 1584, 1567,
+ -1000, -1000, -1000, 499, -1000, 55856, 2220, 2217, 2213, -1000,
+ -539, 1299, 2124, 2171, 22511, 2120, 2652, 1968, 54374, -1000,
+ -1000, 55115, -1000, 272, -1000, 435, 54374, -1000, -1000, -1000,
+ 328, 55856, -1000, 5160, -1000, -1000, -1000, 214, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 55856, 242, -1000, 2115, 1374,
+ -1000, -1000, 2179, -1000, -1000, -1000, -1000, -1000, 188, 187,
+ 1563, 184, 1557, 184, -1000, 55856, 873, 2227, 55856, -1000,
+ -1000, -1000, 1154, 1154, -1000, -1000, 2422, -1000, 1253, 1193,
+ 24734, 24734, -1000, 904, -1000, -1000, 409, -258, 2102, 2102,
+ -1000, 2102, 2106, -1000, 2102, 144, 2102, 138, 2102, -1000,
+ -1000, 1538, 1538, -1000, 1544, 2293, 1555, 2923, -1000, 1395,
+ 22511, 2819, -1000, -1000, -280, -280, -280, -280, -280, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -82,
+ 2719, 2699, 1193, -1000, 2101, 2100, -1000, 1193, 22511, 1193,
+ 1538, 2249, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 2232, 2226, 2222, 2218, 2203, 2180,
+ 2155, 2138, 2117, 2085, 2053, 2037, 2030, 2017, 2002, 1964,
+ 1193, 1193, 1953, 1193, 1928, 1918, -1000, 1395, 1544, 2551,
+ 1544, 1193, 1193, 2521, 306, 1193, 1749, 1749, 1749, 1749,
+ 1749, 1544, 1544, 1544, 1544, 1193, 54374, -1000, -280, -1000,
+ -1000, -332, -383, -1000, 1538, -280, 1970, 24734, 1193, 24734,
+ 24734, 24734, 1193, 1538, -1000, 1796, 1775, 2508, 1771, 1193,
+ 2460, 1193, 1193, 1193, 1759, -1000, 2561, 2048, 2561, 2048,
+ 2561, 1741, 1371, 55856, -1000, -1000, -1000, -1000, 2676, 2673,
+ -1000, 1969, -1000, 58, 622, -1000, 2331, 2401, -1000, 2647,
+ 2346, 2646, -1000, -1000, -1000, -1000, -1000, 1395, -1000, 2509,
+ 1915, -1000, 979, 1949, -1000, -1000, 21029, 1745, 2307, 800,
+ 1741, 1998, 2757, 2181, 2211, 3075, -1000, -1000, -1000, -1000,
+ 2237, -1000, 2228, -1000, -1000, 2052, -1000, 2417, 354, 29921,
+ 1944, 1944, -1000, 799, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, 1207, 5160, 2736, -1000, 1552, -1000, 1373, 194, 1293,
+ -1000, -1000, 974, 974, -1000, 1085, 1083, -1000, 55856, 2099,
+ -1000, 318, 1545, 318, 1290, -1000, -1000, 1276, -1000, -1000,
+ -1000, -1000, 2045, 2451, -1000, -1000, -1000, -1000, 55856, -1000,
+ 55856, 55856, 55856, 2069, 2644, -1000, 22511, 2068, 976, 2347,
+ 54374, 54374, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, 442, 974, -503, 289, 287, 974, 974,
+ 974, -543, -1000, -1000, 1728, 1726, -1000, -219, -1000, 22511,
+ -1000, -1000, -1000, -1000, -1000, 1272, 1272, 1540, 1534, 1525,
+ -1000, 2052, -1000, -1000, -1000, 1873, -1000, -1000, -198, 54374,
+ 54374, 54374, 54374, -1000, -1000, -1000, 1252, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 904,
+ 1538, 344, -203, 1538, -1000, -1000, 318, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511,
+ -1000, 22511, 1395, 22511, -1000, -1000, -1000, -1000, -1000, 2590,
+ 1522, 22511, 22511, -1000, 1275, 1268, -280, 1193, -1000, -1000,
+ -1000, 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511, -1000, 22511,
+ -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
+ -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
+ -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000,
+ -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000,
+ 22511, 203, 1149, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1538, 346, -1000, -1000, -1000, 2679,
+ -1000, 1538, 22511, 1138, -1000, 1138, 1138, 1138, -1000, -1000,
+ -1000, 22511, -1000, 22511, 22511, -1000, 22511, -1000, 22511, -1000,
+ -1000, -1000, -1000, 22511, 2048, 2332, 38813, 2048, 38813, 2048,
+ 32144, -1000, -1000, 2673, 2669, 2643, 2337, 2340, 2340, 2331,
+ -1000, 2635, 2627, -1000, 1520, 2623, 1497, 1076, -1000, 55115,
+ 22511, -1000, 223, 38072, -1000, 384, 54374, 223, 54374, -1000,
+ 2610, -1000, -1000, 22511, 2061, -1000, 22511, -1000, -1000, -1000,
+ -1000, 6276, 2676, 1944, -1000, -1000, 928, -1000, 22511, -1000,
+ 10932, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1495,
+ 1485, -1000, -1000, 2057, 22511, -1000, -1000, -1000, 1742, 1729,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2052, -1000,
+ -1000, -1000, -1000, 328, -535, 2212, 54374, 1260, -1000, 1706,
+ 1968, 310, 223, 1467, 974, 974, 974, 1257, 1255, 38072,
+ 1699, -1000, 54374, 425, -1000, 328, -1000, -242, -244, 1193,
+ -1000, -1000, 2560, -1000, -1000, 16571, -1000, -1000, 2051, 2182,
+ -1000, -1000, -1000, -1000, 2292, -190, -227, -1000, -1000, 1193,
+ 1193, 1193, 1751, 1538, -1000, 1193, 1193, 1681, 1610, -1000,
+ -1000, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1544, 1708, -1000, 203, 1538, 2202, -1000, -1000, 6276,
+ -1000, -1000, 2610, 2622, 0, -1000, -1000, 221, 0, 1395,
+ 1019, 1538, 1538, 1019, 1680, 1193, 1635, 1560, 1193, 1193,
+ 32885, -1000, 2619, 2603, 1686, -1000, -1000, 38813, 1686, 38813,
+ 889, 2669, -290, 22511, 22511, 2335, 1269, -1000, -1000, -1000,
+ -1000, 1455, 1451, -1000, 1447, -1000, 2727, -1000, 1395, -1000,
+ 2048, 223, -1000, 794, 1949, -1000, 2590, 1395, 54374, 1395,
+ 54, 2610, -1000, 1193, -1000, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
+ 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, 54374, 1570,
+ -1000, -1000, 2554, 1696, 166, -1000, 1549, 1968, -1000, -1000,
+ 216, -1000, 22511, -1000, 38072, 1426, 1385, -1000, -1000, -1000,
+ -1000, -543, -1000, -1000, -1000, -1000, -1000, -1000, 380, 1966,
+ -1000, 959, 54374, 55856, -1000, 2282, -1000, -1000, -1000, -1000,
+ 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- 864, 1378, 344, -191, 1378, -1000, -1000, 339, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22401, -1000,
- 22401, -1000, 22401, 1234, 22401, -1000, -1000, -1000, -1000, -1000,
- 2466, 1533, 22401, 22401, -1000, 1193, 1188, -256, 1505, -1000,
- -1000, -1000, 22401, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, 22401, -1000, 22401, -1000,
- 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000,
- 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000,
- 22401, -1000, 22401, -1000, 22401, -1000, 22401, -1000, -1000, 22401,
- -1000, -1000, -1000, 22401, -1000, 22401, -1000, 22401, -1000, -1000,
- -1000, 22401, 264, 832, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 1378, 333, -1000, -1000, -1000,
- 2532, -1000, 1378, 22401, 940, -1000, 940, 940, 940, -1000,
- -1000, -1000, 22401, -1000, 22401, 22401, -1000, 22401, -1000, 22401,
- -1000, -1000, -1000, -1000, 22401, 1904, 2212, 39444, 1904, 39444,
- 1904, 32775, -1000, -1000, 2486, 2522, 2499, 2220, 2223, 2223,
- 2210, -1000, 2498, 2489, -1000, 1502, 2485, 1485, 954, -1000,
- 55746, 22401, -1000, 223, 38703, -1000, 401, 55005, 223, 55005,
- -1000, 2480, -1000, -1000, 22401, 1934, -1000, 22401, -1000, -1000,
- -1000, -1000, 4437, 2527, 1890, -1000, -1000, 873, -1000, 22401,
- -1000, 10484, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- 1483, 1469, -1000, -1000, 1933, 22401, -1000, -1000, -1000, 1538,
- 1527, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1927,
- -1000, -1000, -1000, -1000, 331, -529, 2216, 55005, 1130, -1000,
- 1501, 1851, 310, 223, 1467, 926, 926, 926, 1126, 1123,
- 38703, 1494, -1000, 55005, 409, -1000, 331, -1000, -216, -217,
- 1505, -1000, -1000, 2420, -1000, -1000, 16461, -1000, -1000, 1920,
- 2049, -1000, -1000, -1000, -1000, 2157, -176, -194, -1000, -1000,
- 1505, 1505, 1505, 1388, 1378, -1000, 1505, 1505, 1491, 1475,
- -1000, -1000, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
- 1505, 1505, 1403, 1868, -1000, 264, 1378, 2067, -1000, -1000,
- 4437, -1000, -1000, 2480, 2484, 43, -1000, -1000, 225, 43,
- 1234, 960, 1378, 1378, 960, 1832, 1505, 1738, 1713, 1505,
- 1505, 33516, -1000, 2470, 2469, 1457, -1000, -1000, 39444, 1457,
- 39444, 944, 2522, -267, 22401, 22401, 2214, 1147, -1000, -1000,
- -1000, -1000, 1465, 1444, -1000, 1410, -1000, 2565, -1000, 1234,
- -1000, 1904, 223, -1000, 545, 1839, -1000, 2466, 1234, 55005,
- 1234, 73, 2480, -1000, 1505, -1000, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
- 1904, 1904, 1904, 1904, 1904, 1904, 1904, -1000, -1000, 55005,
- 2031, -1000, -1000, 2415, 1474, 162, -1000, 1454, 1851, -1000,
- -1000, 221, -1000, 22401, -1000, 38703, 1398, 1355, -1000, -1000,
- -1000, -1000, -543, -1000, -1000, -1000, -1000, -1000, -1000, 406,
- 1848, -1000, 924, 55005, 56487, -1000, 2154, -1000, -1000, -1000,
- -1000, 22401, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22401,
- -1000, 1378, 2063, -1000, -363, -1000, -505, 22401, -256, -1000,
- -1000, -256, -1000, -1000, -1000, -1000, -1000, 22401, -1000, -1000,
- 22401, -1000, 22401, -1000, -1000, 1457, -1000, -1000, -1000, 37962,
- -1000, 1457, -1000, 1457, -1000, -267, -1000, 1830, -1000, 55005,
- 1234, 332, -1000, 1142, -1000, -1000, -1000, -1000, -1000, 55746,
- 55005, 1839, 55005, -1000, -1000, 1453, 1378, 1904, 2466, -1000,
- 1449, -1000, 406, -1000, 1916, 1941, -1000, -1000, -1000, 20178,
- -1000, -1000, -1000, -1000, -1000, 239, -184, 16461, 11979, 1438,
- -1000, -182, 1505, 1403, -1000, -477, -1000, -1000, -1000, -1000,
- 280, -1000, -1000, 1636, -1000, -1000, 1650, 1560, 1556, -1000,
- -1000, -1000, -1000, -1000, -1000, -267, -1000, -1000, 2406, -1000,
- -219, -1000, -1000, 1503, 1386, -1000, -1000, -1000, 32775, 54264,
- -1000, -171, 410, -184, 22401, 1910, 1378, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -48, -1000, -1000, 527, -1000,
- -1000, -1000, 2038, -192, -1000, -1000, -1000, 290, -495, -296,
- -297, 24624, -1000, 22401, -1000, 22401, -1000, 22401, -1000, 55005,
- 1904, -1000, -1000, -1000, 1383, -1000, 5057, -341, 2062, -1000,
- -111, -1000, -1000, -1000, 1079, 1351, -1000, -1000, -1000, -1000,
- -1000, -1000, 2014, 55005, -1000, 420, -1000, -1000, 15714, -185,
- -195, 941, -1000, -1000, -1000, -1000, -1000, 940, 1490, 1472,
- 1505, -1000, 55005, -1000, 54264, -332, 862, 4437, -1000, 2061,
- 2057, 2543, -1000, -1000, -1000, -1000, -1000, -1000, -545, 1369,
- 261, -1000, -1000, -1000, 290, -309, -1000, 22401, -1000, 22401,
- -1000, 1378, -1000, -1000, 2382, 73, -1000, 2562, -1000, 2544,
- 1040, 1040, -1000, 1109, -545, -1000, -1000, -1000, -1000, 1505,
- 1505, -1000, -349, -1000, -1000, -1000, -1000, -1000, 417, 1171,
- -1000, -1000, -1000, -1000, -1000, 4437, -1000, -1000, -1000, 285,
- 285, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000,
+ 1538, 2200, -1000, -377, -1000, -504, 22511, -280, -1000, -1000,
+ -280, -1000, -1000, -1000, -1000, -1000, 22511, -1000, -1000, 22511,
+ -1000, 22511, -1000, -1000, 1686, -1000, -1000, -1000, 37331, -1000,
+ 1686, -1000, 1686, -1000, -290, -1000, 1963, -1000, 54374, 1395,
+ 375, -1000, 1267, -1000, -1000, -1000, -1000, -1000, 55115, 54374,
+ 1949, 54374, -1000, -1000, 1684, 1538, 2048, 2590, -1000, 1660,
+ -1000, 380, -1000, 2050, 2171, -1000, -1000, -1000, 20288, -1000,
+ -1000, -1000, -1000, -1000, 262, -197, 16571, 12089, 1609, -1000,
+ -196, 1193, 1544, -1000, -477, -1000, -1000, -1000, -1000, 279,
+ -1000, -1000, 1958, -1000, -1000, 1548, 1537, 1475, -1000, -1000,
+ -1000, -1000, -1000, -1000, -290, -1000, -1000, 2553, -1000, -254,
+ -1000, -1000, 1952, 1529, -1000, -1000, -1000, 32144, 53633, -1000,
+ -184, 382, -197, 22511, 2049, 1538, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -39, -1000, -1000, 772, -1000, -1000,
+ -1000, 2179, -216, -1000, -1000, -1000, 307, -494, -288, -296,
+ 24734, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 54374, 2048,
+ -1000, -1000, -1000, 1483, -1000, 4202, -401, 2195, -1000, -145,
+ -1000, -1000, -1000, 1203, 1364, -1000, -1000, -1000, -1000, -1000,
+ -1000, 1414, 54374, -1000, 436, -1000, -1000, 15824, -198, -233,
+ 1020, -1000, -1000, -1000, -1000, -1000, 1138, 1466, 1357, 1193,
+ -1000, 54374, -1000, 53633, -395, 882, 6276, -1000, 2193, 2190,
+ 2704, -1000, -1000, -1000, -1000, -1000, -1000, -549, 1464, 244,
+ -1000, -1000, -1000, 307, -314, -1000, 22511, -1000, 22511, -1000,
+ 1538, -1000, -1000, 2535, 54, -1000, 2724, -1000, 2691, 1031,
+ 1031, -1000, 1242, -549, -1000, -1000, -1000, -1000, 1193, 1193,
+ -1000, -403, -1000, -1000, -1000, -1000, -1000, 433, 1281, -1000,
+ -1000, -1000, -1000, -1000, 6276, -1000, -1000, -1000, 204, 204,
+ -1000, -1000,
}
var yyPgo = [...]int{
- 0, 3177, 3171, 31, 7, 40, 39, 3170, 3168, 3166,
- 164, 3163, 3161, 3159, 3154, 3153, 3152, 2627, 2611, 2597,
- 3151, 3150, 3147, 3144, 3143, 3142, 3141, 3139, 3138, 27,
- 96, 100, 111, 225, 192, 3137, 171, 156, 198, 3129,
- 3127, 3118, 116, 181, 81, 83, 191, 3117, 3116, 68,
- 3112, 3110, 3109, 180, 179, 177, 1061, 3108, 178, 114,
- 47, 3102, 3100, 3099, 3092, 3090, 3088, 3087, 3085, 3082,
- 3078, 3076, 3072, 3071, 3070, 3069, 3066, 3060, 3059, 292,
- 3056, 3055, 16, 3052, 73, 3051, 3050, 3049, 3039, 3038,
- 9, 3037, 3033, 32, 41, 55, 3031, 3030, 44, 3029,
- 3028, 3027, 3026, 3025, 79, 3016, 14, 3015, 35, 3014,
- 3011, 125, 2994, 2988, 2987, 42, 2986, 2984, 2982, 11,
- 163, 2979, 2968, 137, 2957, 2952, 2951, 165, 200, 2949,
- 2202, 2946, 93, 2940, 2931, 2929, 160, 189, 2926, 120,
- 2925, 2924, 2923, 148, 2916, 3301, 2914, 2908, 62, 80,
- 168, 2905, 2898, 201, 72, 8, 2897, 22, 23, 2895,
- 2893, 67, 61, 2892, 98, 2890, 2889, 97, 99, 2886,
- 110, 90, 2884, 2880, 10, 5, 2877, 1, 4, 2,
- 115, 2874, 2871, 108, 2870, 2867, 2864, 94, 2863, 2860,
- 6960, 2855, 87, 129, 104, 64, 2854, 170, 172, 2852,
- 2851, 2850, 2847, 2838, 2834, 49, 2830, 2828, 2827, 134,
- 1270, 113, 2826, 145, 352, 51, 146, 2825, 193, 75,
- 196, 161, 2822, 2818, 133, 132, 2808, 2807, 53, 166,
- 197, 2805, 95, 128, 119, 183, 92, 130, 2804, 2798,
- 59, 58, 2795, 2794, 2793, 2792, 162, 2791, 2788, 63,
- 2787, 56, 2784, 187, 2783, 340, 77, 2782, 185, 169,
- 2779, 66, 2778, 2775, 85, 101, 57, 29, 2774, 154,
- 158, 126, 167, 2767, 2766, 52, 2763, 2762, 2761, 195,
- 293, 2760, 2759, 323, 175, 140, 144, 82, 2756, 321,
- 2755, 2752, 2749, 19, 4427, 6727, 182, 17, 159, 2748,
- 2747, 7891, 48, 43, 13, 2737, 211, 2736, 194, 2725,
- 2723, 2720, 210, 209, 102, 155, 54, 2714, 2710, 2708,
- 2705, 71, 2699, 2696, 2695, 2694, 2692, 2691, 38, 37,
- 36, 70, 228, 60, 25, 89, 157, 152, 65, 2690,
- 2689, 2687, 123, 78, 2683, 153, 149, 124, 105, 2679,
- 176, 141, 118, 2678, 91, 34, 2675, 2673, 2671, 2670,
- 84, 2668, 2667, 2666, 2665, 151, 142, 121, 74, 2664,
- 76, 117, 147, 143, 50, 2660, 45, 2659, 2658, 33,
- 190, 28, 2650, 21, 106, 112, 2649, 6390, 2648, 12,
- 331, 150, 2647, 2646, 15, 18, 6, 2643, 2642, 2641,
- 2637, 131, 2633, 2628, 2622, 2620, 26, 46, 24, 20,
- 109, 136, 69, 2612, 2610, 139, 2606, 2602, 2590, 0,
- 1040, 127, 2585, 202,
+ 0, 3435, 3430, 31, 7, 40, 39, 3428, 3426, 3423,
+ 171, 3421, 3420, 3419, 3411, 3410, 3407, 2789, 2782, 2755,
+ 3406, 3404, 3400, 3393, 3392, 3391, 3390, 3383, 3381, 27,
+ 114, 100, 101, 212, 192, 3380, 169, 161, 198, 3378,
+ 3373, 3372, 125, 182, 82, 81, 187, 3370, 3369, 68,
+ 3368, 3353, 3284, 180, 179, 177, 1100, 3282, 176, 111,
+ 47, 3279, 3277, 3275, 3274, 3268, 3261, 3260, 3258, 3257,
+ 3256, 3254, 3252, 3251, 3247, 3244, 3242, 3240, 3229, 308,
+ 3228, 3225, 16, 3223, 73, 3220, 3213, 3210, 3208, 3206,
+ 9, 3203, 3201, 32, 41, 55, 3197, 3195, 44, 3194,
+ 3193, 3192, 3191, 3187, 79, 3185, 14, 3184, 35, 3183,
+ 3179, 124, 3177, 3176, 3174, 42, 3173, 3171, 3170, 11,
+ 162, 3169, 3166, 138, 3163, 3158, 3147, 164, 221, 3144,
+ 2357, 3143, 93, 3142, 3141, 3140, 160, 191, 3138, 120,
+ 3137, 3136, 3135, 148, 3128, 3300, 3126, 3124, 67, 62,
+ 168, 3123, 3117, 201, 80, 8, 3116, 22, 23, 3115,
+ 3114, 72, 61, 3113, 98, 3110, 3108, 94, 99, 3107,
+ 109, 90, 3106, 3099, 10, 5, 3098, 1, 4, 2,
+ 115, 3091, 3088, 108, 3087, 3086, 3084, 97, 3081, 3077,
+ 4382, 3071, 83, 129, 96, 64, 3070, 170, 165, 3069,
+ 3068, 3065, 3064, 3059, 3058, 49, 3054, 3051, 3050, 136,
+ 1270, 116, 3049, 145, 352, 51, 146, 3048, 193, 75,
+ 3042, 163, 3041, 3038, 133, 132, 3031, 3030, 53, 166,
+ 197, 3028, 92, 128, 117, 183, 91, 130, 3027, 3026,
+ 59, 58, 3011, 3008, 2993, 2985, 167, 2983, 2982, 63,
+ 2977, 56, 2973, 195, 2967, 340, 77, 2964, 185, 158,
+ 2963, 66, 2949, 2948, 85, 95, 57, 29, 2946, 153,
+ 159, 126, 178, 2945, 2944, 52, 2941, 2939, 2938, 190,
+ 319, 2930, 2928, 323, 174, 140, 144, 87, 2925, 266,
+ 2923, 2917, 2913, 19, 5078, 7104, 181, 17, 155, 2912,
+ 2904, 8002, 48, 43, 13, 2897, 211, 2896, 194, 2892,
+ 2891, 2881, 203, 208, 105, 156, 54, 2880, 2879, 2878,
+ 2876, 71, 2870, 2869, 2866, 2862, 2860, 2859, 38, 37,
+ 36, 70, 196, 60, 25, 89, 154, 149, 65, 2858,
+ 2857, 2851, 121, 78, 2848, 152, 151, 123, 104, 2844,
+ 175, 141, 118, 2841, 102, 34, 2837, 2829, 2828, 2826,
+ 84, 2825, 2824, 2822, 2821, 150, 142, 119, 74, 2820,
+ 76, 113, 147, 143, 50, 2817, 45, 2814, 2812, 33,
+ 184, 28, 2811, 21, 106, 110, 2807, 6623, 2805, 12,
+ 265, 157, 2804, 2802, 15, 18, 6, 2799, 2797, 2794,
+ 2793, 131, 2788, 2784, 2783, 2775, 26, 46, 24, 20,
+ 112, 137, 69, 2773, 2761, 139, 2760, 2759, 2754, 0,
+ 1040, 127, 2722, 204,
}
-//line sql.y:8759
+//line sql.y:8755
type yySymType struct {
union any
empty struct{}
@@ -8621,99 +8558,99 @@ var yyR1 = [...]int{
239, 239, 239, 239, 239, 239, 239, 239, 149, 149,
161, 161, 161, 161, 161, 161, 147, 147, 148, 146,
146, 146, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 409,
+ 154, 154, 154, 154, 154, 154, 154, 154, 409, 409,
409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 160, 160, 155, 155, 155, 157, 157, 156, 156,
- 156, 158, 158, 406, 406, 406, 406, 321, 321, 321,
- 321, 324, 324, 322, 322, 322, 322, 322, 322, 322,
- 322, 322, 323, 323, 323, 323, 323, 323, 323, 325,
- 325, 325, 325, 325, 326, 326, 326, 326, 326, 326,
+ 160, 160, 155, 155, 155, 157, 157, 156, 156, 156,
+ 158, 158, 406, 406, 406, 406, 321, 321, 321, 321,
+ 324, 324, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 323, 323, 323, 323, 323, 323, 323, 325, 325,
+ 325, 325, 325, 326, 326, 326, 326, 326, 326, 326,
326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
- 326, 327, 327, 327, 327, 327, 327, 327, 327, 342,
- 342, 331, 331, 336, 336, 337, 337, 338, 338, 338,
- 339, 339, 339, 340, 340, 333, 333, 333, 333, 333,
- 333, 333, 333, 333, 335, 335, 334, 334, 334, 345,
- 370, 370, 369, 369, 367, 367, 367, 367, 367, 367,
- 367, 367, 354, 354, 364, 364, 364, 364, 364, 353,
- 353, 349, 349, 349, 350, 350, 351, 351, 348, 348,
- 352, 352, 366, 366, 365, 365, 346, 346, 347, 347,
- 372, 407, 407, 407, 407, 407, 408, 408, 373, 397,
- 399, 399, 399, 398, 398, 395, 396, 394, 394, 394,
- 394, 394, 84, 84, 84, 287, 287, 288, 288, 362,
- 362, 361, 361, 361, 363, 363, 360, 360, 360, 360,
+ 327, 327, 327, 327, 327, 327, 327, 327, 342, 342,
+ 331, 331, 336, 336, 337, 337, 338, 338, 338, 339,
+ 339, 339, 340, 340, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 335, 335, 334, 334, 334, 345, 370,
+ 370, 369, 369, 367, 367, 367, 367, 367, 367, 367,
+ 367, 354, 354, 364, 364, 364, 364, 364, 353, 353,
+ 349, 349, 349, 350, 350, 351, 351, 348, 348, 352,
+ 352, 366, 366, 365, 365, 346, 346, 347, 347, 372,
+ 407, 407, 407, 407, 407, 408, 408, 373, 397, 399,
+ 399, 399, 398, 398, 395, 396, 394, 394, 394, 394,
+ 394, 84, 84, 84, 287, 287, 288, 288, 362, 362,
+ 361, 361, 361, 363, 363, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
- 360, 360, 360, 360, 360, 360, 360, 282, 282, 282,
- 393, 393, 393, 393, 393, 393, 392, 392, 392, 359,
- 359, 359, 359, 391, 391, 59, 59, 219, 219, 410,
- 410, 412, 412, 412, 47, 47, 47, 47, 47, 47,
- 46, 46, 46, 42, 42, 42, 42, 42, 42, 42,
+ 360, 360, 360, 360, 360, 360, 282, 282, 282, 393,
+ 393, 393, 393, 393, 393, 392, 392, 392, 359, 359,
+ 359, 359, 391, 391, 59, 59, 219, 219, 410, 410,
+ 412, 412, 412, 47, 47, 47, 47, 47, 47, 46,
+ 46, 46, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 48, 48, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 23, 23, 23, 23,
+ 42, 42, 42, 48, 48, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 43, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
- 23, 23, 23, 23, 23, 23, 23, 23, 23, 111,
- 111, 112, 112, 112, 112, 114, 114, 114, 375, 375,
- 60, 60, 3, 3, 173, 175, 176, 176, 174, 174,
- 174, 174, 174, 174, 62, 62, 61, 61, 178, 177,
- 179, 179, 179, 1, 1, 2, 2, 4, 4, 380,
+ 23, 23, 23, 23, 23, 23, 23, 23, 111, 111,
+ 112, 112, 112, 112, 114, 114, 114, 375, 375, 60,
+ 60, 3, 3, 173, 175, 176, 176, 174, 174, 174,
+ 174, 174, 174, 62, 62, 61, 61, 178, 177, 179,
+ 179, 179, 1, 1, 2, 2, 4, 4, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 341, 341, 341, 374, 374, 376, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 117, 116, 116,
- 115, 118, 118, 118, 118, 118, 118, 118, 118, 378,
- 378, 378, 63, 63, 379, 328, 329, 330, 5, 6,
- 355, 377, 125, 125, 24, 39, 39, 25, 25, 25,
- 25, 26, 26, 64, 67, 67, 65, 65, 65, 65,
+ 341, 341, 341, 374, 374, 376, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 117, 116, 116, 115,
+ 118, 118, 118, 118, 118, 118, 118, 118, 378, 378,
+ 378, 63, 63, 379, 328, 329, 330, 5, 6, 355,
+ 377, 125, 125, 24, 39, 39, 25, 25, 25, 25,
+ 26, 26, 64, 67, 67, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 65, 292, 292, 281, 281, 290, 290, 280, 280,
- 306, 306, 306, 283, 283, 283, 284, 284, 403, 403,
- 403, 277, 277, 66, 66, 66, 307, 307, 307, 307,
- 69, 69, 413, 413, 414, 414, 415, 415, 415, 70,
- 71, 71, 310, 310, 311, 311, 72, 73, 85, 85,
- 85, 85, 85, 86, 86, 86, 86, 86, 86, 110,
- 110, 110, 10, 10, 10, 10, 81, 81, 81, 9,
- 9, 11, 68, 68, 75, 400, 400, 401, 402, 402,
- 402, 402, 76, 78, 27, 27, 27, 27, 27, 27,
- 135, 135, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 130, 130, 130, 124, 124, 422,
- 79, 80, 80, 128, 128, 128, 121, 121, 121, 127,
- 127, 127, 12, 12, 13, 263, 263, 14, 14, 134,
- 134, 133, 133, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 131, 131, 132, 132, 132, 132,
- 299, 299, 299, 298, 298, 167, 167, 169, 168, 168,
- 170, 170, 171, 171, 171, 171, 217, 217, 193, 193,
- 256, 256, 257, 257, 255, 255, 262, 262, 258, 258,
- 258, 258, 265, 265, 172, 172, 172, 172, 180, 180,
- 181, 181, 182, 182, 309, 309, 304, 304, 304, 303,
- 303, 186, 186, 186, 188, 187, 187, 187, 187, 189,
- 189, 191, 191, 190, 190, 192, 197, 197, 196, 196,
- 194, 194, 194, 194, 194, 194, 195, 195, 195, 195,
- 198, 198, 145, 145, 145, 145, 145, 145, 145, 145,
- 411, 411, 159, 159, 159, 159, 159, 159, 159, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 246, 246, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 153, 153, 153,
+ 65, 292, 292, 281, 281, 290, 290, 280, 280, 306,
+ 306, 306, 283, 283, 283, 284, 284, 403, 403, 403,
+ 277, 277, 66, 66, 66, 307, 307, 307, 307, 69,
+ 69, 413, 413, 414, 414, 415, 415, 415, 70, 71,
+ 71, 310, 310, 311, 311, 72, 73, 85, 85, 85,
+ 85, 85, 86, 86, 86, 86, 86, 86, 110, 110,
+ 110, 10, 10, 10, 10, 81, 81, 81, 9, 9,
+ 11, 68, 68, 75, 400, 400, 401, 402, 402, 402,
+ 402, 76, 78, 27, 27, 27, 27, 27, 27, 135,
+ 135, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 130, 130, 130, 124, 124, 422, 79,
+ 80, 80, 128, 128, 128, 121, 121, 121, 127, 127,
+ 127, 12, 12, 13, 263, 263, 14, 14, 134, 134,
+ 133, 133, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 131, 131, 132, 132, 132, 132, 299,
+ 299, 299, 298, 298, 167, 167, 169, 168, 168, 170,
+ 170, 171, 171, 171, 171, 217, 217, 193, 193, 256,
+ 256, 257, 257, 255, 255, 262, 262, 258, 258, 258,
+ 258, 265, 265, 172, 172, 172, 172, 180, 180, 181,
+ 181, 182, 182, 309, 309, 304, 304, 304, 303, 303,
+ 186, 186, 186, 188, 187, 187, 187, 187, 189, 189,
+ 191, 191, 190, 190, 192, 197, 197, 196, 196, 194,
+ 194, 194, 194, 194, 194, 195, 195, 195, 195, 198,
+ 198, 145, 145, 145, 145, 145, 145, 145, 145, 411,
+ 411, 159, 159, 159, 159, 159, 159, 159, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 246,
+ 246, 150, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 153, 153, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 222, 222, 221, 221, 87, 87, 87, 88,
- 88, 89, 89, 89, 89, 89, 90, 90, 90, 90,
- 90, 90, 90, 92, 92, 91, 91, 212, 212, 296,
- 296, 93, 94, 94, 95, 95, 98, 98, 97, 96,
- 96, 102, 102, 99, 99, 101, 101, 100, 103, 103,
- 104, 105, 105, 278, 278, 199, 199, 208, 208, 208,
- 208, 200, 200, 201, 201, 201, 201, 201, 201, 209,
- 209, 209, 216, 210, 210, 206, 206, 204, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 204, 205, 205,
+ 153, 222, 222, 221, 221, 87, 87, 87, 88, 88,
+ 89, 89, 89, 89, 89, 90, 90, 90, 90, 90,
+ 90, 90, 92, 92, 91, 91, 212, 212, 296, 296,
+ 93, 94, 94, 95, 95, 98, 98, 97, 96, 96,
+ 102, 102, 99, 99, 101, 101, 100, 103, 103, 104,
+ 105, 105, 278, 278, 199, 199, 208, 208, 208, 208,
+ 200, 200, 201, 201, 201, 201, 201, 201, 209, 209,
+ 209, 216, 210, 210, 206, 206, 204, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
@@ -8733,36 +8670,36 @@ var yyR1 = [...]int{
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
- 205, 164, 164, 164, 164, 227, 227, 151, 151, 151,
+ 164, 164, 164, 164, 227, 227, 151, 151, 151, 151,
151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 152, 152, 165, 165, 165, 165, 166, 166,
- 166, 166, 166, 166, 166, 317, 317, 119, 119, 119,
+ 151, 152, 152, 165, 165, 165, 165, 166, 166, 166,
+ 166, 166, 166, 166, 317, 317, 119, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 120, 120, 120,
+ 119, 119, 119, 119, 119, 119, 120, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
- 120, 120, 120, 120, 120, 423, 423, 332, 332, 332,
- 207, 207, 207, 207, 207, 126, 126, 126, 126, 126,
- 314, 314, 314, 318, 318, 318, 316, 316, 316, 316,
+ 120, 120, 120, 120, 423, 423, 332, 332, 332, 207,
+ 207, 207, 207, 207, 126, 126, 126, 126, 126, 314,
+ 314, 314, 318, 318, 318, 316, 316, 316, 316, 316,
316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 316, 319, 319, 225, 225, 122, 122, 223, 223, 224,
- 226, 226, 218, 218, 218, 218, 220, 220, 203, 203,
- 203, 228, 228, 320, 320, 229, 229, 106, 107, 107,
- 108, 108, 230, 230, 232, 231, 231, 233, 234, 234,
- 234, 235, 235, 236, 236, 236, 49, 49, 49, 49,
- 49, 44, 44, 44, 44, 45, 45, 45, 45, 137,
- 137, 137, 137, 139, 139, 138, 138, 82, 82, 83,
- 83, 83, 143, 143, 144, 144, 144, 141, 141, 142,
- 142, 253, 253, 253, 253, 253, 253, 253, 237, 237,
- 237, 244, 244, 244, 240, 240, 242, 242, 242, 243,
- 243, 243, 241, 250, 250, 252, 252, 251, 251, 247,
- 247, 248, 248, 249, 249, 249, 245, 245, 202, 202,
- 202, 202, 202, 254, 254, 254, 254, 308, 308, 308,
- 266, 266, 213, 213, 215, 215, 214, 214, 163, 267,
- 267, 275, 272, 272, 273, 273, 300, 300, 300, 276,
- 276, 289, 289, 285, 285, 286, 286, 279, 279, 291,
- 291, 291, 77, 211, 211, 371, 371, 368, 295, 295,
- 297, 297, 301, 301, 305, 305, 302, 302, 8, 416,
- 416, 416, 293, 293, 293, 293, 293, 293, 293, 293,
+ 319, 319, 225, 225, 122, 122, 223, 223, 224, 226,
+ 226, 218, 218, 218, 218, 220, 220, 203, 203, 203,
+ 228, 228, 320, 320, 229, 229, 106, 107, 107, 108,
+ 108, 230, 230, 232, 231, 231, 233, 234, 234, 234,
+ 235, 235, 236, 236, 236, 49, 49, 49, 49, 49,
+ 44, 44, 44, 44, 45, 45, 45, 45, 137, 137,
+ 137, 137, 139, 139, 138, 138, 82, 82, 83, 83,
+ 83, 143, 143, 144, 144, 144, 141, 141, 142, 142,
+ 253, 253, 253, 253, 253, 253, 253, 237, 237, 237,
+ 244, 244, 244, 240, 240, 242, 242, 242, 243, 243,
+ 243, 241, 250, 250, 252, 252, 251, 251, 247, 247,
+ 248, 248, 249, 249, 249, 245, 245, 202, 202, 202,
+ 202, 202, 254, 254, 254, 254, 308, 308, 308, 266,
+ 266, 213, 213, 215, 215, 214, 214, 163, 267, 267,
+ 275, 272, 272, 273, 273, 300, 300, 300, 276, 276,
+ 289, 289, 285, 285, 286, 286, 279, 279, 291, 291,
+ 291, 77, 211, 211, 371, 371, 368, 295, 295, 297,
+ 297, 301, 301, 305, 305, 302, 302, 8, 416, 416,
+ 416, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
@@ -8777,7 +8714,7 @@ var yyR1 = [...]int{
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 293, 294, 294, 294, 294, 294,
+ 293, 293, 293, 293, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
@@ -8825,7 +8762,7 @@ var yyR1 = [...]int{
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 294, 419, 420, 312, 313, 313, 313,
+ 294, 419, 420, 312, 313, 313, 313,
}
var yyR2 = [...]int{
@@ -8853,147 +8790,147 @@ var yyR2 = [...]int{
0, 2, 2, 3, 3, 2, 2, 2, 1, 1,
2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
- 2, 1, 1, 2, 1, 2, 1, 3, 1, 1,
- 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 2, 2, 2, 2, 2, 2, 1,
- 2, 2, 2, 2, 3, 3, 3, 2, 2, 2,
- 2, 2, 2, 1, 1, 1, 1, 1, 5, 2,
- 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 0, 3, 0, 5, 1, 3, 0, 3, 5,
- 0, 1, 1, 0, 1, 0, 3, 3, 2, 2,
- 2, 1, 2, 2, 0, 1, 0, 2, 2, 5,
- 0, 1, 1, 2, 1, 3, 2, 1, 1, 3,
- 3, 3, 0, 1, 4, 3, 3, 4, 2, 0,
- 2, 1, 1, 1, 1, 1, 0, 1, 1, 1,
- 0, 1, 1, 3, 3, 4, 3, 1, 3, 1,
- 7, 6, 7, 7, 8, 8, 0, 1, 5, 2,
- 1, 1, 1, 0, 1, 3, 3, 1, 1, 2,
- 2, 2, 0, 1, 1, 1, 2, 0, 1, 0,
- 1, 1, 3, 2, 1, 2, 3, 3, 3, 4,
- 4, 3, 3, 3, 3, 4, 4, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 4, 5, 0, 2, 2,
+ 1, 1, 1, 1, 1, 1, 2, 1, 1, 2,
+ 1, 1, 2, 1, 2, 1, 3, 1, 1, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+ 2, 2, 2, 3, 3, 3, 2, 2, 2, 2,
+ 2, 2, 1, 1, 1, 1, 1, 5, 2, 5,
1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
- 1, 1, 1, 0, 1, 0, 1, 0, 2, 0,
- 2, 0, 2, 2, 0, 1, 5, 1, 3, 7,
- 1, 3, 3, 1, 2, 2, 2, 5, 5, 5,
- 6, 8, 5, 5, 4, 4, 4, 6, 5, 5,
- 5, 2, 2, 2, 2, 3, 3, 3, 4, 3,
- 3, 1, 3, 5, 1, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 2, 2, 3, 4, 4, 2,
- 11, 3, 6, 8, 6, 6, 6, 13, 8, 6,
- 6, 10, 7, 5, 5, 5, 5, 7, 5, 5,
- 5, 5, 5, 7, 7, 5, 5, 5, 5, 0,
- 6, 5, 6, 4, 5, 0, 8, 9, 0, 3,
- 0, 1, 0, 3, 8, 4, 1, 3, 3, 6,
- 7, 7, 8, 4, 0, 1, 0, 1, 3, 3,
- 1, 1, 2, 1, 1, 0, 2, 0, 2, 5,
- 3, 7, 4, 4, 4, 4, 3, 3, 3, 7,
+ 0, 3, 0, 5, 1, 3, 0, 3, 5, 0,
+ 1, 1, 0, 1, 0, 3, 3, 2, 2, 2,
+ 1, 2, 2, 0, 1, 0, 2, 2, 5, 0,
+ 1, 1, 2, 1, 3, 2, 1, 1, 3, 3,
+ 3, 0, 1, 4, 3, 3, 4, 2, 0, 2,
+ 1, 1, 1, 1, 1, 0, 1, 1, 1, 0,
+ 1, 1, 3, 3, 4, 3, 1, 3, 1, 7,
+ 6, 7, 7, 8, 8, 0, 1, 5, 2, 1,
+ 1, 1, 0, 1, 3, 3, 1, 1, 2, 2,
+ 2, 0, 1, 1, 1, 2, 0, 1, 0, 1,
+ 1, 3, 2, 1, 2, 3, 3, 3, 4, 4,
+ 3, 3, 3, 3, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 2, 0, 2, 2, 1, 3, 2, 0, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 3, 1, 3,
- 3, 0, 2, 2, 2, 2, 2, 2, 2, 4,
- 4, 3, 0, 1, 4, 3, 4, 4, 3, 3,
- 3, 2, 1, 3, 3, 3, 5, 7, 7, 6,
- 5, 3, 2, 4, 5, 5, 3, 3, 7, 3,
- 3, 3, 3, 4, 7, 5, 2, 4, 4, 4,
- 4, 4, 5, 5, 4, 4, 4, 4, 4, 4,
- 4, 4, 2, 2, 4, 4, 4, 4, 4, 2,
- 3, 3, 3, 3, 3, 5, 2, 3, 3, 2,
- 3, 4, 4, 4, 3, 4, 4, 5, 3, 5,
- 3, 5, 0, 1, 0, 1, 0, 1, 1, 1,
- 0, 2, 2, 0, 2, 2, 0, 2, 0, 1,
- 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
- 1, 3, 0, 1, 1, 3, 3, 2, 2, 1,
- 1, 5, 0, 1, 0, 1, 2, 3, 0, 3,
- 3, 3, 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 1, 1, 4,
- 4, 4, 2, 2, 3, 1, 3, 2, 1, 2,
- 1, 2, 2, 4, 3, 3, 6, 4, 7, 6,
- 1, 3, 2, 2, 2, 2, 1, 1, 1, 3,
- 2, 1, 1, 1, 0, 1, 1, 0, 3, 0,
- 2, 0, 2, 1, 2, 2, 0, 1, 1, 0,
- 1, 1, 5, 5, 4, 0, 2, 4, 4, 0,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 1, 2, 3, 5,
- 0, 1, 2, 1, 1, 0, 1, 2, 1, 3,
- 1, 1, 1, 4, 3, 1, 1, 2, 3, 7,
- 0, 3, 0, 1, 1, 3, 1, 3, 1, 1,
- 3, 3, 1, 3, 4, 4, 4, 3, 2, 4,
- 0, 1, 0, 2, 0, 1, 0, 1, 2, 1,
- 1, 1, 2, 2, 1, 2, 3, 2, 3, 2,
- 2, 2, 1, 1, 3, 3, 0, 1, 1, 2,
- 6, 5, 6, 6, 5, 5, 0, 2, 3, 3,
- 0, 2, 3, 3, 3, 2, 3, 1, 3, 6,
- 1, 1, 3, 4, 3, 4, 4, 4, 1, 3,
- 4, 5, 6, 3, 4, 5, 6, 3, 4, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 5, 5,
- 3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
- 1, 3, 1, 1, 1, 2, 2, 2, 2, 1,
- 1, 2, 7, 7, 6, 6, 2, 2, 5, 6,
- 3, 3, 1, 3, 1, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 4, 2, 4, 0, 1, 2, 5, 0, 3, 0,
- 1, 4, 4, 2, 1, 0, 0, 1, 1, 2,
- 2, 1, 1, 2, 2, 0, 1, 1, 1, 1,
- 5, 1, 3, 0, 3, 1, 1, 1, 2, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 4, 6, 4, 4, 8,
- 8, 6, 8, 6, 5, 4, 10, 2, 2, 1,
- 2, 2, 2, 2, 2, 5, 6, 6, 6, 6,
- 6, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 8, 4, 8, 8, 6, 5, 4, 4, 4,
- 5, 7, 4, 4, 7, 4, 4, 6, 6, 6,
- 8, 6, 6, 4, 4, 3, 4, 6, 6, 4,
- 4, 6, 4, 6, 4, 4, 4, 4, 4, 4,
- 6, 4, 6, 4, 4, 4, 6, 4, 6, 4,
- 4, 6, 4, 6, 4, 6, 8, 4, 6, 8,
- 4, 6, 8, 4, 6, 8, 4, 6, 8, 4,
+ 3, 3, 3, 3, 4, 5, 0, 2, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
+ 1, 1, 0, 1, 0, 1, 0, 2, 0, 2,
+ 0, 2, 2, 0, 1, 5, 1, 3, 7, 1,
+ 3, 3, 1, 2, 2, 2, 5, 5, 5, 6,
+ 8, 5, 5, 4, 4, 4, 6, 5, 5, 5,
+ 2, 2, 2, 2, 3, 3, 3, 4, 3, 3,
+ 1, 3, 5, 1, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 2, 2, 3, 4, 4, 2, 11,
+ 3, 6, 8, 6, 6, 6, 13, 8, 6, 6,
+ 10, 7, 5, 5, 5, 5, 7, 5, 5, 5,
+ 5, 5, 7, 7, 5, 5, 5, 5, 0, 6,
+ 5, 6, 4, 5, 0, 8, 9, 0, 3, 0,
+ 1, 0, 3, 8, 4, 1, 3, 3, 6, 7,
+ 7, 8, 4, 0, 1, 0, 1, 3, 3, 1,
+ 1, 2, 1, 1, 0, 2, 0, 2, 5, 3,
+ 7, 4, 4, 4, 4, 3, 3, 3, 7, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
+ 0, 2, 2, 1, 3, 2, 0, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 3, 1, 3, 3,
+ 0, 2, 2, 2, 2, 2, 2, 2, 4, 4,
+ 3, 0, 1, 4, 3, 4, 4, 3, 3, 3,
+ 2, 1, 3, 3, 3, 5, 7, 7, 6, 5,
+ 3, 2, 4, 5, 5, 3, 3, 7, 3, 3,
+ 3, 3, 4, 7, 5, 2, 4, 4, 4, 4,
+ 4, 5, 5, 4, 4, 4, 4, 4, 4, 4,
+ 4, 2, 2, 4, 4, 4, 4, 4, 2, 3,
+ 3, 3, 3, 3, 5, 2, 3, 3, 2, 3,
+ 4, 4, 4, 3, 4, 4, 5, 3, 5, 3,
+ 5, 0, 1, 0, 1, 0, 1, 1, 1, 0,
+ 2, 2, 0, 2, 2, 0, 2, 0, 1, 1,
+ 1, 1, 2, 1, 3, 1, 1, 1, 1, 1,
+ 3, 0, 1, 1, 3, 3, 2, 2, 1, 1,
+ 5, 0, 1, 0, 1, 2, 3, 0, 3, 3,
+ 3, 1, 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 1, 1, 4, 4,
+ 4, 2, 2, 3, 1, 3, 2, 1, 2, 1,
+ 2, 2, 4, 3, 3, 6, 4, 7, 6, 1,
+ 3, 2, 2, 2, 2, 1, 1, 1, 3, 2,
+ 1, 1, 1, 0, 1, 1, 0, 3, 0, 2,
+ 0, 2, 1, 2, 2, 0, 1, 1, 0, 1,
+ 1, 5, 5, 4, 0, 2, 4, 4, 0, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 1, 2, 3, 5, 0,
+ 1, 2, 1, 1, 0, 1, 2, 1, 3, 1,
+ 1, 1, 4, 3, 1, 1, 2, 3, 7, 0,
+ 3, 0, 1, 1, 3, 1, 3, 1, 1, 3,
+ 3, 1, 3, 4, 4, 4, 3, 2, 4, 0,
+ 1, 0, 2, 0, 1, 0, 1, 2, 1, 1,
+ 1, 2, 2, 1, 2, 3, 2, 3, 2, 2,
+ 2, 1, 1, 3, 3, 0, 1, 1, 2, 6,
+ 5, 6, 6, 5, 5, 0, 2, 3, 3, 0,
+ 2, 3, 3, 3, 2, 3, 1, 3, 6, 1,
+ 1, 3, 4, 3, 4, 4, 4, 1, 3, 4,
+ 5, 6, 3, 4, 5, 6, 3, 4, 1, 1,
+ 1, 3, 3, 3, 3, 3, 3, 5, 5, 3,
+ 3, 3, 3, 3, 3, 1, 1, 1, 1, 1,
+ 3, 1, 1, 1, 2, 2, 2, 2, 1, 1,
+ 2, 7, 7, 6, 6, 2, 2, 5, 6, 3,
+ 3, 1, 3, 1, 3, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 2, 2, 4,
+ 2, 4, 0, 1, 2, 5, 0, 3, 0, 1,
+ 4, 4, 2, 1, 0, 0, 1, 1, 2, 2,
+ 1, 1, 2, 2, 0, 1, 1, 1, 1, 5,
+ 1, 3, 0, 3, 1, 1, 1, 2, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 3, 4, 6, 4, 4, 8, 8,
+ 6, 8, 6, 5, 4, 10, 2, 2, 1, 2,
+ 2, 2, 2, 2, 5, 6, 6, 6, 6, 6,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 8, 4, 8, 8, 6, 5, 4, 4, 4, 5,
+ 7, 4, 4, 7, 4, 4, 6, 6, 6, 8,
+ 6, 6, 4, 4, 3, 4, 6, 6, 4, 4,
+ 6, 4, 6, 4, 4, 4, 4, 4, 4, 6,
+ 4, 6, 4, 4, 4, 6, 4, 6, 4, 4,
+ 6, 4, 6, 4, 6, 8, 4, 6, 8, 4,
6, 8, 4, 6, 8, 4, 6, 8, 4, 6,
8, 4, 6, 8, 4, 6, 8, 4, 6, 8,
4, 6, 8, 4, 6, 8, 4, 6, 8, 4,
- 6, 8, 4, 4, 4, 6, 4, 6, 4, 8,
- 6, 4, 4, 6, 4, 6, 8, 4, 6, 8,
- 4, 4, 6, 8, 6, 4, 6, 6, 8, 10,
- 7, 8, 8, 9, 4, 4, 4, 4, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 4, 4,
- 4, 4, 4, 4, 6, 4, 6, 5, 9, 6,
- 9, 8, 6, 8, 8, 8, 6, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 2, 6, 8, 10,
- 12, 14, 6, 8, 8, 10, 12, 14, 6, 8,
- 10, 12, 6, 8, 4, 4, 3, 4, 6, 6,
- 4, 6, 4, 6, 8, 0, 2, 1, 1, 1,
+ 6, 8, 4, 6, 8, 4, 6, 8, 4, 6,
+ 8, 4, 4, 4, 6, 4, 6, 4, 8, 6,
+ 4, 4, 6, 4, 6, 8, 4, 6, 8, 4,
+ 4, 6, 8, 6, 4, 6, 6, 8, 10, 7,
+ 8, 8, 9, 4, 4, 4, 4, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 4, 4, 4,
+ 4, 4, 4, 6, 4, 6, 5, 9, 6, 9,
+ 8, 6, 8, 8, 8, 6, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 2, 6, 8, 10, 12,
+ 14, 6, 8, 8, 10, 12, 14, 6, 8, 10,
+ 12, 6, 8, 4, 4, 3, 4, 6, 6, 4,
+ 6, 4, 6, 8, 0, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 2, 0, 2, 3,
- 4, 4, 4, 4, 4, 0, 3, 4, 7, 3,
- 1, 1, 1, 0, 5, 5, 2, 3, 1, 2,
- 2, 1, 2, 1, 2, 2, 1, 2, 2, 1,
- 1, 0, 1, 0, 1, 0, 2, 1, 2, 4,
- 0, 2, 1, 1, 3, 5, 1, 1, 1, 2,
- 2, 0, 4, 0, 2, 0, 2, 2, 1, 3,
- 0, 1, 0, 1, 3, 1, 3, 2, 0, 1,
- 1, 0, 1, 2, 4, 4, 0, 2, 2, 1,
- 1, 3, 3, 3, 3, 3, 3, 3, 3, 0,
- 3, 3, 3, 0, 3, 1, 1, 0, 4, 0,
- 1, 1, 0, 3, 1, 3, 2, 1, 1, 0,
- 1, 2, 3, 4, 2, 3, 4, 4, 9, 3,
- 5, 0, 3, 3, 0, 1, 0, 2, 2, 0,
- 2, 2, 2, 0, 2, 1, 2, 3, 3, 0,
- 2, 1, 2, 3, 4, 3, 0, 1, 3, 1,
- 6, 5, 4, 1, 3, 3, 5, 0, 2, 5,
- 0, 5, 1, 3, 1, 2, 3, 4, 1, 1,
- 3, 3, 1, 2, 1, 1, 1, 1, 1, 1,
- 1, 0, 1, 0, 2, 0, 3, 0, 1, 0,
- 1, 1, 5, 0, 1, 0, 1, 2, 1, 1,
- 1, 1, 1, 1, 0, 1, 1, 1, 3, 0,
+ 1, 1, 1, 1, 0, 2, 0, 2, 3, 4,
+ 4, 4, 4, 4, 0, 3, 4, 7, 3, 1,
+ 1, 1, 0, 5, 5, 2, 3, 1, 2, 2,
+ 1, 2, 1, 2, 2, 1, 2, 2, 1, 1,
+ 0, 1, 0, 1, 0, 2, 1, 2, 4, 0,
+ 2, 1, 1, 3, 5, 1, 1, 1, 2, 2,
+ 0, 4, 0, 2, 0, 2, 2, 1, 3, 0,
+ 1, 0, 1, 3, 1, 3, 2, 0, 1, 1,
+ 0, 1, 2, 4, 4, 0, 2, 2, 1, 1,
+ 3, 3, 3, 3, 3, 3, 3, 3, 0, 3,
+ 3, 3, 0, 3, 1, 1, 0, 4, 0, 1,
+ 1, 0, 3, 1, 3, 2, 1, 1, 0, 1,
+ 2, 3, 4, 2, 3, 4, 4, 9, 3, 5,
+ 0, 3, 3, 0, 1, 0, 2, 2, 0, 2,
+ 2, 2, 0, 2, 1, 2, 3, 3, 0, 2,
+ 1, 2, 3, 4, 3, 0, 1, 3, 1, 6,
+ 5, 4, 1, 3, 3, 5, 0, 2, 5, 0,
+ 5, 1, 3, 1, 2, 3, 4, 1, 1, 3,
+ 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 0, 2, 0, 3, 0, 1, 0, 1,
+ 1, 5, 0, 1, 0, 1, 2, 1, 1, 1,
+ 1, 1, 1, 0, 1, 1, 1, 3, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -9057,7 +8994,7 @@ var yyR2 = [...]int{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 0, 1, 1,
+ 1, 1, 1, 0, 0, 1, 1,
}
var yyChk = [...]int{
@@ -9231,424 +9168,424 @@ var yyChk = [...]int{
-419, -419, -419, -419, -419, -419, -419, -419, 236, -419,
-419, -419, -419, -419, -332, -332, -332, -332, -332, -332,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
- -419, -419, -419, -419, 98, 112, 108, 111, 103, -220,
- 114, 98, 98, 98, 98, -31, -32, -210, -419, -312,
- -400, -401, -193, -190, -419, 317, -295, -295, 286, 105,
- -235, -34, -31, -230, -236, -232, -31, -79, -121, -134,
- 69, 70, -133, -136, 27, 44, 74, 76, 99, 72,
- 73, 71, 41, -420, 97, -420, -253, -420, 96, -38,
- -256, 95, 652, 682, 652, 682, 67, 49, 98, 98,
- 96, 25, -231, -233, -145, 18, -299, 4, -298, 28,
- -295, 98, 236, 18, -191, 32, -190, -279, -279, 96,
- 100, 331, -269, -271, 431, 433, 165, -300, -295, 98,
- 34, 97, 96, -190, -321, -324, -326, -325, -327, -322,
- -323, 360, 361, 192, 364, 366, 367, 368, 369, 370,
- 371, 372, 373, 374, 377, 389, 35, 276, 356, 357,
- 358, 359, 378, 379, 380, 381, 383, 384, 385, 386,
- 341, 362, 594, 342, 343, 344, 345, 346, 347, 349,
- 350, 353, 351, 352, 354, 355, -296, -295, 95, 97,
- 96, -331, 95, -145, -137, 253, -295, 254, 254, 254,
- -286, 258, 486, -354, -354, -354, 284, 23, -46, -43,
- -380, 22, -42, -43, 245, 135, 136, 242, 95, -343,
- 95, -352, -296, -295, 95, 151, 259, 150, -351, -348,
- -351, -352, -295, -218, -295, 151, 151, -295, -295, -265,
- -295, -265, -265, 41, -265, 41, -265, 41, 105, -295,
- -265, 41, -265, 41, -265, 41, -265, 41, -265, 41,
- 34, 87, 88, 89, 34, 91, 92, 93, -218, -295,
- -295, -218, -343, -218, -190, -295, -272, 105, 105, 105,
- -354, -354, 105, 98, 98, 98, -354, -354, 105, 98,
- -303, -301, 98, 98, -392, 270, 314, 316, 105, 105,
- 105, 105, 34, 98, -393, 34, 733, 732, 734, 735,
- 736, 98, 105, 34, 105, 34, 105, -295, 95, -190,
- -143, 304, 240, 242, 245, 85, 98, 322, 320, 321,
- 318, 323, 324, 325, 165, 50, 96, 256, 253, -295,
- -285, 258, -285, -295, -302, -301, -293, -190, 256, 397,
- 98, -145, -350, 18, 176, -306, -306, -283, -190, -350,
- -306, -283, -190, -283, -283, -283, -283, -306, -306, -306,
- -283, -301, -301, -190, -190, -190, -190, -190, -190, -190,
- -313, -284, -283, 708, 98, -277, 18, 85, -313, -313,
- -292, 26, 26, 96, 337, 434, 435, -311, 334, -81,
- -295, 98, -10, -29, -18, -17, -19, 165, -10, 96,
- 596, -183, -190, 708, 708, 708, 708, 708, 708, -145,
- -145, -145, -145, 620, -208, -411, 157, 132, 133, 130,
- 131, -162, 42, 43, 41, -145, -209, -214, -216, 115,
- 176, 159, 173, -246, -150, -153, -150, -150, -150, -150,
- -150, -150, 235, -150, 235, -150, -150, -150, -150, -150,
- -150, -314, -295, 98, 192, -158, -157, 114, -409, -158,
- 593, 96, -221, 236, -145, -145, -387, -119, 459, 460,
- 461, 462, 464, 465, 466, 469, 470, 474, 475, 458,
- 476, 463, 468, 471, 472, 473, 467, 359, -145, -211,
- -210, -211, -145, -145, -223, -224, 161, -218, -145, -420,
- -420, 105, 183, -127, 27, 44, -127, -127, -127, -127,
+ -419, -419, -419, -419, 98, 112, 108, 111, 103, 114,
+ 98, 98, 98, 98, -31, -32, -210, -419, -312, -400,
+ -401, -193, -190, -419, 317, -295, -295, 286, 105, -235,
+ -34, -31, -230, -236, -232, -31, -79, -121, -134, 69,
+ 70, -133, -136, 27, 44, 74, 76, 99, 72, 73,
+ 71, 41, -420, 97, -420, -253, -420, 96, -38, -256,
+ 95, 652, 682, 652, 682, 67, 49, 98, 98, 96,
+ 25, -231, -233, -145, 18, -299, 4, -298, 28, -295,
+ 98, 236, 18, -191, 32, -190, -279, -279, 96, 100,
+ 331, -269, -271, 431, 433, 165, -300, -295, 98, 34,
+ 97, 96, -190, -321, -324, -326, -325, -327, -322, -323,
+ 360, 361, 192, 364, 366, 367, 368, 369, 370, 371,
+ 372, 373, 374, 377, 389, 35, 276, 356, 357, 358,
+ 359, 378, 379, 380, 381, 383, 384, 385, 386, 341,
+ 362, 594, 342, 343, 344, 345, 346, 347, 349, 350,
+ 353, 351, 352, 354, 355, -296, -295, 95, 97, 96,
+ -331, 95, -145, -137, 253, -295, 254, 254, 254, -286,
+ 258, 486, -354, -354, -354, 284, 23, -46, -43, -380,
+ 22, -42, -43, 245, 135, 136, 242, 95, -343, 95,
+ -352, -296, -295, 95, 151, 259, 150, -351, -348, -351,
+ -352, -295, -218, -295, 151, 151, -295, -295, -265, -295,
+ -265, -265, 41, -265, 41, -265, 41, 105, -295, -265,
+ 41, -265, 41, -265, 41, -265, 41, -265, 41, 34,
+ 87, 88, 89, 34, 91, 92, 93, -218, -295, -295,
+ -218, -343, -218, -190, -295, -272, 105, 105, 105, -354,
+ -354, 105, 98, 98, 98, -354, -354, 105, 98, -303,
+ -301, 98, 98, -392, 270, 314, 316, 105, 105, 105,
+ 105, 34, 98, -393, 34, 733, 732, 734, 735, 736,
+ 98, 105, 34, 105, 34, 105, -295, 95, -190, -143,
+ 304, 240, 242, 245, 85, 98, 322, 320, 321, 318,
+ 323, 324, 325, 165, 50, 96, 256, 253, -295, -285,
+ 258, -285, -295, -302, -301, -293, -190, 256, 397, 98,
+ -145, -350, 18, 176, -306, -306, -283, -190, -350, -306,
+ -283, -190, -283, -283, -283, -283, -306, -306, -306, -283,
+ -301, -301, -190, -190, -190, -190, -190, -190, -190, -313,
+ -284, -283, 708, 98, -277, 18, 85, -313, -313, -292,
+ 26, 26, 96, 337, 434, 435, -311, 334, -81, -295,
+ 98, -10, -29, -18, -17, -19, 165, -10, 96, 596,
+ -183, -190, 708, 708, 708, 708, 708, 708, -145, -145,
+ -145, -145, 620, -208, -411, 157, 132, 133, 130, 131,
+ -162, 42, 43, 41, -145, -209, -214, -216, 115, 176,
+ 159, 173, -246, -150, -153, -150, -150, -150, -150, -150,
+ -150, 235, -150, 235, -150, -150, -150, -150, -150, -150,
+ -314, -295, 98, 192, -158, -157, 114, -409, -158, 593,
+ 96, -221, 236, -145, -145, -387, -119, 459, 460, 461,
+ 462, 464, 465, 466, 469, 470, 474, 475, 458, 476,
+ 463, 468, 471, 472, 473, 467, 359, -145, -211, -210,
+ -211, -145, -145, -223, -224, 161, -218, -145, -420, -420,
+ 105, 183, -127, 27, 44, -127, -127, -127, -127, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -127,
+ -145, -120, 458, 476, 463, 468, 471, 472, 473, 467,
+ 359, 477, 478, 479, 480, 481, 482, 483, 484, 485,
+ -120, -119, -145, -145, -145, -145, -145, -145, -145, -145,
+ -87, -145, 142, 143, 144, -210, -145, -150, -145, -145,
+ -145, -420, -145, -145, -145, -211, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -127, -145, -120, 458, 476, 463, 468, 471, 472, 473,
- 467, 359, 477, 478, 479, 480, 481, 482, 483, 484,
- 485, -120, -119, -145, -145, -145, -145, -145, -145, -145,
- -145, -87, -145, 142, 143, 144, -210, -145, -150, -145,
- -145, -145, -420, -145, -145, -145, -211, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -145, -145, -386, -385, -384, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -210, -210,
+ -210, -210, -210, -145, -420, -145, -164, -148, 105, -261,
+ 114, 101, -145, -145, -145, -145, -145, -145, -211, -297,
+ -302, -293, -294, -210, -211, -211, -210, -210, -145, -145,
+ -145, -145, -145, -145, -145, -145, -420, -145, -145, -145,
+ -145, -145, -253, -420, -210, 96, -402, 433, 434, 706,
+ -304, 289, -303, 28, -211, 98, 18, -263, 86, -295,
+ -235, -235, 69, 70, 65, -131, -132, -136, -420, -37,
+ 28, -255, -295, 645, 645, 68, 98, -333, -272, 387,
+ 388, 192, -145, -145, 96, -234, 30, 31, -190, -298,
+ 183, -302, -190, -264, 289, -190, -168, -170, -171, -172,
+ -193, -217, -419, -173, -31, 616, 613, 18, -183, -184,
+ -192, -301, -270, -315, -269, 96, 432, 434, 435, 85,
+ 134, -145, -334, 191, -362, -361, -360, -343, -345, -346,
+ -347, 97, -334, -339, 394, 393, -331, -331, -331, -331,
+ -331, -333, -333, -333, -333, 95, -331, 95, -331, -331,
+ -331, -331, -336, 95, -336, -336, -337, -336, 95, -337,
+ -338, 95, -338, -373, -145, -370, -369, -367, -368, 263,
+ 110, 688, 644, 596, 637, 678, 86, -365, -234, 105,
+ -420, -143, -286, -371, -368, -295, -295, -295, -301, 157,
+ 100, 98, 100, 98, 100, 98, -112, -60, -1, 745,
+ 746, 747, 96, 23, -344, -343, -59, 314, -376, -377,
+ 289, -372, -366, -352, 151, -351, -352, -352, -295, 96,
+ 32, 139, 139, 139, 139, 596, 242, 35, -287, 636,
+ 157, 688, 644, -343, -59, 256, 256, -314, -314, -314,
+ 98, 98, -282, 741, -183, -139, 306, 165, 295, 295,
+ 253, 308, 253, 308, -190, 319, 322, 320, 321, 318,
+ 323, 324, 325, 41, 41, 41, 41, 41, 41, 41,
+ 307, 309, 311, 297, -190, -190, -285, 85, -185, -190,
+ 29, -301, 98, 98, -190, -283, -283, -190, -283, -283,
+ -190, 98, -301, -415, 338, -295, 374, 699, 701, -123,
+ 433, 96, 596, 26, -124, 26, -419, -411, 132, 133,
+ -216, -216, -216, -209, -150, -153, -150, 156, 277, -150,
+ -150, -419, -218, -420, -297, 28, 96, 86, -420, 181,
+ 96, -420, -420, 96, 18, 96, -226, -224, 163, -145,
+ -420, 96, -420, -420, -210, -145, -145, -145, -145, -420,
+ -420, -420, -420, -420, -420, -420, -420, -420, -420, -210,
+ -420, 96, 96, 18, -318, 28, -420, -420, -420, -420,
+ 96, -420, -420, -225, -420, 18, -420, 86, 96, 176,
+ 96, -420, -420, -420, 96, 96, -420, -420, 96, -420,
+ 96, -420, -420, -420, -420, -420, -420, 96, -420, 96,
+ -420, -420, -420, 96, -420, 96, -420, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ 96, -420, 96, -420, -420, -420, 96, -420, 96, -420,
+ 96, -420, -420, 96, -420, 96, -420, 96, -420, 96,
+ 96, -420, 96, 96, 96, -420, 96, 96, 96, 96,
+ -420, -420, -420, -420, 96, 96, 96, 96, 96, 96,
+ 96, 96, 96, 96, -420, -420, -420, -420, -420, -420,
+ 96, -94, 621, -420, -420, 96, -420, 96, 96, 96,
+ 96, 96, -420, -419, 236, -420, -420, -420, -420, -420,
+ 96, 96, 96, 96, 96, 96, -420, -420, -420, 96,
+ 96, -420, 96, -420, 96, -420, -401, 705, 434, -197,
+ -196, -194, 83, 257, 84, -419, -303, -420, -158, -261,
+ -262, -261, -203, -295, 105, 114, -237, -167, 96, -169,
+ 18, -216, 97, 96, -333, -241, -247, -280, -295, 98,
+ 192, -335, 192, -335, 387, 388, -233, 236, -198, 19,
+ -202, 35, 63, -29, -419, -419, 35, 96, -186, -188,
+ -187, -189, 75, 79, 81, 76, 77, 78, 82, -309,
+ 28, -31, -168, -31, -419, -190, -183, -421, 18, 86,
+ -421, 96, 236, -271, -274, 436, 433, 439, -387, 98,
+ -111, 96, -360, -347, -238, -140, 46, -340, 395, -333,
+ 604, -333, -342, 98, -342, 105, 105, 105, 97, -49,
+ -44, -45, 36, 90, -367, -354, 98, 45, -354, -354,
+ -295, 97, -234, -139, -190, 85, -371, -371, -371, 29,
+ -2, 744, 750, 151, 95, 400, 22, -255, 96, 97,
+ -219, 315, 97, -113, -295, 97, 95, -352, -352, -295,
+ -419, 253, 34, 34, 688, 644, 636, -59, -219, -218,
+ -295, -334, 743, 742, 97, 255, 313, -144, 453, -141,
+ 98, 100, -190, -190, -190, -190, -190, -190, 245, 242,
+ 423, -410, 326, -410, 298, 256, -183, -190, 96, -84,
+ 272, 267, -306, -306, 36, -190, 433, 717, 715, -145,
+ 156, 277, -162, -153, -119, -119, -150, -316, 192, 360,
+ 276, 358, 354, 374, 365, 393, 356, 394, 351, 350,
+ 349, -316, -314, -150, -210, -145, -145, -145, 164, -145,
+ 162, -145, -95, -94, -420, -420, -420, -420, -420, -95,
+ -95, -95, -95, -95, -95, -95, -95, -95, -95, -230,
+ -145, -145, -145, -420, 192, 360, -95, -145, 18, -145,
+ -314, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -386, -385, -384, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -145, -210,
- -210, -210, -210, -210, -145, -420, -145, -164, -148, 105,
- -261, 114, 101, -145, -145, -145, -145, -145, -145, -211,
- -297, -302, -293, -294, -210, -211, -211, -210, -210, -145,
- -145, -145, -145, -145, -145, -145, -145, -420, -145, -145,
- -145, -145, -145, -253, -420, -210, 96, -402, 433, 434,
- 706, -304, 289, -303, 28, -211, 98, 18, -263, 86,
- -295, -235, -235, 69, 70, 65, -131, -132, -136, -420,
- -37, 28, -255, -295, 645, 645, 68, 98, -333, -272,
- 387, 388, 192, -145, -145, 96, -234, 30, 31, -190,
- -298, 183, -302, -190, -264, 289, -190, -168, -170, -171,
- -172, -193, -217, -419, -173, -31, 616, 613, 18, -183,
- -184, -192, -301, -270, -315, -269, 96, 432, 434, 435,
- 85, 134, -145, -334, 191, -362, -361, -360, -343, -345,
- -346, -347, 97, -334, -339, 394, 393, -331, -331, -331,
- -331, -331, -333, -333, -333, -333, 95, -331, 95, -331,
- -331, -331, -331, -336, 95, -336, -336, -337, -336, 95,
- -337, -338, 95, -338, -373, -145, -370, -369, -367, -368,
- 263, 110, 688, 644, 596, 637, 678, 86, -365, -234,
- 105, -420, -143, -286, -371, -368, -295, -295, -295, -301,
- 157, 100, 98, 100, 98, 100, 98, -112, -60, -1,
- 745, 746, 747, 96, 23, -344, -343, -59, 314, -376,
- -377, 289, -372, -366, -352, 151, -351, -352, -352, -295,
- 96, 32, 139, 139, 139, 139, 596, 242, 35, -287,
- 636, 157, 688, 644, -343, -59, 256, 256, -314, -314,
- -314, 98, 98, -282, 741, -183, -139, 306, 165, 295,
- 295, 253, 308, 253, 308, -190, 319, 322, 320, 321,
- 318, 323, 324, 325, 41, 41, 41, 41, 41, 41,
- 41, 307, 309, 311, 297, -190, -190, -285, 85, -185,
- -190, 29, -301, 98, 98, -190, -283, -283, -190, -283,
- -283, -190, 98, -301, -415, 338, -295, 374, 699, 701,
- -123, 433, 96, 596, 26, -124, 26, -419, -411, 132,
- 133, -216, -216, -216, -209, -150, -153, -150, 156, 277,
- -150, -150, -419, -218, -420, -297, 28, 96, 86, -420,
- 181, 96, -420, -420, 96, 18, 96, -226, -224, 163,
- -145, -420, 96, -420, -420, -210, -145, -145, -145, -145,
- -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
- -210, -420, 96, 96, 18, -318, 28, -420, -420, -420,
- -420, 96, -420, -420, -225, -420, 18, -420, 86, 96,
- 176, 96, -420, -420, -420, 96, 96, -420, -420, 96,
- -420, 96, -420, -420, -420, -420, -420, -420, 96, -420,
- 96, -420, -420, -420, 96, -420, 96, -420, -420, 96,
+ -145, -145, -145, -145, -145, -145, -384, -145, -210, -145,
+ -210, -145, -145, -145, -145, -145, -385, -385, -385, -385,
+ -385, -210, -210, -210, -210, -145, -419, -295, -98, -97,
+ -96, 671, 257, -94, -164, -98, -164, 235, -145, 235,
+ 235, 235, -145, -211, -297, -145, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -194, -348, 295, -348, 295,
+ -348, -265, 96, -276, 26, 18, 63, 63, -167, -198,
+ -132, -168, -295, -244, 698, -250, 52, -248, -249, 53,
+ -245, 54, 62, -335, -335, 183, -235, -145, -266, 85,
+ -267, -275, -218, -213, -215, -214, -419, -254, -420, -295,
+ -265, -267, -170, -171, -171, -170, -171, 75, 75, 75,
+ 80, 75, 80, 75, -187, -301, -420, -145, -304, 86,
+ -168, -168, -192, -301, 183, 433, 437, 438, -360, -408,
+ 130, 157, 34, 85, 391, 110, -406, 191, 633, 683,
+ 688, 644, 637, 678, -407, 259, 150, 151, 271, 28,
+ 47, 97, 96, 97, 96, 97, 97, 96, -288, -287,
+ -45, -44, -354, -354, 105, -387, 98, 98, 255, -190,
+ 85, 85, 85, -114, 748, 105, 95, -3, 90, -145,
+ 95, 23, -343, -218, -378, -328, -379, -329, -330, -5,
+ -6, -355, -117, 63, 110, -63, 50, 254, 728, 729,
+ 139, -419, 741, -370, -255, -374, -376, -190, -149, -419,
+ -161, -147, -146, -148, -154, 181, 182, 276, 356, 357,
+ -219, -190, -138, 304, 312, 95, -142, 101, -389, 86,
+ 295, 391, 295, 391, 98, -412, 327, 98, -412, -190,
+ -84, -49, -190, -283, -283, 36, -387, -420, -162, -153,
+ -126, 176, 596, -319, 603, -331, -331, -331, -338, -331,
+ 346, -331, 346, -331, -420, -420, -420, 96, -420, 26,
+ -420, 96, -145, 96, -95, -95, -95, -95, -95, -122,
+ 492, 96, 96, -420, 95, 95, -420, -145, -420, -420,
+ -420, 96, -420, -420, -420, -420, -420, -420, -420, -420,
+ -420, -420, -420, -420, -420, 96, -420, 96, -420, 96,
-420, 96, -420, 96, -420, 96, -420, 96, -420, 96,
-420, 96, -420, 96, -420, 96, -420, 96, -420, 96,
- -420, 96, -420, 96, -420, 96, -420, 96, -420, 96,
- -420, 96, -420, 96, -420, -420, -420, 96, -420, 96,
- -420, 96, -420, -420, 96, -420, 96, -420, 96, -420,
- 96, 96, -420, 96, 96, 96, -420, 96, 96, 96,
- 96, -420, -420, -420, -420, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, -420, -420, -420, -420, -420,
- -420, 96, -94, 621, -420, -420, 96, -420, 96, 96,
- 96, 96, 96, -420, -419, 236, -420, -420, -420, -420,
- -420, 96, 96, 96, 96, 96, 96, -420, -420, -420,
- 96, 96, -420, 96, -420, 96, -420, -401, 705, 434,
- -197, -196, -194, 83, 257, 84, -419, -303, -420, -158,
- -261, -262, -261, -203, -295, 105, 114, -237, -167, 96,
- -169, 18, -216, 97, 96, -333, -241, -247, -280, -295,
- 98, 192, -335, 192, -335, 387, 388, -233, 236, -198,
- 19, -202, 35, 63, -29, -419, -419, 35, 96, -186,
- -188, -187, -189, 75, 79, 81, 76, 77, 78, 82,
- -309, 28, -31, -168, -31, -419, -190, -183, -421, 18,
- 86, -421, 96, 236, -271, -274, 436, 433, 439, -387,
- 98, -111, 96, -360, -347, -238, -140, 46, -340, 395,
- -333, 604, -333, -342, 98, -342, 105, 105, 105, 97,
- -49, -44, -45, 36, 90, -367, -354, 98, 45, -354,
- -354, -295, 97, -234, -139, -190, 85, -371, -371, -371,
- 29, -2, 744, 750, 151, 95, 400, 22, -255, 96,
- 97, -219, 315, 97, -113, -295, 97, 95, -352, -352,
- -295, -419, 253, 34, 34, 688, 644, 636, -59, -219,
- -218, -295, -334, 743, 742, 97, 255, 313, -144, 453,
- -141, 98, 100, -190, -190, -190, -190, -190, -190, 245,
- 242, 423, -410, 326, -410, 298, 256, -183, -190, 96,
- -84, 272, 267, -306, -306, 36, -190, 433, 717, 715,
- -145, 156, 277, -162, -153, -119, -119, -150, -316, 192,
- 360, 276, 358, 354, 374, 365, 393, 356, 394, 351,
- 350, 349, -316, -314, -150, -210, -145, -145, -145, 164,
- -145, 162, -145, -95, -94, -420, -420, -420, -420, -420,
- -95, -95, -95, -95, -95, -95, -95, -95, -95, -95,
- -230, -145, -145, -145, -420, 192, 360, -95, -145, 18,
- -145, -314, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -420, 96, -420, 96, -420, 96, -420, -420, 96, -420,
+ -420, -420, 96, -420, 96, -420, 96, -420, -420, -420,
+ 96, -317, 689, -420, -420, -420, -420, -420, -420, -420,
+ -420, -420, -420, -420, -93, -296, -94, 653, 653, -420,
+ -94, -227, 96, -150, -420, -150, -150, -150, -420, -420,
+ -420, 96, -420, 96, 96, -420, 96, -420, 96, -420,
+ -420, -420, -420, 96, -195, 26, -419, -195, -419, -195,
+ -420, -261, -190, -198, -228, 20, -241, 57, 366, -252,
+ -251, 61, 53, -249, 23, 55, 23, 33, -266, 96,
+ 165, -308, 96, 28, -420, -420, 96, 63, 236, -420,
+ -198, -181, -180, 85, 86, -182, 85, -180, 75, 75,
+ -256, 96, -264, -168, -198, -198, 236, 130, -419, -149,
+ 16, 98, 98, -387, -405, 732, 733, 34, 105, -354,
+ -354, 151, 151, -190, 95, -333, 98, -333, 105, 105,
+ 34, 91, 92, 93, 34, 87, 88, 89, -190, -190,
+ -190, -190, -375, 95, 23, -145, 95, 165, 97, -255,
+ -255, 291, 176, -354, 726, 297, 297, -354, -354, -354,
+ -116, -115, 748, 97, -420, 96, -341, 596, 599, -145,
+ -155, -155, -256, 97, -383, 596, -388, -295, -295, -295,
+ -295, 105, 107, -420, 594, 82, 597, -420, -333, -145,
+ -145, -145, -145, -235, 98, -145, -145, 105, 105, -95,
+ -420, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -384, -145, -210,
- -145, -210, -145, -145, -145, -145, -145, -385, -385, -385,
- -385, -385, -210, -210, -210, -210, -145, -419, -295, -98,
- -97, -96, 671, 257, -94, -164, -98, -164, 235, -145,
- 235, 235, 235, -145, -211, -297, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -194, -348, 295, -348,
- 295, -348, -265, 96, -276, 26, 18, 63, 63, -167,
- -198, -132, -168, -295, -244, 698, -250, 52, -248, -249,
- 53, -245, 54, 62, -335, -335, 183, -235, -145, -266,
- 85, -267, -275, -218, -213, -215, -214, -419, -254, -420,
- -295, -265, -267, -170, -171, -171, -170, -171, 75, 75,
- 75, 80, 75, 80, 75, -187, -301, -420, -145, -304,
- 86, -168, -168, -192, -301, 183, 433, 437, 438, -360,
- -408, 130, 157, 34, 85, 391, 110, -406, 191, 633,
- 683, 688, 644, 637, 678, -407, 259, 150, 151, 271,
- 28, 47, 97, 96, 97, 96, 97, 97, 96, -288,
- -287, -45, -44, -354, -354, 105, -387, 98, 98, 255,
- -190, 85, 85, 85, -114, 748, 105, 95, -3, 90,
- -145, 95, 23, -343, -218, -378, -328, -379, -329, -330,
- -5, -6, -355, -117, 63, 110, -63, 50, 254, 728,
- 729, 139, -419, 741, -370, -255, -374, -376, -190, -149,
- -419, -161, -147, -146, -148, -154, 181, 182, 276, 356,
- 357, -219, -190, -138, 304, 312, 95, -142, 101, -389,
- 86, 295, 391, 295, 391, 98, -412, 327, 98, -412,
- -190, -84, -49, -190, -283, -283, 36, -387, -420, -162,
- -153, -126, 176, 596, -319, 603, -331, -331, -331, -338,
- -331, 346, -331, 346, -331, -420, -420, -420, 96, -420,
- 26, -420, 96, -145, 96, -95, -95, -95, -95, -95,
- -122, 492, 96, 96, -420, 95, 95, -420, -145, -420,
- -420, -420, 96, -420, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -420, -420, 96, -420, 96, -420,
- 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
- 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
- 96, -420, 96, -420, 96, -420, 96, -420, -420, 96,
- -420, -420, -420, 96, -420, 96, -420, 96, -420, -420,
- -420, 96, -317, 689, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -420, -93, -296, -94, 653, 653,
- -420, -94, -227, 96, -150, -420, -150, -150, -150, -420,
- -420, -420, 96, -420, 96, 96, -420, 96, -420, 96,
- -420, -420, -420, -420, 96, -195, 26, -419, -195, -419,
- -195, -420, -261, -190, -198, -228, 20, -241, 57, 366,
- -252, -251, 61, 53, -249, 23, 55, 23, 33, -266,
- 96, 165, -308, 96, 28, -420, -420, 96, 63, 236,
- -420, -198, -181, -180, 85, 86, -182, 85, -180, 75,
- 75, -256, 96, -264, -168, -198, -198, 236, 130, -419,
- -149, 16, 98, 98, -387, -405, 732, 733, 34, 105,
- -354, -354, 151, 151, -190, 95, -333, 98, -333, 105,
- 105, 34, 91, 92, 93, 34, 87, 88, 89, -190,
- -190, -190, -190, -375, 95, 23, -145, 95, 165, 97,
- -255, -255, 291, 176, -354, 726, 297, 297, -354, -354,
- -354, -116, -115, 748, 97, -420, 96, -341, 596, 599,
- -145, -155, -155, -256, 97, -383, 596, -388, -295, -295,
- -295, -295, 105, 107, -420, 594, 82, 597, -420, -333,
- -145, -145, -145, -145, -235, 98, -145, -145, 105, 105,
- -95, -420, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -210, -145, -420, -178, -177, -179, 709, 130,
- 34, -316, -420, -212, 289, -101, -100, -99, 18, -420,
- -145, -119, -119, -119, -119, -145, -145, -145, -145, -145,
- -145, -419, 75, 22, 20, -258, -295, 259, -419, -258,
- -419, -304, -228, -229, 21, 23, -242, 59, -240, 58,
- -240, -251, 23, 23, 98, 23, 98, 151, -275, -145,
- -215, -303, 63, -29, -295, -213, -295, -230, -145, 95,
- -145, -158, -198, -198, -145, -205, 516, 518, 519, 520,
- 517, 522, 523, 524, 525, 526, 527, 528, 529, 530,
- 531, 521, 532, 493, 494, 495, 117, 119, 118, 127,
- 128, 496, 497, 498, 360, 544, 545, 539, 542, 543,
- 541, 540, 375, 376, 499, 562, 563, 567, 566, 564,
- 565, 568, 571, 572, 573, 574, 575, 576, 578, 577,
- 569, 570, 547, 546, 548, 549, 550, 551, 552, 553,
- 555, 554, 556, 557, 558, 559, 560, 561, 579, 580,
- 581, 582, 583, 585, 584, 589, 588, 586, 587, 591,
- 590, 500, 501, 120, 121, 122, 123, 124, 125, 126,
- 502, 505, 503, 506, 507, 508, 513, 514, 509, 510,
- 511, 512, 515, 386, 384, 385, 381, 380, 379, 440,
- 445, 446, 448, 533, 534, 535, 536, 537, 538, 690,
- 691, 692, 693, 694, 695, 696, 697, 98, 98, 95,
- -145, 97, 97, -256, -374, -60, 97, -257, -255, 105,
- 97, 292, -214, -419, 98, -354, -354, -354, 105, 105,
- -303, -420, 96, -295, -407, -376, 600, 600, -420, 28,
- -382, -381, -297, 95, 86, 68, 595, 598, -420, -420,
- -420, 96, -420, -420, -420, 97, 97, -420, -420, -420,
+ -145, -210, -145, -420, -178, -177, -179, 709, 130, 34,
+ -316, -420, -212, 289, -101, -100, -99, 18, -420, -145,
+ -119, -119, -119, -119, -145, -145, -145, -145, -145, -145,
+ -419, 75, 22, 20, -258, -295, 259, -419, -258, -419,
+ -304, -228, -229, 21, 23, -242, 59, -240, 58, -240,
+ -251, 23, 23, 98, 23, 98, 151, -275, -145, -215,
+ -303, 63, -29, -295, -213, -295, -230, -145, 95, -145,
+ -158, -198, -198, -145, -205, 516, 518, 519, 520, 517,
+ 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
+ 521, 532, 493, 494, 495, 117, 119, 118, 127, 128,
+ 496, 497, 498, 360, 544, 545, 539, 542, 543, 541,
+ 540, 375, 376, 499, 562, 563, 567, 566, 564, 565,
+ 568, 571, 572, 573, 574, 575, 576, 578, 577, 569,
+ 570, 547, 546, 548, 549, 550, 551, 552, 553, 555,
+ 554, 556, 557, 558, 559, 560, 561, 579, 580, 581,
+ 582, 583, 585, 584, 589, 588, 586, 587, 591, 590,
+ 500, 501, 120, 121, 122, 123, 124, 125, 126, 502,
+ 505, 503, 506, 507, 508, 513, 514, 509, 510, 511,
+ 512, 515, 386, 384, 385, 381, 380, 379, 440, 445,
+ 446, 448, 533, 534, 535, 536, 537, 538, 690, 691,
+ 692, 693, 694, 695, 696, 697, 98, 98, 95, -145,
+ 97, 97, -256, -374, -60, 97, -257, -255, 105, 97,
+ 292, -214, -419, 98, -354, -354, -354, 105, 105, -303,
+ -420, 96, -295, -407, -376, 600, 600, -420, 28, -382,
+ -381, -297, 95, 86, 68, 595, 598, -420, -420, -420,
+ 96, -420, -420, -420, 97, 97, -420, -420, -420, -420,
-420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -420, -420, -420, -420, -420, 96,
- -420, -177, -179, -420, 85, -158, -230, 23, -98, 314,
- 316, -98, -420, -420, -420, -420, -420, 96, -420, -420,
- 96, -420, 96, -420, -420, -258, -420, 23, 23, 96,
- -420, -258, -420, -258, -197, -229, -108, -107, -106, 627,
- -145, -210, -243, 60, 85, 134, 98, 98, 98, 16,
- -419, -213, 236, -308, -235, -255, -175, 400, -230, -420,
- -255, 97, 28, 97, 750, 151, 97, -214, -125, -419,
- 288, -303, 98, 98, -115, -118, -29, 96, 165, -255,
- -190, 68, -145, -210, -420, 85, 608, 709, -92, -91,
- -88, 720, 746, -210, -94, -94, -145, -145, -145, -420,
- -295, 259, -420, -420, -108, 96, -105, -104, -295, -320,
- 596, 85, 134, -267, -255, -308, -295, 97, -420, -419,
- -235, 97, -239, -29, 95, -3, 288, -328, -379, -329,
- -330, -5, -6, -355, -82, 596, -381, -359, -301, -297,
- 98, 105, 97, 596, -420, -420, -90, 159, 718, 686,
- -155, 235, -420, 96, -420, 96, -420, 96, -106, 96,
- 28, 601, -420, -304, -176, -174, -295, 650, -398, -397,
- 592, -408, -404, 130, 157, 110, -406, 688, 644, 140,
- 141, -82, -145, 95, -420, -83, 303, 705, 236, -389,
- 597, -90, 719, 664, 639, 664, 639, -150, -145, -145,
- -145, -104, -419, -420, 96, 26, -321, -62, 661, -395,
- -396, 85, -399, 406, 660, 681, 130, 98, 97, -255,
- 264, -302, -383, 598, 156, -119, -420, 96, -420, 96,
- -420, -93, -174, 657, -334, -158, -396, 85, -395, 85,
- 17, 16, -4, 749, 97, 305, -90, 664, 639, -145,
- -145, -420, -61, 29, -175, -394, 272, 267, 270, 35,
- -394, 105, -4, -420, -420, 661, 266, 34, 130, -158,
- -178, -177, -177,
+ -420, -420, -420, -420, -420, -420, -420, -420, 96, -420,
+ -177, -179, -420, 85, -158, -230, 23, -98, 314, 316,
+ -98, -420, -420, -420, -420, -420, 96, -420, -420, 96,
+ -420, 96, -420, -420, -258, -420, 23, 23, 96, -420,
+ -258, -420, -258, -197, -229, -108, -107, -106, 627, -145,
+ -210, -243, 60, 85, 134, 98, 98, 98, 16, -419,
+ -213, 236, -308, -235, -255, -175, 400, -230, -420, -255,
+ 97, 28, 97, 750, 151, 97, -214, -125, -419, 288,
+ -303, 98, 98, -115, -118, -29, 96, 165, -255, -190,
+ 68, -145, -210, -420, 85, 608, 709, -92, -91, -88,
+ 720, 746, -210, -94, -94, -145, -145, -145, -420, -295,
+ 259, -420, -420, -108, 96, -105, -104, -295, -320, 596,
+ 85, 134, -267, -255, -308, -295, 97, -420, -419, -235,
+ 97, -239, -29, 95, -3, 288, -328, -379, -329, -330,
+ -5, -6, -355, -82, 596, -381, -359, -301, -297, 98,
+ 105, 97, 596, -420, -420, -90, 159, 718, 686, -155,
+ 235, -420, 96, -420, 96, -420, 96, -106, 96, 28,
+ 601, -420, -304, -176, -174, -295, 650, -398, -397, 592,
+ -408, -404, 130, 157, 110, -406, 688, 644, 140, 141,
+ -82, -145, 95, -420, -83, 303, 705, 236, -389, 597,
+ -90, 719, 664, 639, 664, 639, -150, -145, -145, -145,
+ -104, -419, -420, 96, 26, -321, -62, 661, -395, -396,
+ 85, -399, 406, 660, 681, 130, 98, 97, -255, 264,
+ -302, -383, 598, 156, -119, -420, 96, -420, 96, -420,
+ -93, -174, 657, -334, -158, -396, 85, -395, 85, 17,
+ 16, -4, 749, 97, 305, -90, 664, 639, -145, -145,
+ -420, -61, 29, -175, -394, 272, 267, 270, 35, -394,
+ 105, -4, -420, -420, 661, 266, 34, 130, -158, -178,
+ -177, -177,
}
var yyDef = [...]int{
- 889, -2, -2, 891, 2, 4, 5, 6, 7, 8,
+ 888, -2, -2, 890, 2, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 70, 72, 73, 889, 889, 889, 0, 889, 0,
- 0, 889, -2, -2, 889, 1644, 0, 889, 0, 884,
- 0, -2, 804, 810, 0, 819, -2, 0, 0, 889,
- 889, 2284, 2284, 884, 0, 0, 0, 0, 0, 889,
- 889, 889, 889, 1649, 1502, 50, 889, 0, 85, 86,
- 839, 840, 841, 65, 0, 2282, 890, 1, 3, 71,
- 75, 0, 0, 0, 58, 1511, 0, 78, 0, 0,
- 893, 0, 0, 1627, 889, 889, 0, 126, 127, 0,
+ 39, 70, 72, 73, 888, 888, 888, 0, 888, 0,
+ 0, 888, -2, -2, 888, 1643, 0, 888, 0, 883,
+ 0, -2, 803, 809, 0, 818, -2, 0, 0, 888,
+ 888, 2283, 2283, 883, 0, 0, 0, 0, 0, 888,
+ 888, 888, 888, 1648, 1501, 50, 888, 0, 85, 86,
+ 838, 839, 840, 65, 0, 2281, 889, 1, 3, 71,
+ 75, 0, 0, 0, 58, 1510, 0, 78, 0, 0,
+ 892, 0, 0, 1626, 888, 888, 0, 126, 127, 0,
0, 0, -2, 130, -2, 159, 160, 161, 0, 166,
- 609, 527, 579, 525, 564, -2, 513, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 530,
- 402, 402, 0, 0, -2, 513, 513, 513, 1629, 0,
- 0, 0, 561, 464, 402, 402, 402, 0, 402, 402,
- 402, 402, 0, 0, 402, 402, 402, 402, 402, 402,
- 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
- 402, 1529, 165, 1645, 1642, 1643, 1805, 1806, 1807, 1808,
- 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
- 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828,
- 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838,
- 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
- 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858,
- 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868,
- 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878,
- 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888,
- 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898,
- 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908,
- 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
- 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928,
- 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938,
- 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948,
- 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958,
- 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968,
- 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978,
- 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988,
- 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
- 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
- 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
- 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
- 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
- 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
- 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
- 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
- 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
- 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
- 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
- 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118,
- 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128,
- 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138,
- 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
- 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158,
- 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168,
- 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
- 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188,
- 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198,
- 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208,
- 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218,
- 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228,
- 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
- 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248,
- 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
- 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
- 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
- 2279, 2280, 2281, 0, 1621, 0, 722, 993, 0, 885,
- 886, 0, 793, 793, 0, 793, 793, 793, 793, 0,
- 0, 0, 736, 0, 0, 0, 0, 790, 0, 752,
- 753, 0, 790, 0, 759, 796, 0, 0, 766, 793,
- 793, 769, 2285, 0, 2285, 2285, 0, 0, 1612, 0,
- 787, 785, 799, 800, 42, 803, 806, 807, 808, 809,
- 812, 0, 823, 826, 1638, 1639, 0, 828, 833, 852,
- 853, 0, 45, 1153, 0, 1017, 0, 1028, -2, 1039,
- 1056, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 0, 0,
- 0, 0, 1069, 1070, 0, 0, 0, 0, 0, 1133,
- 0, 0, 0, 0, 2007, 1473, 0, 0, 1435, 1435,
- 1169, 1435, 1435, 1437, 1437, 1437, 1858, 1999, 2008, 2187,
- 1819, 1825, 1826, 1827, 2133, 2134, 2135, 2136, 2228, 2229,
- 2233, 1921, 1814, 2200, 2201, 0, 2281, 1960, 1968, 1969,
- 1945, 1954, 1993, 2095, 2212, 1837, 1988, 2058, 1918, 1940,
- 1941, 2076, 2077, 1964, 1965, 1944, 2139, 2141, 2157, 2158,
- 2143, 2145, 2154, 2160, 2165, 2144, 2156, 2161, 2174, 2178,
- 2181, 2182, 2183, 2151, 2149, 2162, 2166, 2168, 2170, 2176,
- 2179, 2152, 2150, 2163, 2167, 2169, 2171, 2177, 2180, 2138,
- 2142, 2146, 2155, 2173, 2153, 2172, 2147, 2159, 2164, 2175,
- 2148, 2140, 1958, 1961, 1948, 1949, 1951, 1953, 1959, 1966,
- 1972, 1950, 1971, 1970, 0, 1946, 1947, 1952, 1963, 1967,
- 1955, 1956, 1957, 1962, 1973, 2014, 2013, 2012, 2057, 1984,
- 2056, 0, 0, 0, 0, 0, 1808, 1863, 1864, 2184,
- 1357, 1358, 1359, 1360, 0, 0, 0, 0, 0, 0,
- 0, 291, 292, 1486, 1487, 44, 1152, 1608, 1437, 1437,
- 1437, 1437, 1437, 1437, 1091, 1092, 1093, 1094, 1095, 1121,
- 1122, 1128, 1129, 2071, 2072, 2073, 2074, 1901, 2223, 1910,
- 1911, 2053, 2054, 1923, 1924, 2255, 2256, -2, -2, -2,
- 232, 233, 234, 235, 236, 237, 238, 239, 0, 1862,
- 2198, 2199, 228, 0, 0, 296, 293, 294, 295, 1135,
- 1136, 249, 250, 251, 252, 253, 254, 255, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
- 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 298, 299, 2284, 0, 862, 0, 0,
- 0, 0, 0, 0, 1650, 1651, 1511, 0, 1503, 1502,
- 63, 0, 889, -2, 0, 0, 0, 0, 47, 0,
- 52, 950, 892, 77, 76, 1551, 1554, 0, 0, 0,
- 59, 1512, 67, 69, 1513, 0, 894, 895, 0, 926,
- 930, 0, 0, 0, 1628, 1627, 1627, 102, 0, 0,
- 103, 123, 124, 125, 0, 0, 109, 110, 1614, 1615,
- 43, 0, 0, 177, 178, 0, 1109, 429, 0, 173,
- 0, 422, 361, 0, 1529, 0, 0, 0, 0, 0,
- 1625, 0, 1622, 154, 155, 162, 163, 164, 402, 402,
- 402, 576, 0, 0, 165, 165, 534, 535, 536, 0,
- 0, -2, 427, 0, 514, 0, 0, 416, 416, 420,
- 418, 419, 0, 0, 0, 0, 0, 0, 0, 0,
- 553, 0, 554, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 670, 0, 403, 0, 574, 575, 465, 0,
- 0, 0, 0, 0, 0, 0, 0, 1630, 1631, 0,
- 551, 552, 0, 0, 0, 402, 402, 0, 0, 0,
- 0, 402, 402, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 153, 1542, 0, 0, 0, -2, 0, 714, 0,
- 0, 0, 1623, 1623, 0, 721, 0, 0, 0, 726,
- 0, 0, 727, 0, 790, 790, 788, 789, 729, 730,
- 731, 732, 793, 0, 0, 411, 412, 413, 790, 793,
- 0, 793, 793, 793, 793, 790, 790, 790, 793, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2285, 796,
- 793, 0, 760, 0, 761, 762, 763, 764, 767, 768,
- 770, 2286, 2287, 1640, 1641, 1652, 1653, 1654, 1655, 1656,
- 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666,
- 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676,
- 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686,
- 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
- 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706,
- 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716,
- 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726,
- 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
- 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746,
- 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756,
- 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
- 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776,
- 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786,
- 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796,
- 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 2285, 2285,
- 774, 778, 782, 780, 1613, 805, 811, 813, 814, 0,
- 0, 824, 827, 846, 49, 1909, 832, 49, 834, 835,
- 836, 837, 838, 864, 865, 870, 0, 0, 0, 0,
- 876, 877, 878, 0, 0, 881, 882, 883, 0, 0,
- 0, 0, 0, 1015, 0, 0, 1141, 1142, 1143, 1144,
- 1145, 1146, 1147, 1148, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1040, 1041, 0, 0, 0, 1065, 1066, 1067,
- 1068, 1071, 0, 1082, 0, 1084, 1482, -2, 0, 0,
- 0, 1076, 1077, 0, 0, 0, 1633, 1633, 0, 0,
- 0, 1474, 0, 0, 1167, 0, 1168, 1170, 1171, 1172,
- 0, 1173, 1174, 899, 899, 899, 899, 899, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 899, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1633, 0, 0, 0, 0, 0, 0, 0,
+ 608, 526, 578, 524, 563, -2, 512, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 529,
+ 401, 401, 0, 0, -2, 512, 512, 512, 1628, 0,
+ 0, 0, 560, 463, 401, 401, 401, 0, 401, 401,
+ 401, 401, 0, 0, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 1528, 165, 1644, 1641, 1642, 1804, 1805, 1806, 1807,
+ 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
+ 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
+ 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
+ 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
+ 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
+ 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
+ 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
+ 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
+ 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
+ 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
+ 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
+ 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
+ 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
+ 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
+ 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
+ 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
+ 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
+ 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
+ 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+ 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
+ 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027,
+ 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
+ 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
+ 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
+ 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
+ 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077,
+ 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
+ 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
+ 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
+ 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
+ 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
+ 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
+ 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
+ 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
+ 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
+ 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
+ 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
+ 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197,
+ 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
+ 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
+ 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227,
+ 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
+ 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247,
+ 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257,
+ 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267,
+ 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277,
+ 2278, 2279, 2280, 0, 1620, 0, 721, 992, 0, 884,
+ 885, 0, 792, 792, 0, 792, 792, 792, 792, 0,
+ 0, 0, 735, 0, 0, 0, 0, 789, 0, 751,
+ 752, 0, 789, 0, 758, 795, 0, 0, 765, 792,
+ 792, 768, 2284, 0, 2284, 2284, 0, 0, 1611, 0,
+ 786, 784, 798, 799, 42, 802, 805, 806, 807, 808,
+ 811, 0, 822, 825, 1637, 1638, 0, 827, 832, 851,
+ 852, 0, 45, 1152, 0, 1016, 0, 1027, -2, 1038,
+ 1055, 1056, 1057, 1058, 1059, 1061, 1062, 1063, 0, 0,
+ 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 1132,
+ 0, 0, 0, 0, 2006, 1472, 0, 0, 1434, 1434,
+ 1168, 1434, 1434, 1436, 1436, 1436, 1857, 1998, 2007, 2186,
+ 1818, 1824, 1825, 1826, 2132, 2133, 2134, 2135, 2227, 2228,
+ 2232, 1920, 1813, 2199, 2200, 0, 2280, 1959, 1967, 1968,
+ 1944, 1953, 1992, 2094, 2211, 1836, 1987, 2057, 1917, 1939,
+ 1940, 2075, 2076, 1963, 1964, 1943, 2138, 2140, 2156, 2157,
+ 2142, 2144, 2153, 2159, 2164, 2143, 2155, 2160, 2173, 2177,
+ 2180, 2181, 2182, 2150, 2148, 2161, 2165, 2167, 2169, 2175,
+ 2178, 2151, 2149, 2162, 2166, 2168, 2170, 2176, 2179, 2137,
+ 2141, 2145, 2154, 2172, 2152, 2171, 2146, 2158, 2163, 2174,
+ 2147, 2139, 1957, 1960, 1947, 1948, 1950, 1952, 1958, 1965,
+ 1971, 1949, 1970, 1969, 0, 1945, 1946, 1951, 1962, 1966,
+ 1954, 1955, 1956, 1961, 1972, 2013, 2012, 2011, 2056, 1983,
+ 2055, 0, 0, 0, 0, 0, 1807, 1862, 1863, 2183,
+ 1356, 1357, 1358, 1359, 0, 0, 0, 0, 0, 0,
+ 0, 290, 291, 1485, 1486, 44, 1151, 1607, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1090, 1091, 1092, 1093, 1094, 1120,
+ 1121, 1127, 1128, 2070, 2071, 2072, 2073, 1900, 2222, 1909,
+ 1910, 2052, 2053, 1922, 1923, 2254, 2255, -2, -2, -2,
+ 232, 233, 234, 235, 236, 237, 238, 239, 0, 1861,
+ 2197, 2198, 228, 0, 0, 295, 292, 293, 294, 1134,
+ 1135, 248, 249, 250, 251, 252, 253, 254, 255, 256,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 297, 298, 2283, 0, 861, 0, 0,
+ 0, 0, 0, 0, 1649, 1650, 1510, 0, 1502, 1501,
+ 63, 0, 888, -2, 0, 0, 0, 0, 47, 0,
+ 52, 949, 891, 77, 76, 1550, 1553, 0, 0, 0,
+ 59, 1511, 67, 69, 1512, 0, 893, 894, 0, 925,
+ 929, 0, 0, 0, 1627, 1626, 1626, 102, 0, 0,
+ 103, 123, 124, 125, 0, 0, 109, 110, 1613, 1614,
+ 43, 0, 0, 177, 178, 0, 1108, 428, 0, 173,
+ 0, 421, 360, 0, 1528, 0, 0, 0, 0, 0,
+ 1624, 0, 1621, 154, 155, 162, 163, 164, 401, 401,
+ 401, 575, 0, 0, 165, 165, 533, 534, 535, 0,
+ 0, -2, 426, 0, 513, 0, 0, 415, 415, 419,
+ 417, 418, 0, 0, 0, 0, 0, 0, 0, 0,
+ 552, 0, 553, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 669, 0, 402, 0, 573, 574, 464, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1629, 1630, 0,
+ 550, 551, 0, 0, 0, 401, 401, 0, 0, 0,
+ 0, 401, 401, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 153, 1541, 0, 0, 0, -2, 0, 713, 0,
+ 0, 0, 1622, 1622, 0, 720, 0, 0, 0, 725,
+ 0, 0, 726, 0, 789, 789, 787, 788, 728, 729,
+ 730, 731, 792, 0, 0, 410, 411, 412, 789, 792,
+ 0, 792, 792, 792, 792, 789, 789, 789, 792, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2284, 795,
+ 792, 0, 759, 0, 760, 761, 762, 763, 766, 767,
+ 769, 2285, 2286, 1639, 1640, 1651, 1652, 1653, 1654, 1655,
+ 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
+ 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
+ 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
+ 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705,
+ 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715,
+ 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725,
+ 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735,
+ 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745,
+ 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755,
+ 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
+ 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
+ 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
+ 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
+ 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 2284, 2284,
+ 773, 777, 781, 779, 1612, 804, 810, 812, 813, 0,
+ 0, 823, 826, 845, 49, 1908, 831, 49, 833, 834,
+ 835, 836, 837, 863, 864, 869, 0, 0, 0, 0,
+ 875, 876, 877, 0, 0, 880, 881, 882, 0, 0,
+ 0, 0, 0, 1014, 0, 0, 1140, 1141, 1142, 1143,
+ 1144, 1145, 1146, 1147, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1039, 1040, 0, 0, 0, 1064, 1065, 1066,
+ 1067, 1070, 0, 1081, 0, 1083, 1481, -2, 0, 0,
+ 0, 1075, 1076, 0, 0, 0, 1632, 1632, 0, 0,
+ 0, 1473, 0, 0, 1166, 0, 1167, 1169, 1170, 1171,
+ 0, 1172, 1173, 898, 898, 898, 898, 898, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 898, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9656,264 +9593,264 @@ var yyDef = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1633, 0, 0,
- 1633, 1633, 0, 0, 220, 221, 222, 223, 224, 225,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 240, 241, 242, 243, 244,
- 245, 300, 246, 247, 248, 1152, 0, 0, 0, 46,
- 854, 855, 0, 976, 1633, 0, 0, 905, 0, 1648,
- 57, 66, 68, 1511, 61, 1511, 0, 909, 0, 0,
- -2, -2, 910, 911, 915, 916, 917, 918, 919, 920,
- 921, 922, 923, 54, 2283, 55, 0, 74, 0, 48,
- 0, 0, 1552, 0, 1555, 0, 0, 0, 375, 1559,
- 0, 0, 1504, 1505, 1508, 0, 927, 2005, 931, 0,
- 933, 934, 0, 0, 100, 0, 992, 0, 0, 0,
- 111, 0, 113, 114, 0, 0, 0, 386, 1616, 1617,
- 1618, -2, 409, 0, 386, 370, 308, 309, 310, 361,
- 312, 361, 361, 361, 361, 375, 375, 375, 375, 343,
- 344, 345, 346, 347, 0, 361, 0, 329, 361, 361,
- 361, 361, 351, 352, 353, 354, 355, 356, 357, 358,
- 313, 314, 315, 316, 317, 318, 319, 320, 321, 363,
- 363, 363, 363, 363, 367, 367, 0, 1110, 0, 390,
- 0, 1508, 0, 0, 1542, 1625, 1635, 0, 0, 0,
- 0, 0, 132, 0, 0, 0, 577, 620, 528, 565,
- 578, 0, 531, 532, -2, 0, 0, 513, 0, 515,
- 0, 410, 0, -2, 0, 420, 0, 416, 420, 417,
- 420, 408, 421, 555, 556, 557, 0, 559, 560, 650,
- 962, 0, 0, 0, 0, 0, 656, 657, 658, 0,
- 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 566, 567, 568, 569, 570, 571, 572, 573, 0, 0,
- 0, 0, 515, 0, 562, 0, 0, 466, 467, 468,
- 0, 0, 471, 472, 473, 474, 0, 0, 477, 478,
- 479, 979, 980, 480, 481, 506, 507, 508, 482, 483,
- 484, 485, 486, 487, 488, 500, 501, 502, 503, 504,
- 505, 489, 490, 491, 492, 493, 494, 497, 0, 147,
- 1533, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1623, 0,
- 0, 0, 0, 908, 994, 1646, 1647, 723, 0, 0,
- 794, 795, 0, 414, 415, 793, 793, 733, 775, 0,
- 793, 737, 776, 738, 740, 739, 741, 754, 755, 793,
- 744, 791, 792, 745, 746, 747, 748, 749, 750, 751,
- 771, 756, 757, 758, 797, 0, 801, 802, 772, 773,
- 0, 783, 0, 0, 0, 817, 818, 0, 825, 849,
- 847, 848, 850, 842, 843, 844, 845, 0, 851, 0,
- 0, 867, 96, 872, 873, 874, 875, 887, 880, 1154,
- 1012, 1013, 1014, 0, 1016, 1022, 0, 1137, 1139, 1020,
- 1021, 1024, 0, 0, 0, 1018, 1029, 1149, 1150, 1151,
- 0, 0, 0, 0, 0, 1033, 1037, 1042, 1043, 1044,
- 1045, 1046, 0, 1047, 0, 1050, 1051, 1052, 1053, 1054,
- 1055, 1061, 1450, 1451, 1452, 1080, 301, 302, 0, 1081,
- 0, 0, 0, 0, 0, 0, 0, 0, 1397, 1398,
+ 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0,
+ 1632, 1632, 0, 0, 220, 221, 222, 223, 224, 225,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 296, 240, 241, 242, 243, 244,
+ 299, 245, 246, 247, 1151, 0, 0, 0, 46, 853,
+ 854, 0, 975, 1632, 0, 0, 904, 0, 1647, 57,
+ 66, 68, 1510, 61, 1510, 0, 908, 0, 0, -2,
+ -2, 909, 910, 914, 915, 916, 917, 918, 919, 920,
+ 921, 922, 54, 2282, 55, 0, 74, 0, 48, 0,
+ 0, 1551, 0, 1554, 0, 0, 0, 374, 1558, 0,
+ 0, 1503, 1504, 1507, 0, 926, 2004, 930, 0, 932,
+ 933, 0, 0, 100, 0, 991, 0, 0, 0, 111,
+ 0, 113, 114, 0, 0, 0, 385, 1615, 1616, 1617,
+ -2, 408, 0, 385, 369, 307, 308, 309, 360, 311,
+ 360, 360, 360, 360, 374, 374, 374, 374, 342, 343,
+ 344, 345, 346, 0, 360, 0, 328, 360, 360, 360,
+ 360, 350, 351, 352, 353, 354, 355, 356, 357, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 362, 362,
+ 362, 362, 362, 366, 366, 0, 1109, 0, 389, 0,
+ 1507, 0, 0, 1541, 1624, 1634, 0, 0, 0, 0,
+ 0, 132, 0, 0, 0, 576, 619, 527, 564, 577,
+ 0, 530, 531, -2, 0, 0, 512, 0, 514, 0,
+ 409, 0, -2, 0, 419, 0, 415, 419, 416, 419,
+ 407, 420, 554, 555, 556, 0, 558, 559, 649, 961,
+ 0, 0, 0, 0, 0, 655, 656, 657, 0, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 565,
+ 566, 567, 568, 569, 570, 571, 572, 0, 0, 0,
+ 0, 514, 0, 561, 0, 0, 465, 466, 467, 0,
+ 0, 470, 471, 472, 473, 0, 0, 476, 477, 478,
+ 978, 979, 479, 480, 505, 506, 507, 481, 482, 483,
+ 484, 485, 486, 487, 499, 500, 501, 502, 503, 504,
+ 488, 489, 490, 491, 492, 493, 496, 0, 147, 1532,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1622, 0, 0,
+ 0, 0, 907, 993, 1645, 1646, 722, 0, 0, 793,
+ 794, 0, 413, 414, 792, 792, 732, 774, 0, 792,
+ 736, 775, 737, 739, 738, 740, 753, 754, 792, 743,
+ 790, 791, 744, 745, 746, 747, 748, 749, 750, 770,
+ 755, 756, 757, 796, 0, 800, 801, 771, 772, 0,
+ 782, 0, 0, 0, 816, 817, 0, 824, 848, 846,
+ 847, 849, 841, 842, 843, 844, 0, 850, 0, 0,
+ 866, 96, 871, 872, 873, 874, 886, 879, 1153, 1011,
+ 1012, 1013, 0, 1015, 1021, 0, 1136, 1138, 1019, 1020,
+ 1023, 0, 0, 0, 1017, 1028, 1148, 1149, 1150, 0,
+ 0, 0, 0, 0, 1032, 1036, 1041, 1042, 1043, 1044,
+ 1045, 0, 1046, 0, 1049, 1050, 1051, 1052, 1053, 1054,
+ 1060, 1449, 1450, 1451, 1079, 300, 301, 0, 1080, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1396, 1397, 1398,
1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
- 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1153, 0,
- 1634, 0, 0, 0, 1480, 1477, 0, 0, 0, 1436,
- 1438, 0, 0, 0, 900, 901, 0, 0, 0, 0,
+ 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1152, 0, 1633,
+ 0, 0, 0, 1479, 1476, 0, 0, 0, 1435, 1437,
+ 0, 0, 0, 899, 900, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
+ 0, 0, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433,
- 1434, 0, 0, 1453, 0, 0, 0, 0, 0, 0,
- 0, 1473, 0, 1086, 1087, 1088, 0, 0, 0, 0,
- 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 142, 143, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1361, 1362,
- 1363, 1364, 41, 0, 0, 0, 0, 0, 0, 0,
- 1484, 0, -2, -2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0,
- 0, 0, 0, 0, 1606, 0, 0, 857, 858, 860,
- 0, 996, 0, 977, 0, 0, 863, 0, 904, 0,
- 907, 60, 62, 913, 914, 0, 935, 924, 912, 56,
- 51, 0, 0, 954, 1553, 1556, 1557, 375, 1579, 0,
- 384, 384, 381, 1514, 1515, 0, 1507, 1509, 1510, 79,
- 932, 928, 0, 1010, 0, 0, 991, 0, 938, 940,
- 941, 942, 974, 0, 945, 946, 0, 0, 0, 0,
- 0, 98, 993, 104, 0, 112, 0, 0, 117, 118,
- 105, 106, 107, 108, 0, 609, -2, 461, 179, 181,
- 182, 183, 174, -2, 373, 371, 372, 311, 375, 375,
- 337, 338, 339, 340, 341, 342, 0, 349, 0, 330,
- 331, 332, 333, 322, 0, 323, 324, 325, 365, 0,
- 326, 327, 0, 328, 428, 0, 1516, 391, 392, 394,
- 402, 0, 397, 398, 0, 402, 402, 0, 423, 424,
- 0, 1508, 1533, 0, 0, 1636, 1635, 1635, 1635, 152,
- 0, 167, 168, 169, 170, 171, 172, 645, 0, 0,
- 621, 643, 644, 165, 0, 0, 175, 517, 516, 0,
- 677, 0, 426, 0, 0, 420, 420, 405, 406, 558,
- 0, 0, 652, 653, 654, 655, 0, 0, 0, 544,
- 455, 0, 545, 546, 515, 517, 0, 0, 386, 469,
- 470, 475, 476, 495, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 593, 594, 596, 599,
- 601, 519, 605, 607, 595, 598, 600, 602, 519, 606,
- 608, 1530, 1531, 1532, 0, 0, 715, 0, 0, 452,
- 94, 1624, 720, 724, 725, 790, 743, 777, 790, 735,
- 742, 765, 779, 781, 815, 816, 821, 829, 830, 831,
- 871, 0, 0, 0, 0, 879, 0, 0, 1023, 1138,
- 1140, 1025, 1026, 1027, 1030, 0, 1034, 1038, 0, 0,
- 0, 0, 0, 1085, 1083, 1484, 0, 0, 0, 1134,
- 0, 0, 1157, 1158, 0, 0, 0, 0, 1478, 0,
- 0, 1165, 0, 1439, 1115, 0, 0, 0, 0, 0,
- 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
- 1502, 1192, 0, 0, 0, 0, 0, 1197, 1198, 1199,
- 1115, 0, 1202, 1203, 0, 1205, 0, 1206, 0, 0,
- 0, 0, 1213, 1214, 1216, 0, 0, 1219, 1220, 0,
- 1222, 0, 1224, 1225, 1226, 1227, 1228, 1229, 0, 1231,
- 0, 1233, 1234, 1235, 0, 1237, 0, 1239, 1240, 0,
- 1242, 0, 1244, 0, 1247, 0, 1250, 0, 1253, 0,
- 1256, 0, 1259, 0, 1262, 0, 1265, 0, 1268, 0,
- 1271, 0, 1274, 0, 1277, 0, 1280, 0, 1283, 0,
- 1286, 0, 1289, 0, 1292, 1293, 1294, 0, 1296, 0,
- 1298, 0, 1301, 1302, 0, 1304, 0, 1307, 0, 1310,
- 0, 0, 1311, 0, 0, 0, 1315, 0, 0, 0,
- 0, 1324, 1325, 1326, 1327, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1338, 1339, 1340, 1341, 1342,
- 1343, 0, 1345, 0, 1116, 0, 0, 1116, 0, 0,
- 0, 0, 0, 1155, 1633, 0, 1440, 1441, 1442, 1443,
- 1444, 0, 0, 0, 0, 0, 0, 1384, 1385, 1387,
- 0, 0, 1390, 0, 1392, 0, 1607, 856, 859, 861,
- 948, 997, 998, 0, 0, 0, 0, 978, 1632, 902,
- 903, 906, 956, 0, 1488, 0, 0, 935, 1010, 0,
- 936, 0, 53, 951, 0, 1561, 1560, 1573, 1586, 384,
- 384, 378, 379, 385, 380, 382, 383, 1506, 0, 1511,
- 0, 1600, 0, 0, 1589, 0, 0, 0, 0, 0,
- 0, 0, 0, 981, 0, 0, 984, 0, 0, 0,
- 0, 975, 946, 0, 947, 0, -2, 0, 0, 92,
- 93, 0, 0, 0, 115, 116, 0, 0, 122, 387,
- 388, 156, 165, 463, 180, 436, 0, 0, 307, 374,
- 334, 335, 336, 0, 359, 0, 0, 0, 0, 457,
- 128, 1520, 1519, 402, 402, 393, 0, 396, 0, 0,
- 0, 1637, 362, 425, 0, 146, 0, 0, 0, 0,
- 1626, 615, 0, 0, 622, 0, 0, 0, 526, 0,
- 537, 538, 0, 649, -2, 711, 390, 0, 404, 407,
- 963, 0, 0, 539, 0, 542, 543, 456, 517, 548,
- 549, 563, 550, 498, 499, 496, 0, 0, 1543, 1544,
- 1549, 1547, 1548, 133, 584, 586, 590, 585, 589, 0,
- 0, 0, 521, 0, 521, 582, 0, 452, 1516, 0,
- 719, 453, 454, 793, 793, 866, 97, 0, 869, 0,
- 0, 0, 0, 1031, 1035, 1048, 1049, 1445, 1471, 361,
- 361, 1458, 361, 367, 1461, 361, 1463, 361, 1466, 361,
- 1469, 1470, 0, 0, 1078, 0, 0, 0, 0, 1164,
- 1481, 0, 0, 1175, 1114, 1115, 1115, 1115, 1115, 1115,
- 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
- 1475, 0, 0, 0, 1196, 0, 0, 1200, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 144, 145, 0,
- 0, 0, 0, 0, 0, 1395, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1109, 1113, 0,
- 1117, 1118, 0, 0, 1347, 0, 0, 1365, 0, 0,
- 0, 0, 0, 0, 0, 1485, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 999, 1006, 0, 1006,
- 0, 1006, 0, 0, 0, 1619, 1620, 1489, 1490, 1010,
- 1491, 925, 937, 955, 1579, 0, 1572, 0, -2, 1581,
- 0, 0, 0, 1587, 376, 377, 929, 80, 1011, 83,
- 0, 1600, 1609, 0, 1597, 1602, 1604, 0, 0, 0,
- 1593, 0, 1010, 939, 970, 972, 0, 967, 982, 983,
- 985, 0, 987, 0, 989, 990, 950, 944, 0, 100,
- 0, 1010, 1010, 99, 0, 995, 119, 120, 121, 462,
- 184, 189, 0, 0, 0, 194, 0, 196, 0, 0,
- 0, 201, 202, 402, 402, 437, 0, 304, 306, 0,
- 0, 187, 375, 0, 375, 0, 366, 368, 0, 438,
- 458, 1517, 1518, 0, 0, 395, 399, 400, 401, 0,
- 148, 0, 0, 0, 618, 0, 646, 0, 0, 0,
- 0, 0, 0, 176, 518, 678, 679, 680, 681, 682,
- 683, 684, 685, 686, 0, 402, 0, 0, 0, 402,
- 402, 402, 0, 703, 389, 0, 0, 674, 671, 540,
- 0, 218, 219, 226, 227, 229, 0, 0, 0, 0,
- 0, 547, 950, 1534, 1535, 1536, 0, 1546, 1550, 136,
- 0, 0, 0, 0, 592, 597, 603, 0, 520, 604,
- 716, 717, 718, 95, 728, 734, 868, 888, 1019, 1032,
- 1036, 0, 0, 0, 0, 1472, 1456, 375, 1459, 1460,
- 1462, 1464, 1465, 1467, 1468, 1074, 1075, 1079, 0, 1161,
- 0, 1163, 0, 1479, 0, 1176, 1177, 1178, 1179, 1180,
- 1511, 0, 0, 0, 1195, 0, 0, 1115, 0, 1208,
- 1207, 1209, 0, 1211, 1212, 1217, 1218, 1221, 1223, 1230,
- 1232, 1236, 1238, 1241, 1243, 1245, 0, 1248, 0, 1251,
- 0, 1254, 0, 1257, 0, 1260, 0, 1263, 0, 1266,
- 0, 1269, 0, 1272, 0, 1275, 0, 1278, 0, 1281,
- 0, 1284, 0, 1287, 0, 1290, 0, 1295, 1297, 0,
- 1300, 1303, 1305, 0, 1308, 0, 1312, 0, 1314, 1316,
- 1317, 0, 0, 0, 1328, 1329, 1330, 1331, 1332, 1333,
- 1334, 1335, 1336, 1337, 1344, 0, 1107, 1346, 1119, 1120,
- 1125, 1349, 0, 0, 0, 1352, 0, 0, 0, 1356,
- 1156, 1367, 0, 1372, 0, 0, 1378, 0, 1382, 0,
- 1388, 1389, 1391, 1393, 0, 0, 0, 0, 0, 0,
- 0, 976, 957, 64, 1491, 1495, 0, 1566, 1564, 1564,
- 1574, 1575, 0, 0, 1582, 0, 0, 0, 0, 84,
- 0, 0, 1588, 0, 0, 1605, 0, 0, 0, 0,
- 101, 1502, 964, 971, 0, 0, 965, 0, 966, 986,
- 988, 943, 0, 1010, 1010, 90, 91, 0, 190, 0,
- 192, 0, 195, 197, 198, 199, 205, 206, 207, 200,
- 0, 0, 303, 305, 0, 0, 348, 360, 350, 0,
- 0, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 950,
- 149, 150, 151, 610, 0, 620, 0, 952, 0, 613,
- 0, 529, 0, 0, 0, 402, 402, 402, 0, 0,
- 0, 0, 688, 0, 0, 651, 0, 659, 0, 0,
- 0, 230, 231, 0, 1545, 583, 0, 134, 135, 0,
- 0, 588, 522, 523, 1072, 0, 0, 0, 1073, 1457,
- 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0,
- 1201, 1204, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1320, 0, 0, 0, 640, 641,
- 0, 1396, 1112, 1502, 0, 1116, 1126, 1127, 0, 1116,
- 1366, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1007, 0, 0, 0, 958, 959, 0, 0,
- 0, 996, 1495, 1500, 0, 0, 1569, 0, 1562, 1565,
- 1563, 1576, 0, 0, 1583, 0, 1585, 0, 1610, 1611,
- 1603, 1598, 0, 1592, 1595, 1597, 1594, 1511, 968, 0,
- 973, 0, 1502, 89, 0, 193, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 203, 204, 0,
- 0, 364, 369, 0, 0, 0, 611, 0, 953, 623,
- 614, 0, 701, 0, 705, 0, 0, 0, 708, 709,
- 710, 687, 0, 691, 430, 675, 672, 673, 541, 0,
- 137, 138, 0, 0, 0, 1446, 0, 1449, 1159, 1162,
- 1160, 0, 1191, 1193, 1194, 1454, 1455, 1210, 1246, 1249,
- 1252, 1255, 1258, 1261, 1264, 1267, 1270, 1273, 1276, 1279,
- 1282, 1285, 1288, 1291, 1299, 1306, 1309, 1313, 1318, 0,
- 1321, 0, 0, 1322, 0, 642, 1103, 0, 0, 1123,
- 1124, 0, 1351, 1353, 1354, 1355, 1368, 0, 1373, 1374,
- 0, 1379, 0, 1383, 1394, 0, 1001, 1008, 1009, 0,
- 1004, 0, 1005, 0, 949, 1500, 82, 1501, 1498, 0,
- 1496, 1493, 1558, 0, 1567, 1568, 1577, 1578, 1584, 0,
- 0, 1597, 0, 1591, 87, 0, 0, 0, 1511, 191,
- 0, 210, 0, 619, 0, 622, 612, 699, 700, 0,
- 712, 704, 706, 707, 689, -2, 1537, 0, 0, 0,
- 591, 1447, 0, 0, 1323, 0, 638, 639, 1111, 1104,
- 0, 1089, 1090, 1108, 1348, 1350, 0, 0, 0, 1000,
- 960, 961, 1002, 1003, 81, 0, 1497, 1131, 0, 1492,
- 0, 1570, 1571, 1601, 0, 1590, 1596, 969, 976, 0,
- 88, 443, 436, 1537, 0, 0, 0, 692, 693, 694,
- 695, 696, 697, 698, 580, 1539, 139, 140, 0, 510,
- 511, 512, 133, 0, 1166, 1319, 1105, 0, 0, 0,
- 0, 0, 1369, 0, 1375, 0, 1380, 0, 1499, 0,
- 0, 1494, 1599, 624, 0, 626, 0, -2, 431, 444,
- 0, 185, 211, 212, 0, 0, 215, 216, 217, 208,
- 209, 129, 0, 0, 713, 0, 1540, 1541, 0, 136,
- 0, 0, 1096, 1097, 1098, 1099, 1101, 0, 0, 0,
- 0, 1132, 1109, 625, 0, 0, 386, 0, 635, 432,
- 433, 0, 439, 440, 441, 442, 213, 214, 647, 0,
- 0, 509, 587, 1448, 0, 0, 1370, 0, 1376, 0,
- 1381, 0, 627, 628, 636, 0, 434, 0, 435, 0,
- 0, 0, 616, 0, 647, 1538, 1106, 1100, 1102, 0,
- 0, 1130, 0, 637, 633, 445, 447, 448, 0, 0,
- 446, 648, 617, 1371, 1377, 0, 449, 450, 451, 629,
- 630, 631, 632,
+ 0, 0, 1452, 0, 0, 0, 0, 0, 0, 0,
+ 1472, 0, 1085, 1086, 1087, 0, 0, 0, 0, 0,
+ 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 142, 143, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1360, 1361, 1362,
+ 1363, 41, 0, 0, 0, 0, 0, 0, 0, 1483,
+ 0, -2, -2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1385, 0, 0, 0,
+ 0, 0, 0, 1605, 0, 0, 856, 857, 859, 0,
+ 995, 0, 976, 0, 0, 862, 0, 903, 0, 906,
+ 60, 62, 912, 913, 0, 934, 923, 911, 56, 51,
+ 0, 0, 953, 1552, 1555, 1556, 374, 1578, 0, 383,
+ 383, 380, 1513, 1514, 0, 1506, 1508, 1509, 79, 931,
+ 927, 0, 1009, 0, 0, 990, 0, 937, 939, 940,
+ 941, 973, 0, 944, 945, 0, 0, 0, 0, 0,
+ 98, 992, 104, 0, 112, 0, 0, 117, 118, 105,
+ 106, 107, 108, 0, 608, -2, 460, 179, 181, 182,
+ 183, 174, -2, 372, 370, 371, 310, 374, 374, 336,
+ 337, 338, 339, 340, 341, 0, 348, 0, 329, 330,
+ 331, 332, 321, 0, 322, 323, 324, 364, 0, 325,
+ 326, 0, 327, 427, 0, 1515, 390, 391, 393, 401,
+ 0, 396, 397, 0, 401, 401, 0, 422, 423, 0,
+ 1507, 1532, 0, 0, 1635, 1634, 1634, 1634, 152, 0,
+ 167, 168, 169, 170, 171, 172, 644, 0, 0, 620,
+ 642, 643, 165, 0, 0, 175, 516, 515, 0, 676,
+ 0, 425, 0, 0, 419, 419, 404, 405, 557, 0,
+ 0, 651, 652, 653, 654, 0, 0, 0, 543, 454,
+ 0, 544, 545, 514, 516, 0, 0, 385, 468, 469,
+ 474, 475, 494, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 592, 593, 595, 598, 600,
+ 518, 604, 606, 594, 597, 599, 601, 518, 605, 607,
+ 1529, 1530, 1531, 0, 0, 714, 0, 0, 451, 94,
+ 1623, 719, 723, 724, 789, 742, 776, 789, 734, 741,
+ 764, 778, 780, 814, 815, 820, 828, 829, 830, 870,
+ 0, 0, 0, 0, 878, 0, 0, 1022, 1137, 1139,
+ 1024, 1025, 1026, 1029, 0, 1033, 1037, 0, 0, 0,
+ 0, 0, 1084, 1082, 1483, 0, 0, 0, 1133, 0,
+ 0, 1156, 1157, 0, 0, 0, 0, 1477, 0, 0,
+ 1164, 0, 1438, 1114, 0, 0, 0, 0, 0, 1114,
+ 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1501,
+ 1191, 0, 0, 0, 0, 0, 1196, 1197, 1198, 1114,
+ 0, 1201, 1202, 0, 1204, 0, 1205, 0, 0, 0,
+ 0, 1212, 1213, 1215, 0, 0, 1218, 1219, 0, 1221,
+ 0, 1223, 1224, 1225, 1226, 1227, 1228, 0, 1230, 0,
+ 1232, 1233, 1234, 0, 1236, 0, 1238, 1239, 0, 1241,
+ 0, 1243, 0, 1246, 0, 1249, 0, 1252, 0, 1255,
+ 0, 1258, 0, 1261, 0, 1264, 0, 1267, 0, 1270,
+ 0, 1273, 0, 1276, 0, 1279, 0, 1282, 0, 1285,
+ 0, 1288, 0, 1291, 1292, 1293, 0, 1295, 0, 1297,
+ 0, 1300, 1301, 0, 1303, 0, 1306, 0, 1309, 0,
+ 0, 1310, 0, 0, 0, 1314, 0, 0, 0, 0,
+ 1323, 1324, 1325, 1326, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1337, 1338, 1339, 1340, 1341, 1342,
+ 0, 1344, 0, 1115, 0, 0, 1115, 0, 0, 0,
+ 0, 0, 1154, 1632, 0, 1439, 1440, 1441, 1442, 1443,
+ 0, 0, 0, 0, 0, 0, 1383, 1384, 1386, 0,
+ 0, 1389, 0, 1391, 0, 1606, 855, 858, 860, 947,
+ 996, 997, 0, 0, 0, 0, 977, 1631, 901, 902,
+ 905, 955, 0, 1487, 0, 0, 934, 1009, 0, 935,
+ 0, 53, 950, 0, 1560, 1559, 1572, 1585, 383, 383,
+ 377, 378, 384, 379, 381, 382, 1505, 0, 1510, 0,
+ 1599, 0, 0, 1588, 0, 0, 0, 0, 0, 0,
+ 0, 0, 980, 0, 0, 983, 0, 0, 0, 0,
+ 974, 945, 0, 946, 0, -2, 0, 0, 92, 93,
+ 0, 0, 0, 115, 116, 0, 0, 122, 386, 387,
+ 156, 165, 462, 180, 435, 0, 0, 306, 373, 333,
+ 334, 335, 0, 358, 0, 0, 0, 0, 456, 128,
+ 1519, 1518, 401, 401, 392, 0, 395, 0, 0, 0,
+ 1636, 361, 424, 0, 146, 0, 0, 0, 0, 1625,
+ 614, 0, 0, 621, 0, 0, 0, 525, 0, 536,
+ 537, 0, 648, -2, 710, 389, 0, 403, 406, 962,
+ 0, 0, 538, 0, 541, 542, 455, 516, 547, 548,
+ 562, 549, 497, 498, 495, 0, 0, 1542, 1543, 1548,
+ 1546, 1547, 133, 583, 585, 589, 584, 588, 0, 0,
+ 0, 520, 0, 520, 581, 0, 451, 1515, 0, 718,
+ 452, 453, 792, 792, 865, 97, 0, 868, 0, 0,
+ 0, 0, 1030, 1034, 1047, 1048, 1444, 1470, 360, 360,
+ 1457, 360, 366, 1460, 360, 1462, 360, 1465, 360, 1468,
+ 1469, 0, 0, 1077, 0, 0, 0, 0, 1163, 1480,
+ 0, 0, 1174, 1113, 1114, 1114, 1114, 1114, 1114, 1180,
+ 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1474,
+ 0, 0, 0, 1195, 0, 0, 1199, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 144, 145, 0, 0,
+ 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1108, 1112, 0, 1116,
+ 1117, 0, 0, 1346, 0, 0, 1364, 0, 0, 0,
+ 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 998, 1005, 0, 1005, 0,
+ 1005, 0, 0, 0, 1618, 1619, 1488, 1489, 1009, 1490,
+ 924, 936, 954, 1578, 0, 1571, 0, -2, 1580, 0,
+ 0, 0, 1586, 375, 376, 928, 80, 1010, 83, 0,
+ 1599, 1608, 0, 1596, 1601, 1603, 0, 0, 0, 1592,
+ 0, 1009, 938, 969, 971, 0, 966, 981, 982, 984,
+ 0, 986, 0, 988, 989, 949, 943, 0, 100, 0,
+ 1009, 1009, 99, 0, 994, 119, 120, 121, 461, 184,
+ 189, 0, 0, 0, 194, 0, 196, 0, 0, 0,
+ 201, 202, 401, 401, 436, 0, 303, 305, 0, 0,
+ 187, 374, 0, 374, 0, 365, 367, 0, 437, 457,
+ 1516, 1517, 0, 0, 394, 398, 399, 400, 0, 148,
+ 0, 0, 0, 617, 0, 645, 0, 0, 0, 0,
+ 0, 0, 176, 517, 677, 678, 679, 680, 681, 682,
+ 683, 684, 685, 0, 401, 0, 0, 0, 401, 401,
+ 401, 0, 702, 388, 0, 0, 673, 670, 539, 0,
+ 218, 219, 226, 227, 229, 0, 0, 0, 0, 0,
+ 546, 949, 1533, 1534, 1535, 0, 1545, 1549, 136, 0,
+ 0, 0, 0, 591, 596, 602, 0, 519, 603, 715,
+ 716, 717, 95, 727, 733, 867, 887, 1018, 1031, 1035,
+ 0, 0, 0, 0, 1471, 1455, 374, 1458, 1459, 1461,
+ 1463, 1464, 1466, 1467, 1073, 1074, 1078, 0, 1160, 0,
+ 1162, 0, 1478, 0, 1175, 1176, 1177, 1178, 1179, 1510,
+ 0, 0, 0, 1194, 0, 0, 1114, 0, 1207, 1206,
+ 1208, 0, 1210, 1211, 1216, 1217, 1220, 1222, 1229, 1231,
+ 1235, 1237, 1240, 1242, 1244, 0, 1247, 0, 1250, 0,
+ 1253, 0, 1256, 0, 1259, 0, 1262, 0, 1265, 0,
+ 1268, 0, 1271, 0, 1274, 0, 1277, 0, 1280, 0,
+ 1283, 0, 1286, 0, 1289, 0, 1294, 1296, 0, 1299,
+ 1302, 1304, 0, 1307, 0, 1311, 0, 1313, 1315, 1316,
+ 0, 0, 0, 1327, 1328, 1329, 1330, 1331, 1332, 1333,
+ 1334, 1335, 1336, 1343, 0, 1106, 1345, 1118, 1119, 1124,
+ 1348, 0, 0, 0, 1351, 0, 0, 0, 1355, 1155,
+ 1366, 0, 1371, 0, 0, 1377, 0, 1381, 0, 1387,
+ 1388, 1390, 1392, 0, 0, 0, 0, 0, 0, 0,
+ 975, 956, 64, 1490, 1494, 0, 1565, 1563, 1563, 1573,
+ 1574, 0, 0, 1581, 0, 0, 0, 0, 84, 0,
+ 0, 1587, 0, 0, 1604, 0, 0, 0, 0, 101,
+ 1501, 963, 970, 0, 0, 964, 0, 965, 985, 987,
+ 942, 0, 1009, 1009, 90, 91, 0, 190, 0, 192,
+ 0, 195, 197, 198, 199, 205, 206, 207, 200, 0,
+ 0, 302, 304, 0, 0, 347, 359, 349, 0, 0,
+ 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 949, 149,
+ 150, 151, 609, 0, 619, 0, 951, 0, 612, 0,
+ 528, 0, 0, 0, 401, 401, 401, 0, 0, 0,
+ 0, 687, 0, 0, 650, 0, 658, 0, 0, 0,
+ 230, 231, 0, 1544, 582, 0, 134, 135, 0, 0,
+ 587, 521, 522, 1071, 0, 0, 0, 1072, 1456, 0,
+ 0, 0, 0, 0, 1475, 0, 0, 0, 0, 1200,
+ 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1319, 0, 0, 0, 639, 640, 0,
+ 1395, 1111, 1501, 0, 1115, 1125, 1126, 0, 1115, 1365,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1006, 0, 0, 0, 957, 958, 0, 0, 0,
+ 995, 1494, 1499, 0, 0, 1568, 0, 1561, 1564, 1562,
+ 1575, 0, 0, 1582, 0, 1584, 0, 1609, 1610, 1602,
+ 1597, 0, 1591, 1594, 1596, 1593, 1510, 967, 0, 972,
+ 0, 1501, 89, 0, 193, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 203, 204, 0, 0,
+ 363, 368, 0, 0, 0, 610, 0, 952, 622, 613,
+ 0, 700, 0, 704, 0, 0, 0, 707, 708, 709,
+ 686, 0, 690, 429, 674, 671, 672, 540, 0, 137,
+ 138, 0, 0, 0, 1445, 0, 1448, 1158, 1161, 1159,
+ 0, 1190, 1192, 1193, 1453, 1454, 1209, 1245, 1248, 1251,
+ 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278, 1281,
+ 1284, 1287, 1290, 1298, 1305, 1308, 1312, 1317, 0, 1320,
+ 0, 0, 1321, 0, 641, 1102, 0, 0, 1122, 1123,
+ 0, 1350, 1352, 1353, 1354, 1367, 0, 1372, 1373, 0,
+ 1378, 0, 1382, 1393, 0, 1000, 1007, 1008, 0, 1003,
+ 0, 1004, 0, 948, 1499, 82, 1500, 1497, 0, 1495,
+ 1492, 1557, 0, 1566, 1567, 1576, 1577, 1583, 0, 0,
+ 1596, 0, 1590, 87, 0, 0, 0, 1510, 191, 0,
+ 210, 0, 618, 0, 621, 611, 698, 699, 0, 711,
+ 703, 705, 706, 688, -2, 1536, 0, 0, 0, 590,
+ 1446, 0, 0, 1322, 0, 637, 638, 1110, 1103, 0,
+ 1088, 1089, 1107, 1347, 1349, 0, 0, 0, 999, 959,
+ 960, 1001, 1002, 81, 0, 1496, 1130, 0, 1491, 0,
+ 1569, 1570, 1600, 0, 1589, 1595, 968, 975, 0, 88,
+ 442, 435, 1536, 0, 0, 0, 691, 692, 693, 694,
+ 695, 696, 697, 579, 1538, 139, 140, 0, 509, 510,
+ 511, 133, 0, 1165, 1318, 1104, 0, 0, 0, 0,
+ 0, 1368, 0, 1374, 0, 1379, 0, 1498, 0, 0,
+ 1493, 1598, 623, 0, 625, 0, -2, 430, 443, 0,
+ 185, 211, 212, 0, 0, 215, 216, 217, 208, 209,
+ 129, 0, 0, 712, 0, 1539, 1540, 0, 136, 0,
+ 0, 1095, 1096, 1097, 1098, 1100, 0, 0, 0, 0,
+ 1131, 1108, 624, 0, 0, 385, 0, 634, 431, 432,
+ 0, 438, 439, 440, 441, 213, 214, 646, 0, 0,
+ 508, 586, 1447, 0, 0, 1369, 0, 1375, 0, 1380,
+ 0, 626, 627, 635, 0, 433, 0, 434, 0, 0,
+ 0, 615, 0, 646, 1537, 1105, 1099, 1101, 0, 0,
+ 1129, 0, 636, 632, 444, 446, 447, 0, 0, 445,
+ 647, 616, 1370, 1376, 0, 448, 449, 450, 628, 629,
+ 630, 631,
}
var yyTok1 = [...]int{
@@ -12041,16 +11978,16 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1734
{
- yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: yyDollar[2].exprUnion()}
+ arg := parseBindVariable(yylex, yyDollar[2].str[1:])
+ yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: arg}
}
yyVAL.union = yyLOCAL
case 245:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:1738
+//line sql.y:1739
{
- arg := parseBindVariable(yylex, yyDollar[2].str[1:])
- yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: arg}
+ yyLOCAL = NewDateLiteral(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
case 246:
@@ -12058,7 +11995,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1743
{
- yyLOCAL = NewDateLiteral(yyDollar[2].str)
+ yyLOCAL = NewTimeLiteral(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
case 247:
@@ -12066,275 +12003,275 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1747
{
- yyLOCAL = NewTimeLiteral(yyDollar[2].str)
+ yyLOCAL = NewTimestampLiteral(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
case 248:
- yyDollar = yyS[yypt-2 : yypt+1]
- var yyLOCAL Expr
-//line sql.y:1751
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:1753
{
- yyLOCAL = NewTimestampLiteral(yyDollar[2].str)
+ yyVAL.str = Armscii8Str
}
- yyVAL.union = yyLOCAL
case 249:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1757
{
- yyVAL.str = Armscii8Str
+ yyVAL.str = ASCIIStr
}
case 250:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1761
{
- yyVAL.str = ASCIIStr
+ yyVAL.str = Big5Str
}
case 251:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1765
{
- yyVAL.str = Big5Str
+ yyVAL.str = UBinaryStr
}
case 252:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1769
{
- yyVAL.str = UBinaryStr
+ yyVAL.str = Cp1250Str
}
case 253:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1773
{
- yyVAL.str = Cp1250Str
+ yyVAL.str = Cp1251Str
}
case 254:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1777
{
- yyVAL.str = Cp1251Str
+ yyVAL.str = Cp1256Str
}
case 255:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1781
{
- yyVAL.str = Cp1256Str
+ yyVAL.str = Cp1257Str
}
case 256:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1785
{
- yyVAL.str = Cp1257Str
+ yyVAL.str = Cp850Str
}
case 257:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1789
{
- yyVAL.str = Cp850Str
+ yyVAL.str = Cp852Str
}
case 258:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1793
{
- yyVAL.str = Cp852Str
+ yyVAL.str = Cp866Str
}
case 259:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1797
{
- yyVAL.str = Cp866Str
+ yyVAL.str = Cp932Str
}
case 260:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1801
{
- yyVAL.str = Cp932Str
+ yyVAL.str = Dec8Str
}
case 261:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1805
{
- yyVAL.str = Dec8Str
+ yyVAL.str = EucjpmsStr
}
case 262:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1809
{
- yyVAL.str = EucjpmsStr
+ yyVAL.str = EuckrStr
}
case 263:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1813
{
- yyVAL.str = EuckrStr
+ yyVAL.str = Gb18030Str
}
case 264:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1817
{
- yyVAL.str = Gb18030Str
+ yyVAL.str = Gb2312Str
}
case 265:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1821
{
- yyVAL.str = Gb2312Str
+ yyVAL.str = GbkStr
}
case 266:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1825
{
- yyVAL.str = GbkStr
+ yyVAL.str = Geostd8Str
}
case 267:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1829
{
- yyVAL.str = Geostd8Str
+ yyVAL.str = GreekStr
}
case 268:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1833
{
- yyVAL.str = GreekStr
+ yyVAL.str = HebrewStr
}
case 269:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1837
{
- yyVAL.str = HebrewStr
+ yyVAL.str = Hp8Str
}
case 270:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1841
{
- yyVAL.str = Hp8Str
+ yyVAL.str = Keybcs2Str
}
case 271:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1845
{
- yyVAL.str = Keybcs2Str
+ yyVAL.str = Koi8rStr
}
case 272:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1849
{
- yyVAL.str = Koi8rStr
+ yyVAL.str = Koi8uStr
}
case 273:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1853
{
- yyVAL.str = Koi8uStr
+ yyVAL.str = Latin1Str
}
case 274:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1857
{
- yyVAL.str = Latin1Str
+ yyVAL.str = Latin2Str
}
case 275:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1861
{
- yyVAL.str = Latin2Str
+ yyVAL.str = Latin5Str
}
case 276:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1865
{
- yyVAL.str = Latin5Str
+ yyVAL.str = Latin7Str
}
case 277:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1869
{
- yyVAL.str = Latin7Str
+ yyVAL.str = MacceStr
}
case 278:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1873
{
- yyVAL.str = MacceStr
+ yyVAL.str = MacromanStr
}
case 279:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1877
{
- yyVAL.str = MacromanStr
+ yyVAL.str = SjisStr
}
case 280:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1881
{
- yyVAL.str = SjisStr
+ yyVAL.str = Swe7Str
}
case 281:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1885
{
- yyVAL.str = Swe7Str
+ yyVAL.str = Tis620Str
}
case 282:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1889
{
- yyVAL.str = Tis620Str
+ yyVAL.str = Ucs2Str
}
case 283:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1893
{
- yyVAL.str = Ucs2Str
+ yyVAL.str = UjisStr
}
case 284:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1897
{
- yyVAL.str = UjisStr
+ yyVAL.str = Utf16Str
}
case 285:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1901
{
- yyVAL.str = Utf16Str
+ yyVAL.str = Utf16leStr
}
case 286:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1905
{
- yyVAL.str = Utf16leStr
+ yyVAL.str = Utf32Str
}
case 287:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1909
{
- yyVAL.str = Utf32Str
+ yyVAL.str = Utf8mb3Str
}
case 288:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1913
{
- yyVAL.str = Utf8mb3Str
+ yyVAL.str = Utf8mb4Str
}
case 289:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1917
{
- yyVAL.str = Utf8mb4Str
+ yyVAL.str = Utf8mb3Str
}
- case 290:
+ case 292:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:1921
+ var yyLOCAL Expr
+//line sql.y:1927
{
- yyVAL.str = Utf8mb3Str
+ yyLOCAL = NewIntLiteral(yyDollar[1].str)
}
+ yyVAL.union = yyLOCAL
case 293:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:1931
{
- yyLOCAL = NewIntLiteral(yyDollar[1].str)
+ yyLOCAL = NewFloatLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
case 294:
@@ -12342,31 +12279,31 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1935
{
- yyLOCAL = NewFloatLiteral(yyDollar[1].str)
+ yyLOCAL = NewDecimalLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
case 295:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:1939
+//line sql.y:1941
{
- yyLOCAL = NewDecimalLiteral(yyDollar[1].str)
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 296:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
//line sql.y:1945
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = AppendString(yyDollar[1].exprUnion(), yyDollar[2].str)
}
yyVAL.union = yyLOCAL
case 297:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:1949
+//line sql.y:1951
{
- yyLOCAL = AppendString(yyDollar[1].exprUnion(), yyDollar[2].str)
+ yyLOCAL = NewStrLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
case 298:
@@ -12374,23 +12311,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1955
{
- yyLOCAL = NewStrLiteral(yyDollar[1].str)
+ yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 299:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
//line sql.y:1959
{
- yyLOCAL = &UnaryExpr{Operator: NStringOp, Expr: NewStrLiteral(yyDollar[1].str)}
+ yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
case 300:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:1963
+//line sql.y:1965
{
- yyLOCAL = &IntroducerExpr{CharacterSet: yyDollar[1].str, Expr: NewStrLiteral(yyDollar[2].str)}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 301:
@@ -12398,70 +12335,68 @@ yydefault:
var yyLOCAL Expr
//line sql.y:1969
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
}
yyVAL.union = yyLOCAL
case 302:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL Expr
-//line sql.y:1973
- {
- yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
- }
- yyVAL.union = yyLOCAL
- case 303:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ColumnKeyOption
-//line sql.y:1979
+//line sql.y:1975
{
yyLOCAL = ColKeyPrimary
}
yyVAL.union = yyLOCAL
- case 304:
+ case 303:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColumnKeyOption
-//line sql.y:1983
+//line sql.y:1979
{
yyLOCAL = ColKeyUnique
}
yyVAL.union = yyLOCAL
- case 305:
+ case 304:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ColumnKeyOption
-//line sql.y:1987
+//line sql.y:1983
{
yyLOCAL = ColKeyUniqueKey
}
yyVAL.union = yyLOCAL
- case 306:
+ case 305:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColumnKeyOption
-//line sql.y:1991
+//line sql.y:1987
{
yyLOCAL = ColKey
}
yyVAL.union = yyLOCAL
- case 307:
+ case 306:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:1997
+//line sql.y:1993
{
yyVAL.columnType = yyDollar[1].columnType
yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion()
yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion()
}
- case 311:
+ case 310:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2008
+//line sql.y:2004
{
yyVAL.columnType = yyDollar[1].columnType
yyVAL.columnType.Length = yyDollar[2].intPtrUnion()
}
- case 312:
+ case 311:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2013
+//line sql.y:2009
{
yyVAL.columnType = yyDollar[1].columnType
}
+ case 312:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:2015
+ {
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
+ }
case 313:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2019
@@ -12511,14 +12446,16 @@ yydefault:
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
}
case 321:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2051
+ yyDollar = yyS[yypt-2 : yypt+1]
+//line sql.y:2053
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
+ yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
+ yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
}
case 322:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2057
+//line sql.y:2059
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
@@ -12526,7 +12463,7 @@ yydefault:
}
case 323:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2063
+//line sql.y:2065
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
@@ -12534,7 +12471,7 @@ yydefault:
}
case 324:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2069
+//line sql.y:2071
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
@@ -12542,7 +12479,7 @@ yydefault:
}
case 325:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2075
+//line sql.y:2077
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
@@ -12550,7 +12487,7 @@ yydefault:
}
case 326:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2081
+//line sql.y:2083
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
@@ -12558,25 +12495,23 @@ yydefault:
}
case 327:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2087
+//line sql.y:2089
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
}
case 328:
- yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2093
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:2097
{
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
- yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length
- yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale
}
case 329:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2101
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
case 330:
yyDollar = yyS[yypt-2 : yypt+1]
@@ -12597,30 +12532,30 @@ yydefault:
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
case 333:
- yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2117
+ yyDollar = yyS[yypt-3 : yypt+1]
+//line sql.y:2119
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
}
case 334:
yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2123
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
+ // CHAR BYTE is an alias for binary. See also:
+ // https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html
+ yyVAL.columnType = &ColumnType{Type: "binary", Length: yyDollar[2].intPtrUnion()}
}
case 335:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2127
+//line sql.y:2129
{
- // CHAR BYTE is an alias for binary. See also:
- // https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html
- yyVAL.columnType = &ColumnType{Type: "binary", Length: yyDollar[2].intPtrUnion()}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
}
case 336:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2133
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
case 337:
yyDollar = yyS[yypt-2 : yypt+1]
@@ -12632,7 +12567,7 @@ yydefault:
yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2141
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset}
}
case 339:
yyDollar = yyS[yypt-2 : yypt+1]
@@ -12653,10 +12588,10 @@ yydefault:
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset}
}
case 342:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2157
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].columnCharset}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
}
case 343:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -12683,28 +12618,28 @@ yydefault:
yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
}
case 347:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2177
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset}
}
case 348:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2181
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
case 349:
- yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2185
+ yyDollar = yyS[yypt-5 : yypt+1]
+//line sql.y:2186
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset}
}
case 350:
- yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:2190
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:2192
{
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].columnCharset}
+ yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
}
case 351:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -12750,392 +12685,392 @@ yydefault:
}
case 358:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2224
- {
- yyVAL.columnType = &ColumnType{Type: string(yyDollar[1].str)}
- }
- case 359:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2230
+//line sql.y:2226
{
yyVAL.strs = make([]string, 0, 4)
yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str))
}
- case 360:
+ case 359:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2235
+//line sql.y:2231
{
yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str))
}
- case 361:
+ case 360:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *int
-//line sql.y:2240
+//line sql.y:2236
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 362:
+ case 361:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *int
-//line sql.y:2244
+//line sql.y:2240
{
yyLOCAL = ptr.Of(convertStringToInt(yyDollar[2].str))
}
yyVAL.union = yyLOCAL
- case 363:
+ case 362:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2249
+//line sql.y:2245
{
yyVAL.LengthScaleOption = LengthScaleOption{}
}
- case 364:
+ case 363:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:2253
+//line sql.y:2249
{
yyVAL.LengthScaleOption = LengthScaleOption{
Length: ptr.Of(convertStringToInt(yyDollar[2].str)),
Scale: ptr.Of(convertStringToInt(yyDollar[4].str)),
}
}
- case 365:
+ case 364:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2262
+//line sql.y:2258
{
yyVAL.LengthScaleOption = yyDollar[1].LengthScaleOption
}
- case 366:
+ case 365:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2266
+//line sql.y:2262
{
yyVAL.LengthScaleOption = LengthScaleOption{
Length: ptr.Of(convertStringToInt(yyDollar[2].str)),
}
}
- case 367:
+ case 366:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2273
+//line sql.y:2269
{
yyVAL.LengthScaleOption = LengthScaleOption{}
}
- case 368:
+ case 367:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2277
+//line sql.y:2273
{
yyVAL.LengthScaleOption = LengthScaleOption{
Length: ptr.Of(convertStringToInt(yyDollar[2].str)),
}
}
- case 369:
+ case 368:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:2283
+//line sql.y:2279
{
yyVAL.LengthScaleOption = LengthScaleOption{
Length: ptr.Of(convertStringToInt(yyDollar[2].str)),
Scale: ptr.Of(convertStringToInt(yyDollar[4].str)),
}
}
- case 370:
+ case 369:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:2291
+//line sql.y:2287
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 371:
+ case 370:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2295
+//line sql.y:2291
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 372:
+ case 371:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2299
+//line sql.y:2295
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 373:
+ case 372:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:2304
+//line sql.y:2300
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 374:
+ case 373:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2308
+//line sql.y:2304
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 375:
+ case 374:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2313
+//line sql.y:2309
{
yyVAL.columnCharset = ColumnCharset{}
}
- case 376:
+ case 375:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2317
+//line sql.y:2313
{
yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].identifierCI.String()), Binary: yyDollar[3].booleanUnion()}
}
- case 377:
+ case 376:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2321
+//line sql.y:2317
{
yyVAL.columnCharset = ColumnCharset{Name: encodeSQLString(yyDollar[2].str), Binary: yyDollar[3].booleanUnion()}
}
- case 378:
+ case 377:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2325
+//line sql.y:2321
{
yyVAL.columnCharset = ColumnCharset{Name: string(yyDollar[2].str)}
}
- case 379:
+ case 378:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2329
+//line sql.y:2325
{
// ASCII: Shorthand for CHARACTER SET latin1.
yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: yyDollar[2].booleanUnion()}
}
- case 380:
+ case 379:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2334
+//line sql.y:2330
{
// UNICODE: Shorthand for CHARACTER SET ucs2.
yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: yyDollar[2].booleanUnion()}
}
- case 381:
+ case 380:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2339
+//line sql.y:2335
{
// BINARY: Shorthand for default CHARACTER SET but with binary collation
yyVAL.columnCharset = ColumnCharset{Name: "", Binary: true}
}
- case 382:
+ case 381:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2344
+//line sql.y:2340
{
// BINARY ASCII: Shorthand for CHARACTER SET latin1 with binary collation
yyVAL.columnCharset = ColumnCharset{Name: "latin1", Binary: true}
}
- case 383:
+ case 382:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2349
+//line sql.y:2345
{
// BINARY UNICODE: Shorthand for CHARACTER SET ucs2 with binary collation
yyVAL.columnCharset = ColumnCharset{Name: "ucs2", Binary: true}
}
- case 384:
+ case 383:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:2355
+//line sql.y:2351
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 385:
+ case 384:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2359
+//line sql.y:2355
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 386:
+ case 385:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2364
+//line sql.y:2360
{
yyVAL.str = ""
}
- case 387:
+ case 386:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2368
+//line sql.y:2364
{
yyVAL.str = string(yyDollar[2].identifierCI.String())
}
- case 388:
+ case 387:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2372
+//line sql.y:2368
{
yyVAL.str = encodeSQLString(yyDollar[2].str)
}
- case 389:
+ case 388:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexDefinition
-//line sql.y:2378
+//line sql.y:2374
{
yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()}
}
yyVAL.union = yyLOCAL
- case 390:
+ case 389:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:2383
+//line sql.y:2379
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 391:
+ case 390:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:2387
+//line sql.y:2383
{
yyLOCAL = yyDollar[1].indexOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 392:
+ case 391:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:2393
+//line sql.y:2389
{
yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 393:
+ case 392:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2397
+//line sql.y:2393
{
yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion())
}
- case 394:
+ case 393:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2403
+//line sql.y:2399
{
yyLOCAL = yyDollar[1].indexOptionUnion()
}
yyVAL.union = yyLOCAL
- case 395:
+ case 394:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2407
+//line sql.y:2403
{
// should not be string
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 396:
+ case 395:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2412
+//line sql.y:2408
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 397:
+ case 396:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2416
+//line sql.y:2412
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 398:
+ case 397:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2420
+//line sql.y:2416
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 399:
+ case 398:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2424
+//line sql.y:2420
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].identifierCI.String()}
}
yyVAL.union = yyLOCAL
- case 400:
+ case 399:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2428
+//line sql.y:2424
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 401:
+ case 400:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:2432
+//line sql.y:2428
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 402:
+ case 401:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2438
+//line sql.y:2434
{
yyVAL.str = ""
}
- case 403:
+ case 402:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2442
+//line sql.y:2438
{
yyVAL.str = string(yyDollar[1].str)
}
- case 404:
+ case 403:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *IndexInfo
-//line sql.y:2448
+//line sql.y:2444
{
yyLOCAL = &IndexInfo{Type: IndexTypePrimary, ConstraintName: NewIdentifierCI(yyDollar[1].str), Name: NewIdentifierCI("PRIMARY")}
}
yyVAL.union = yyLOCAL
- case 405:
+ case 404:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexInfo
-//line sql.y:2452
+//line sql.y:2448
{
yyLOCAL = &IndexInfo{Type: IndexTypeSpatial, Name: NewIdentifierCI(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 406:
+ case 405:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexInfo
-//line sql.y:2456
+//line sql.y:2452
{
yyLOCAL = &IndexInfo{Type: IndexTypeFullText, Name: NewIdentifierCI(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 407:
+ case 406:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *IndexInfo
-//line sql.y:2460
+//line sql.y:2456
{
yyLOCAL = &IndexInfo{Type: IndexTypeUnique, ConstraintName: NewIdentifierCI(yyDollar[1].str), Name: NewIdentifierCI(yyDollar[4].str)}
}
yyVAL.union = yyLOCAL
- case 408:
+ case 407:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *IndexInfo
-//line sql.y:2464
+//line sql.y:2460
{
yyLOCAL = &IndexInfo{Type: IndexTypeDefault, Name: NewIdentifierCI(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 409:
+ case 408:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2469
+//line sql.y:2465
{
yyVAL.str = ""
}
- case 410:
+ case 409:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2473
+//line sql.y:2469
{
yyVAL.str = yyDollar[2].str
}
+ case 410:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:2475
+ {
+ yyVAL.str = string(yyDollar[1].str)
+ }
case 411:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2479
@@ -13150,7 +13085,7 @@ yydefault:
}
case 413:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2487
+//line sql.y:2489
{
yyVAL.str = string(yyDollar[1].str)
}
@@ -13161,22 +13096,22 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 415:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2497
+ yyDollar = yyS[yypt-0 : yypt+1]
+//line sql.y:2498
{
- yyVAL.str = string(yyDollar[1].str)
+ yyVAL.str = ""
}
case 416:
- yyDollar = yyS[yypt-0 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2502
{
- yyVAL.str = ""
+ yyVAL.str = yyDollar[1].str
}
case 417:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2506
+//line sql.y:2508
{
- yyVAL.str = yyDollar[1].str
+ yyVAL.str = string(yyDollar[1].str)
}
case 418:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -13185,365 +13120,367 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 419:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2516
- {
- yyVAL.str = string(yyDollar[1].str)
- }
- case 420:
- yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2521
+ yyDollar = yyS[yypt-0 : yypt+1]
+//line sql.y:2517
{
yyVAL.str = ""
}
- case 421:
+ case 420:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2525
+//line sql.y:2521
{
yyVAL.str = string(yyDollar[1].identifierCI.String())
}
- case 422:
+ case 421:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*IndexColumn
-//line sql.y:2531
+//line sql.y:2527
{
yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()}
}
yyVAL.union = yyLOCAL
- case 423:
+ case 422:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2535
+//line sql.y:2531
{
yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion())
}
- case 424:
+ case 423:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *IndexColumn
-//line sql.y:2541
+//line sql.y:2537
{
yyLOCAL = &IndexColumn{Column: yyDollar[1].identifierCI, Length: yyDollar[2].intPtrUnion(), Direction: yyDollar[3].orderDirectionUnion()}
}
yyVAL.union = yyLOCAL
- case 425:
+ case 424:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *IndexColumn
-//line sql.y:2545
+//line sql.y:2541
{
yyLOCAL = &IndexColumn{Expression: yyDollar[2].exprUnion(), Direction: yyDollar[4].orderDirectionUnion()}
}
yyVAL.union = yyLOCAL
- case 426:
+ case 425:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ConstraintDefinition
-//line sql.y:2551
+//line sql.y:2547
{
yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].identifierCI, Details: yyDollar[3].constraintInfoUnion()}
}
yyVAL.union = yyLOCAL
- case 427:
+ case 426:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConstraintDefinition
-//line sql.y:2555
+//line sql.y:2551
{
yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
}
yyVAL.union = yyLOCAL
- case 428:
+ case 427:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ConstraintDefinition
-//line sql.y:2561
+//line sql.y:2557
{
yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].identifierCI, Details: yyDollar[3].constraintInfoUnion()}
}
yyVAL.union = yyLOCAL
- case 429:
+ case 428:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConstraintDefinition
-//line sql.y:2565
+//line sql.y:2561
{
yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()}
}
yyVAL.union = yyLOCAL
- case 430:
+ case 429:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL ConstraintInfo
-//line sql.y:2571
+//line sql.y:2567
{
yyLOCAL = &ForeignKeyDefinition{IndexName: NewIdentifierCI(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 431:
+ case 430:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2577
+//line sql.y:2573
{
yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion()}
}
yyVAL.union = yyLOCAL
- case 432:
+ case 431:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2581
+//line sql.y:2577
{
yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion()}
}
yyVAL.union = yyLOCAL
- case 433:
+ case 432:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2585
+//line sql.y:2581
{
yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion()}
}
yyVAL.union = yyLOCAL
- case 434:
+ case 433:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2589
+//line sql.y:2585
{
yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnDelete: yyDollar[7].referenceActionUnion(), OnUpdate: yyDollar[8].referenceActionUnion()}
}
yyVAL.union = yyLOCAL
- case 435:
+ case 434:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2593
+//line sql.y:2589
{
yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), Match: yyDollar[6].matchActionUnion(), OnUpdate: yyDollar[7].referenceActionUnion(), OnDelete: yyDollar[8].referenceActionUnion()}
}
yyVAL.union = yyLOCAL
- case 436:
+ case 435:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2598
+//line sql.y:2594
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 437:
+ case 436:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ReferenceDefinition
-//line sql.y:2602
+//line sql.y:2598
{
yyLOCAL = yyDollar[1].referenceDefinitionUnion()
}
yyVAL.union = yyLOCAL
- case 438:
+ case 437:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL ConstraintInfo
-//line sql.y:2608
+//line sql.y:2604
{
yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 439:
+ case 438:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2614
+//line sql.y:2610
{
yyLOCAL = yyDollar[2].matchActionUnion()
}
yyVAL.union = yyLOCAL
- case 440:
+ case 439:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2620
+//line sql.y:2616
{
yyLOCAL = Full
}
yyVAL.union = yyLOCAL
- case 441:
+ case 440:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2624
+//line sql.y:2620
{
yyLOCAL = Partial
}
yyVAL.union = yyLOCAL
- case 442:
+ case 441:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2628
+//line sql.y:2624
{
yyLOCAL = Simple
}
yyVAL.union = yyLOCAL
- case 443:
+ case 442:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2633
+//line sql.y:2629
{
yyLOCAL = DefaultMatch
}
yyVAL.union = yyLOCAL
- case 444:
+ case 443:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL MatchAction
-//line sql.y:2637
+//line sql.y:2633
{
yyLOCAL = yyDollar[1].matchActionUnion()
}
yyVAL.union = yyLOCAL
- case 445:
+ case 444:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2643
+//line sql.y:2639
{
yyLOCAL = yyDollar[3].referenceActionUnion()
}
yyVAL.union = yyLOCAL
- case 446:
+ case 445:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2649
+//line sql.y:2645
{
yyLOCAL = yyDollar[3].referenceActionUnion()
}
yyVAL.union = yyLOCAL
- case 447:
+ case 446:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2655
+//line sql.y:2651
{
yyLOCAL = Restrict
}
yyVAL.union = yyLOCAL
- case 448:
+ case 447:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2659
+//line sql.y:2655
{
yyLOCAL = Cascade
}
yyVAL.union = yyLOCAL
- case 449:
+ case 448:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2663
+//line sql.y:2659
{
yyLOCAL = NoAction
}
yyVAL.union = yyLOCAL
- case 450:
+ case 449:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2667
+//line sql.y:2663
{
yyLOCAL = SetDefault
}
yyVAL.union = yyLOCAL
- case 451:
+ case 450:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ReferenceAction
-//line sql.y:2671
+//line sql.y:2667
{
yyLOCAL = SetNull
}
yyVAL.union = yyLOCAL
- case 452:
+ case 451:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2676
+//line sql.y:2672
{
yyVAL.str = ""
}
- case 453:
+ case 452:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2680
+//line sql.y:2676
{
yyVAL.str = string(yyDollar[1].str)
}
- case 454:
+ case 453:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2684
+//line sql.y:2680
{
yyVAL.str = string(yyDollar[1].str)
}
- case 455:
+ case 454:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2690
+//line sql.y:2686
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 456:
+ case 455:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:2694
+//line sql.y:2690
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 457:
+ case 456:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:2699
+//line sql.y:2695
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 458:
+ case 457:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2703
+//line sql.y:2699
{
yyLOCAL = yyDollar[1].booleanUnion()
}
yyVAL.union = yyLOCAL
- case 459:
+ case 458:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL TableOptions
-//line sql.y:2708
+//line sql.y:2704
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 460:
+ case 459:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableOptions
-//line sql.y:2712
+//line sql.y:2708
{
yyLOCAL = yyDollar[1].tableOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 461:
+ case 460:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableOptions
-//line sql.y:2718
+//line sql.y:2714
{
yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 462:
+ case 461:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2722
+//line sql.y:2718
{
yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion())
}
- case 463:
+ case 462:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2726
+//line sql.y:2722
{
yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
}
- case 464:
+ case 463:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableOptions
-//line sql.y:2732
+//line sql.y:2728
{
yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 465:
+ case 464:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2736
+//line sql.y:2732
{
yySLICE := (*TableOptions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion())
}
+ case 465:
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL *TableOption
+//line sql.y:2738
+ {
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ }
+ yyVAL.union = yyLOCAL
case 466:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *TableOption
@@ -13561,11 +13498,11 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 468:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2750
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str, CaseSensitive: true}
}
yyVAL.union = yyLOCAL
case 469:
@@ -13573,15 +13510,15 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2754
{
- yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str, CaseSensitive: true}
+ yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str, CaseSensitive: true}
}
yyVAL.union = yyLOCAL
case 470:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2758
{
- yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str, CaseSensitive: true}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 471:
@@ -13589,7 +13526,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2762
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 472:
@@ -13609,11 +13546,11 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 474:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2774
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
}
yyVAL.union = yyLOCAL
case 475:
@@ -13625,11 +13562,11 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 476:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2782
{
- yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 477:
@@ -13637,7 +13574,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2786
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 478:
@@ -13645,7 +13582,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2790
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].identifierCS.String(), CaseSensitive: true}
}
yyVAL.union = yyLOCAL
case 479:
@@ -13653,7 +13590,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2794
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].identifierCS.String(), CaseSensitive: true}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 480:
@@ -13661,7 +13598,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2798
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 481:
@@ -13669,7 +13606,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2802
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 482:
@@ -13701,7 +13638,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2818
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 486:
@@ -13709,7 +13646,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2822
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 487:
@@ -13717,7 +13654,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2826
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 488:
@@ -13725,7 +13662,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2830
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 489:
@@ -13733,7 +13670,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2834
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 490:
@@ -13741,7 +13678,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2838
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 491:
@@ -13749,7 +13686,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2842
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 492:
@@ -13757,7 +13694,7 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2846
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 493:
@@ -13765,38 +13702,36 @@ yydefault:
var yyLOCAL *TableOption
//line sql.y:2850
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 494:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2854
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].identifierCI.String() + yyDollar[4].str), CaseSensitive: true}
}
yyVAL.union = yyLOCAL
case 495:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *TableOption
//line sql.y:2858
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].identifierCI.String() + yyDollar[4].str), CaseSensitive: true}
+ yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()}
}
yyVAL.union = yyLOCAL
case 496:
- yyDollar = yyS[yypt-5 : yypt+1]
- var yyLOCAL *TableOption
-//line sql.y:2862
+ yyDollar = yyS[yypt-0 : yypt+1]
+//line sql.y:2863
{
- yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()}
+ yyVAL.str = ""
}
- yyVAL.union = yyLOCAL
case 497:
- yyDollar = yyS[yypt-0 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2867
{
- yyVAL.str = ""
+ yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 498:
yyDollar = yyS[yypt-2 : yypt+1]
@@ -13804,186 +13739,188 @@ yydefault:
{
yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
- case 499:
- yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2875
+ case 508:
+ yyDollar = yyS[yypt-3 : yypt+1]
+//line sql.y:2890
{
- yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str)
+ yyVAL.str = String(TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS})
}
case 509:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2894
{
- yyVAL.str = String(TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS})
+ yyVAL.str = yyDollar[1].identifierCI.String()
}
case 510:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2898
{
- yyVAL.str = yyDollar[1].identifierCI.String()
+ yyVAL.str = encodeSQLString(yyDollar[1].str)
}
case 511:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2902
- {
- yyVAL.str = encodeSQLString(yyDollar[1].str)
- }
- case 512:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:2906
{
yyVAL.str = string(yyDollar[1].str)
}
- case 513:
+ case 512:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2911
+//line sql.y:2907
{
yyVAL.str = ""
}
- case 515:
+ case 514:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:2917
+//line sql.y:2913
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 516:
+ case 515:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:2921
+//line sql.y:2917
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 517:
+ case 516:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:2926
+//line sql.y:2922
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 518:
+ case 517:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:2930
+//line sql.y:2926
{
yyLOCAL = yyDollar[2].colNameUnion()
}
yyVAL.union = yyLOCAL
- case 519:
+ case 518:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:2935
+//line sql.y:2931
{
yyVAL.str = ""
}
- case 520:
+ case 519:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:2939
+//line sql.y:2935
{
yyVAL.str = string(yyDollar[2].str)
}
- case 521:
+ case 520:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:2944
+//line sql.y:2940
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 522:
+ case 521:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:2948
+//line sql.y:2944
{
yyLOCAL = NewIntLiteral(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 523:
+ case 522:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:2952
+//line sql.y:2948
{
yyLOCAL = NewDecimalLiteral(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 524:
+ case 523:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:2957
+//line sql.y:2953
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 525:
+ case 524:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:2961
+//line sql.y:2957
{
yyLOCAL = yyDollar[1].alterOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 526:
+ case 525:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:2965
+//line sql.y:2961
{
yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()})
}
- case 527:
+ case 526:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:2969
+//line sql.y:2965
{
yyLOCAL = yyDollar[1].alterOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 528:
+ case 527:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2973
+//line sql.y:2969
{
yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...)
}
- case 529:
+ case 528:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:2977
+//line sql.y:2973
{
yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()})
}
yyVAL.union = yyLOCAL
- case 530:
+ case 529:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:2983
+//line sql.y:2979
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 531:
+ case 530:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2987
+//line sql.y:2983
{
yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
}
- case 532:
+ case 531:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:2991
+//line sql.y:2987
{
yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
}
- case 533:
+ case 532:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:2997
+//line sql.y:2993
{
yyLOCAL = yyDollar[1].tableOptionsUnion()
}
yyVAL.union = yyLOCAL
+ case 533:
+ yyDollar = yyS[yypt-2 : yypt+1]
+ var yyLOCAL AlterOption
+//line sql.y:2997
+ {
+ yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
+ }
+ yyVAL.union = yyLOCAL
case 534:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL AlterOption
@@ -13997,15 +13934,15 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3005
{
- yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()}
+ yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()}
}
yyVAL.union = yyLOCAL
case 536:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3009
{
- yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()}
+ yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()}
}
yyVAL.union = yyLOCAL
case 537:
@@ -14013,7 +13950,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3013
{
- yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()}
+ yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 538:
@@ -14021,31 +13958,31 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3017
{
- yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
+ yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true}
}
yyVAL.union = yyLOCAL
case 539:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3021
{
- yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true}
+ yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion(), DefaultLiteral: true}
}
yyVAL.union = yyLOCAL
case 540:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3025
{
- yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion(), DefaultLiteral: true}
+ yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 541:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3029
{
- yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[7].exprUnion()}
+ yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(false)}
}
yyVAL.union = yyLOCAL
case 542:
@@ -14053,15 +13990,15 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3033
{
- yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(false)}
+ yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(true)}
}
yyVAL.union = yyLOCAL
case 543:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3037
{
- yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), Invisible: ptr.Of(true)}
+ yyLOCAL = &AlterCheck{Name: yyDollar[3].identifierCI, Enforced: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
case 544:
@@ -14069,7 +14006,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3041
{
- yyLOCAL = &AlterCheck{Name: yyDollar[3].identifierCI, Enforced: yyDollar[4].booleanUnion()}
+ yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: false}
}
yyVAL.union = yyLOCAL
case 545:
@@ -14077,23 +14014,23 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3045
{
- yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: false}
+ yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: true}
}
yyVAL.union = yyLOCAL
case 546:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3049
{
- yyLOCAL = &AlterIndex{Name: yyDollar[3].identifierCI, Invisible: true}
+ yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 547:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3053
{
- yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()}
+ yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 548:
@@ -14101,7 +14038,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3057
{
- yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()}
+ yyLOCAL = &RenameColumn{OldName: yyDollar[3].colNameUnion(), NewName: yyDollar[5].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 549:
@@ -14109,15 +14046,15 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3061
{
- yyLOCAL = &RenameColumn{OldName: yyDollar[3].colNameUnion(), NewName: yyDollar[5].colNameUnion()}
+ yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str}
}
yyVAL.union = yyLOCAL
case 550:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3065
{
- yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str}
+ yyLOCAL = &KeyState{Enable: false}
}
yyVAL.union = yyLOCAL
case 551:
@@ -14125,7 +14062,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3069
{
- yyLOCAL = &KeyState{Enable: false}
+ yyLOCAL = &KeyState{Enable: true}
}
yyVAL.union = yyLOCAL
case 552:
@@ -14133,7 +14070,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3073
{
- yyLOCAL = &KeyState{Enable: true}
+ yyLOCAL = &TablespaceOperation{Import: false}
}
yyVAL.union = yyLOCAL
case 553:
@@ -14141,15 +14078,15 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3077
{
- yyLOCAL = &TablespaceOperation{Import: false}
+ yyLOCAL = &TablespaceOperation{Import: true}
}
yyVAL.union = yyLOCAL
case 554:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3081
{
- yyLOCAL = &TablespaceOperation{Import: true}
+ yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 555:
@@ -14157,7 +14094,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3085
{
- yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()}
+ yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
case 556:
@@ -14165,23 +14102,23 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3089
{
- yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].identifierCI}
+ yyLOCAL = &DropKey{Type: PrimaryKeyType}
}
yyVAL.union = yyLOCAL
case 557:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3093
{
- yyLOCAL = &DropKey{Type: PrimaryKeyType}
+ yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].identifierCI}
}
yyVAL.union = yyLOCAL
case 558:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3097
{
- yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].identifierCI}
+ yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
case 559:
@@ -14193,52 +14130,52 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 560:
- yyDollar = yyS[yypt-3 : yypt+1]
- var yyLOCAL AlterOption
-//line sql.y:3105
- {
- yyLOCAL = &DropKey{Type: CheckKeyType, Name: yyDollar[3].identifierCI}
- }
- yyVAL.union = yyLOCAL
- case 561:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:3109
+//line sql.y:3105
{
yyLOCAL = &Force{}
}
yyVAL.union = yyLOCAL
- case 562:
+ case 561:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:3113
+//line sql.y:3109
{
yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName}
}
yyVAL.union = yyLOCAL
- case 563:
+ case 562:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:3117
+//line sql.y:3113
{
yyLOCAL = &RenameIndex{OldName: yyDollar[3].identifierCI, NewName: yyDollar[5].identifierCI}
}
yyVAL.union = yyLOCAL
- case 564:
+ case 563:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:3123
+//line sql.y:3119
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 565:
+ case 564:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3127
+//line sql.y:3123
{
yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion())
}
+ case 565:
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL AlterOption
+//line sql.y:3129
+ {
+ yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
+ }
+ yyVAL.union = yyLOCAL
case 566:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
@@ -14268,7 +14205,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3145
{
- yyLOCAL = AlgorithmValue(string(yyDollar[3].str))
+ yyLOCAL = &LockOption{Type: DefaultType}
}
yyVAL.union = yyLOCAL
case 570:
@@ -14276,7 +14213,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3149
{
- yyLOCAL = &LockOption{Type: DefaultType}
+ yyLOCAL = &LockOption{Type: NoneType}
}
yyVAL.union = yyLOCAL
case 571:
@@ -14284,7 +14221,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3153
{
- yyLOCAL = &LockOption{Type: NoneType}
+ yyLOCAL = &LockOption{Type: SharedType}
}
yyVAL.union = yyLOCAL
case 572:
@@ -14292,37 +14229,29 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:3157
{
- yyLOCAL = &LockOption{Type: SharedType}
+ yyLOCAL = &LockOption{Type: ExclusiveType}
}
yyVAL.union = yyLOCAL
case 573:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3161
{
- yyLOCAL = &LockOption{Type: ExclusiveType}
+ yyLOCAL = &Validation{With: true}
}
yyVAL.union = yyLOCAL
case 574:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL AlterOption
//line sql.y:3165
- {
- yyLOCAL = &Validation{With: true}
- }
- yyVAL.union = yyLOCAL
- case 575:
- yyDollar = yyS[yypt-2 : yypt+1]
- var yyLOCAL AlterOption
-//line sql.y:3169
{
yyLOCAL = &Validation{With: false}
}
yyVAL.union = yyLOCAL
- case 576:
+ case 575:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3175
+//line sql.y:3171
{
yyDollar[1].alterTableUnion().FullyParsed = true
yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
@@ -14330,10 +14259,10 @@ yydefault:
yyLOCAL = yyDollar[1].alterTableUnion()
}
yyVAL.union = yyLOCAL
- case 577:
+ case 576:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3182
+//line sql.y:3178
{
yyDollar[1].alterTableUnion().FullyParsed = true
yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
@@ -14341,10 +14270,10 @@ yydefault:
yyLOCAL = yyDollar[1].alterTableUnion()
}
yyVAL.union = yyLOCAL
- case 578:
+ case 577:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3189
+//line sql.y:3185
{
yyDollar[1].alterTableUnion().FullyParsed = true
yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion()
@@ -14352,28 +14281,28 @@ yydefault:
yyLOCAL = yyDollar[1].alterTableUnion()
}
yyVAL.union = yyLOCAL
- case 579:
+ case 578:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3196
+//line sql.y:3192
{
yyDollar[1].alterTableUnion().FullyParsed = true
yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion()
yyLOCAL = yyDollar[1].alterTableUnion()
}
yyVAL.union = yyLOCAL
- case 580:
+ case 579:
yyDollar = yyS[yypt-11 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3202
+//line sql.y:3198
{
yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName, Comments: Comments(yyDollar[2].strs).Parsed(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].definerUnion(), Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str}
}
yyVAL.union = yyLOCAL
- case 581:
+ case 580:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3212
+//line sql.y:3208
{
yyDollar[1].alterDatabaseUnion().FullyParsed = true
yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].identifierCS
@@ -14381,10 +14310,10 @@ yydefault:
yyLOCAL = yyDollar[1].alterDatabaseUnion()
}
yyVAL.union = yyLOCAL
- case 582:
+ case 581:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3219
+//line sql.y:3215
{
yyDollar[1].alterDatabaseUnion().FullyParsed = true
yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].identifierCS
@@ -14392,10 +14321,10 @@ yydefault:
yyLOCAL = yyDollar[1].alterDatabaseUnion()
}
yyVAL.union = yyLOCAL
- case 583:
+ case 582:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3226
+//line sql.y:3222
{
yyLOCAL = &AlterVschema{
Action: CreateVindexDDLAction,
@@ -14408,10 +14337,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 584:
+ case 583:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3238
+//line sql.y:3234
{
yyLOCAL = &AlterVschema{
Action: DropVindexDDLAction,
@@ -14422,26 +14351,26 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 585:
+ case 584:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3248
+//line sql.y:3244
{
yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName}
}
yyVAL.union = yyLOCAL
- case 586:
+ case 585:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3252
+//line sql.y:3248
{
yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName}
}
yyVAL.union = yyLOCAL
- case 587:
+ case 586:
yyDollar = yyS[yypt-13 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3256
+//line sql.y:3252
{
yyLOCAL = &AlterVschema{
Action: AddColVindexDDLAction,
@@ -14455,10 +14384,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 588:
+ case 587:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3269
+//line sql.y:3265
{
yyLOCAL = &AlterVschema{
Action: DropColVindexDDLAction,
@@ -14469,26 +14398,26 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 589:
+ case 588:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3279
+//line sql.y:3275
{
yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName}
}
yyVAL.union = yyLOCAL
- case 590:
+ case 589:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3283
+//line sql.y:3279
{
yyLOCAL = &AlterVschema{Action: DropSequenceDDLAction, Table: yyDollar[6].tableName}
}
yyVAL.union = yyLOCAL
- case 591:
+ case 590:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3287
+//line sql.y:3283
{
yyLOCAL = &AlterVschema{
Action: AddAutoIncDDLAction,
@@ -14500,10 +14429,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 592:
+ case 591:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3298
+//line sql.y:3294
{
yyLOCAL = &AlterVschema{
Action: DropAutoIncDDLAction,
@@ -14511,10 +14440,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 593:
+ case 592:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3305
+//line sql.y:3301
{
yyLOCAL = &AlterMigration{
Type: RetryMigrationType,
@@ -14522,10 +14451,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 594:
+ case 593:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3312
+//line sql.y:3308
{
yyLOCAL = &AlterMigration{
Type: CleanupMigrationType,
@@ -14533,20 +14462,20 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 595:
+ case 594:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3319
+//line sql.y:3315
{
yyLOCAL = &AlterMigration{
Type: CleanupAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 596:
+ case 595:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3325
+//line sql.y:3321
{
yyLOCAL = &AlterMigration{
Type: LaunchMigrationType,
@@ -14554,10 +14483,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 597:
+ case 596:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3332
+//line sql.y:3328
{
yyLOCAL = &AlterMigration{
Type: LaunchMigrationType,
@@ -14566,20 +14495,20 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 598:
+ case 597:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3340
+//line sql.y:3336
{
yyLOCAL = &AlterMigration{
Type: LaunchAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 599:
+ case 598:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3346
+//line sql.y:3342
{
yyLOCAL = &AlterMigration{
Type: CompleteMigrationType,
@@ -14587,20 +14516,20 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 600:
+ case 599:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3353
+//line sql.y:3349
{
yyLOCAL = &AlterMigration{
Type: CompleteAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 601:
+ case 600:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3359
+//line sql.y:3355
{
yyLOCAL = &AlterMigration{
Type: CancelMigrationType,
@@ -14608,20 +14537,20 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 602:
+ case 601:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3366
+//line sql.y:3362
{
yyLOCAL = &AlterMigration{
Type: CancelAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 603:
+ case 602:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3372
+//line sql.y:3368
{
yyLOCAL = &AlterMigration{
Type: ThrottleMigrationType,
@@ -14631,10 +14560,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 604:
+ case 603:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3381
+//line sql.y:3377
{
yyLOCAL = &AlterMigration{
Type: ThrottleAllMigrationType,
@@ -14643,10 +14572,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 605:
+ case 604:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3389
+//line sql.y:3385
{
yyLOCAL = &AlterMigration{
Type: UnthrottleMigrationType,
@@ -14654,20 +14583,20 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 606:
+ case 605:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3396
+//line sql.y:3392
{
yyLOCAL = &AlterMigration{
Type: UnthrottleAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 607:
+ case 606:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3402
+//line sql.y:3398
{
yyLOCAL = &AlterMigration{
Type: ForceCutOverMigrationType,
@@ -14675,28 +14604,28 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 608:
+ case 607:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3409
+//line sql.y:3405
{
yyLOCAL = &AlterMigration{
Type: ForceCutOverAllMigrationType,
}
}
yyVAL.union = yyLOCAL
- case 609:
+ case 608:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3416
+//line sql.y:3412
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 610:
+ case 609:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3420
+//line sql.y:3416
{
yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion()
yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion()
@@ -14704,10 +14633,10 @@ yydefault:
yyLOCAL = yyDollar[3].partitionOptionUnion()
}
yyVAL.union = yyLOCAL
- case 611:
+ case 610:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3429
+//line sql.y:3425
{
yyLOCAL = &PartitionOption{
IsLinear: yyDollar[1].booleanUnion(),
@@ -14716,10 +14645,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 612:
+ case 611:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3437
+//line sql.y:3433
{
yyLOCAL = &PartitionOption{
IsLinear: yyDollar[1].booleanUnion(),
@@ -14729,10 +14658,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 613:
+ case 612:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3446
+//line sql.y:3442
{
yyLOCAL = &PartitionOption{
Type: yyDollar[1].partitionByTypeUnion(),
@@ -14740,10 +14669,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 614:
+ case 613:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3453
+//line sql.y:3449
{
yyLOCAL = &PartitionOption{
Type: yyDollar[1].partitionByTypeUnion(),
@@ -14751,18 +14680,18 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 615:
+ case 614:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3461
+//line sql.y:3457
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 616:
+ case 615:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3465
+//line sql.y:3461
{
yyLOCAL = &SubPartition{
IsLinear: yyDollar[3].booleanUnion(),
@@ -14772,10 +14701,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 617:
+ case 616:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3474
+//line sql.y:3470
{
yyLOCAL = &SubPartition{
IsLinear: yyDollar[3].booleanUnion(),
@@ -14786,292 +14715,300 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 618:
+ case 617:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3485
+//line sql.y:3481
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 619:
+ case 618:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3489
+//line sql.y:3485
{
yyLOCAL = yyDollar[2].partDefsUnion()
}
yyVAL.union = yyLOCAL
- case 620:
+ case 619:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3494
+//line sql.y:3490
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 621:
+ case 620:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3498
+//line sql.y:3494
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 622:
+ case 621:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3503
+//line sql.y:3499
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 623:
+ case 622:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3507
+//line sql.y:3503
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 624:
+ case 623:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:3513
+//line sql.y:3509
{
yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].identifierCS}
}
yyVAL.union = yyLOCAL
- case 625:
+ case 624:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL []*JtColumnDefinition
-//line sql.y:3519
+//line sql.y:3515
{
yyLOCAL = yyDollar[3].jtColumnListUnion()
}
yyVAL.union = yyLOCAL
- case 626:
+ case 625:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*JtColumnDefinition
-//line sql.y:3525
+//line sql.y:3521
{
yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 627:
+ case 626:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3529
+//line sql.y:3525
{
yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion())
}
- case 628:
+ case 627:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3535
+//line sql.y:3531
{
yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].identifierCI}}
}
yyVAL.union = yyLOCAL
- case 629:
+ case 628:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3539
+//line sql.y:3535
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 630:
+ case 629:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3545
+//line sql.y:3541
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 631:
+ case 630:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3551
+//line sql.y:3547
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 632:
+ case 631:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3557
+//line sql.y:3553
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 633:
+ case 632:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3563
+//line sql.y:3559
{
jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()}
yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath}
}
yyVAL.union = yyLOCAL
- case 634:
+ case 633:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3569
+//line sql.y:3565
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 635:
+ case 634:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3573
+//line sql.y:3569
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 636:
+ case 635:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3577
+//line sql.y:3573
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 637:
+ case 636:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3581
+//line sql.y:3577
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 638:
+ case 637:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3587
+//line sql.y:3583
{
yyLOCAL = yyDollar[1].jtOnResponseUnion()
}
yyVAL.union = yyLOCAL
- case 639:
+ case 638:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3593
+//line sql.y:3589
{
yyLOCAL = yyDollar[1].jtOnResponseUnion()
}
yyVAL.union = yyLOCAL
- case 640:
+ case 639:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3599
+//line sql.y:3595
{
yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType}
}
yyVAL.union = yyLOCAL
- case 641:
+ case 640:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3603
+//line sql.y:3599
{
yyLOCAL = &JtOnResponse{ResponseType: NullJSONType}
}
yyVAL.union = yyLOCAL
- case 642:
+ case 641:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3607
+//line sql.y:3603
{
yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 643:
+ case 642:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL PartitionByType
-//line sql.y:3613
+//line sql.y:3609
{
yyLOCAL = RangeType
}
yyVAL.union = yyLOCAL
- case 644:
+ case 643:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL PartitionByType
-//line sql.y:3617
+//line sql.y:3613
{
yyLOCAL = ListType
}
yyVAL.union = yyLOCAL
- case 645:
+ case 644:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3622
+//line sql.y:3618
{
yyLOCAL = -1
}
yyVAL.union = yyLOCAL
- case 646:
+ case 645:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:3626
+//line sql.y:3622
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 647:
+ case 646:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3631
+//line sql.y:3627
{
yyLOCAL = -1
}
yyVAL.union = yyLOCAL
- case 648:
+ case 647:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:3635
+//line sql.y:3631
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 649:
+ case 648:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3641
+//line sql.y:3637
{
yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}}
}
yyVAL.union = yyLOCAL
- case 650:
+ case 649:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3645
+//line sql.y:3641
{
yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 651:
+ case 650:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3649
+//line sql.y:3645
{
yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()}
}
yyVAL.union = yyLOCAL
+ case 651:
+ yyDollar = yyS[yypt-4 : yypt+1]
+ var yyLOCAL *PartitionSpec
+//line sql.y:3649
+ {
+ yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()}
+ }
+ yyVAL.union = yyLOCAL
case 652:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionSpec
//line sql.y:3653
{
- yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 653:
@@ -15079,7 +15016,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3657
{
- yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 654:
@@ -15087,15 +15024,15 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3661
{
- yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 655:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
//line sql.y:3665
{
- yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 656:
@@ -15103,7 +15040,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3669
{
- yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 657:
@@ -15111,23 +15048,23 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3673
{
- yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 658:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *PartitionSpec
//line sql.y:3677
{
- yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)}
+ yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()}
}
yyVAL.union = yyLOCAL
case 659:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
//line sql.y:3681
{
- yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()}
+ yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 660:
@@ -15135,7 +15072,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3685
{
- yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 661:
@@ -15143,7 +15080,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3689
{
- yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 662:
@@ -15151,7 +15088,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3693
{
- yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 663:
@@ -15159,7 +15096,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3697
{
- yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 664:
@@ -15167,7 +15104,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3701
{
- yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 665:
@@ -15175,7 +15112,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3705
{
- yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 666:
@@ -15183,7 +15120,7 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3709
{
- yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()}
+ yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true}
}
yyVAL.union = yyLOCAL
case 667:
@@ -15191,273 +15128,265 @@ yydefault:
var yyLOCAL *PartitionSpec
//line sql.y:3713
{
- yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true}
+ yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
case 668:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
//line sql.y:3717
- {
- yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()}
- }
- yyVAL.union = yyLOCAL
- case 669:
- yyDollar = yyS[yypt-3 : yypt+1]
- var yyLOCAL *PartitionSpec
-//line sql.y:3721
{
yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 670:
+ case 669:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3725
+//line sql.y:3721
{
yyLOCAL = &PartitionSpec{Action: UpgradeAction}
}
yyVAL.union = yyLOCAL
- case 671:
+ case 670:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3730
+//line sql.y:3726
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 672:
+ case 671:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:3734
+//line sql.y:3730
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 673:
+ case 672:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:3738
+//line sql.y:3734
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 674:
+ case 673:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3744
+//line sql.y:3740
{
yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()}
}
yyVAL.union = yyLOCAL
- case 675:
+ case 674:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3748
+//line sql.y:3744
{
yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].partDefUnion())
}
- case 676:
+ case 675:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:3754
+//line sql.y:3750
{
yyVAL.partDefUnion().Options = yyDollar[2].partitionDefinitionOptionsUnion()
}
- case 677:
+ case 676:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3759
+//line sql.y:3755
{
yyLOCAL = &PartitionDefinitionOptions{}
}
yyVAL.union = yyLOCAL
- case 678:
+ case 677:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3763
+//line sql.y:3759
{
yyDollar[1].partitionDefinitionOptionsUnion().ValueRange = yyDollar[2].partitionValueRangeUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 679:
+ case 678:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3768
+//line sql.y:3764
{
yyDollar[1].partitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 680:
+ case 679:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3773
+//line sql.y:3769
{
yyDollar[1].partitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 681:
+ case 680:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3778
+//line sql.y:3774
{
yyDollar[1].partitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 682:
+ case 681:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3783
+//line sql.y:3779
{
yyDollar[1].partitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 683:
+ case 682:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3788
+//line sql.y:3784
{
yyDollar[1].partitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 684:
+ case 683:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3793
+//line sql.y:3789
{
yyDollar[1].partitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 685:
+ case 684:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3798
+//line sql.y:3794
{
yyDollar[1].partitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 686:
+ case 685:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3803
+//line sql.y:3799
{
yyDollar[1].partitionDefinitionOptionsUnion().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitionsUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 687:
+ case 686:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL SubPartitionDefinitions
-//line sql.y:3809
+//line sql.y:3805
{
yyLOCAL = yyDollar[2].subPartitionDefinitionsUnion()
}
yyVAL.union = yyLOCAL
- case 688:
+ case 687:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SubPartitionDefinitions
-//line sql.y:3815
+//line sql.y:3811
{
yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 689:
+ case 688:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3819
+//line sql.y:3815
{
yySLICE := (*SubPartitionDefinitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].subPartitionDefinitionUnion())
}
- case 690:
+ case 689:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *SubPartitionDefinition
-//line sql.y:3825
+//line sql.y:3821
{
yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].identifierCI, Options: yyDollar[3].subPartitionDefinitionOptionsUnion()}
}
yyVAL.union = yyLOCAL
- case 691:
+ case 690:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3830
+//line sql.y:3826
{
yyLOCAL = &SubPartitionDefinitionOptions{}
}
yyVAL.union = yyLOCAL
- case 692:
+ case 691:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3834
+//line sql.y:3830
{
yyDollar[1].subPartitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 693:
+ case 692:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3839
+//line sql.y:3835
{
yyDollar[1].subPartitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 694:
+ case 693:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3844
+//line sql.y:3840
{
yyDollar[1].subPartitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 695:
+ case 694:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3849
+//line sql.y:3845
{
yyDollar[1].subPartitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 696:
+ case 695:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3854
+//line sql.y:3850
{
yyDollar[1].subPartitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 697:
+ case 696:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3859
+//line sql.y:3855
{
yyDollar[1].subPartitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 698:
+ case 697:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3864
+//line sql.y:3860
{
yyDollar[1].subPartitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 699:
+ case 698:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3871
+//line sql.y:3867
{
yyLOCAL = &PartitionValueRange{
Type: LessThanType,
@@ -15465,10 +15394,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 700:
+ case 699:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3878
+//line sql.y:3874
{
yyLOCAL = &PartitionValueRange{
Type: LessThanType,
@@ -15476,10 +15405,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 701:
+ case 700:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3885
+//line sql.y:3881
{
yyLOCAL = &PartitionValueRange{
Type: InType,
@@ -15487,131 +15416,131 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 702:
+ case 701:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3893
+//line sql.y:3889
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 703:
+ case 702:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3897
+//line sql.y:3893
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 704:
+ case 703:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionEngine
-//line sql.y:3903
+//line sql.y:3899
{
yyLOCAL = &PartitionEngine{Storage: yyDollar[1].booleanUnion(), Name: yyDollar[4].identifierCS.String()}
}
yyVAL.union = yyLOCAL
- case 705:
+ case 704:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3909
+//line sql.y:3905
{
yyLOCAL = NewStrLiteral(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 706:
+ case 705:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3915
+//line sql.y:3911
{
yyLOCAL = NewStrLiteral(yyDollar[4].str)
}
yyVAL.union = yyLOCAL
- case 707:
+ case 706:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3921
+//line sql.y:3917
{
yyLOCAL = NewStrLiteral(yyDollar[4].str)
}
yyVAL.union = yyLOCAL
- case 708:
+ case 707:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3927
+//line sql.y:3923
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 709:
+ case 708:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3933
+//line sql.y:3929
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 710:
+ case 709:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3939
+//line sql.y:3935
{
yyVAL.str = yyDollar[3].identifierCS.String()
}
- case 711:
+ case 710:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinition
-//line sql.y:3945
+//line sql.y:3941
{
yyLOCAL = &PartitionDefinition{Name: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 712:
+ case 711:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:3951
+//line sql.y:3947
{
yyVAL.str = ""
}
- case 713:
+ case 712:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3955
+//line sql.y:3951
{
yyVAL.str = ""
}
- case 714:
+ case 713:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3961
+//line sql.y:3957
{
yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()}
}
yyVAL.union = yyLOCAL
- case 715:
+ case 714:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*RenameTablePair
-//line sql.y:3967
+//line sql.y:3963
{
yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}}
}
yyVAL.union = yyLOCAL
- case 716:
+ case 715:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:3971
+//line sql.y:3967
{
yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName})
}
- case 717:
+ case 716:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3977
+//line sql.y:3973
{
yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), Temp: yyDollar[3].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 718:
+ case 717:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3981
+//line sql.y:3977
{
// Change this to an alter statement
if yyDollar[4].identifierCI.Lowered() == "primary" {
@@ -15621,84 +15550,92 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 719:
+ case 718:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3990
+//line sql.y:3986
{
yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), IfExists: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 720:
+ case 719:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3994
+//line sql.y:3990
{
yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs).Parsed(), DBName: yyDollar[5].identifierCS, IfExists: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 721:
+ case 720:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4000
+//line sql.y:3996
{
yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName}
}
yyVAL.union = yyLOCAL
- case 722:
+ case 721:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4004
+//line sql.y:4000
{
yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName}
}
yyVAL.union = yyLOCAL
- case 723:
+ case 722:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4010
+//line sql.y:4006
{
yyLOCAL = &Analyze{IsLocal: yyDollar[2].booleanUnion(), Table: yyDollar[4].tableName}
}
yyVAL.union = yyLOCAL
- case 724:
+ case 723:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4016
+//line sql.y:4012
{
yyLOCAL = &PurgeBinaryLogs{To: string(yyDollar[5].str)}
}
yyVAL.union = yyLOCAL
- case 725:
+ case 724:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4020
+//line sql.y:4016
{
yyLOCAL = &PurgeBinaryLogs{Before: string(yyDollar[5].str)}
}
yyVAL.union = yyLOCAL
+ case 725:
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL Statement
+//line sql.y:4022
+ {
+ yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}}
+ }
+ yyVAL.union = yyLOCAL
case 726:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
//line sql.y:4026
{
- yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 727:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
//line sql.y:4030
{
- yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 728:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
//line sql.y:4034
{
- yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 729:
@@ -15714,7 +15651,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4042
{
- yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 731:
@@ -15726,43 +15663,43 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 732:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4050
{
- yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 733:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
//line sql.y:4054
{
- yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 734:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
//line sql.y:4058
{
- yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 735:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
//line sql.y:4062
{
- yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Privilege}}
}
yyVAL.union = yyLOCAL
case 736:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4066
{
- yyLOCAL = &Show{&ShowBasic{Command: Privilege}}
+ yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 737:
@@ -15770,7 +15707,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4070
{
- yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 738:
@@ -15778,7 +15715,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4074
{
- yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 739:
@@ -15786,7 +15723,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4078
{
- yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 740:
@@ -15794,15 +15731,15 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4082
{
- yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 741:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
//line sql.y:4086
{
- yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 742:
@@ -15810,15 +15747,15 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4090
{
- yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 743:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4094
{
- yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 744:
@@ -15826,7 +15763,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4098
{
- yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 745:
@@ -15834,7 +15771,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4102
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 746:
@@ -15842,7 +15779,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4106
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 747:
@@ -15850,7 +15787,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4110
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 748:
@@ -15858,7 +15795,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4114
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 749:
@@ -15866,7 +15803,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4118
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 750:
@@ -15874,15 +15811,15 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4122
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
case 751:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
//line sql.y:4126
{
- yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}}
+ yyLOCAL = &Show{&ShowBasic{Command: Engines}}
}
yyVAL.union = yyLOCAL
case 752:
@@ -15890,15 +15827,15 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4130
{
- yyLOCAL = &Show{&ShowBasic{Command: Engines}}
+ yyLOCAL = &Show{&ShowBasic{Command: Plugins}}
}
yyVAL.union = yyLOCAL
case 753:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4134
{
- yyLOCAL = &Show{&ShowBasic{Command: Plugins}}
+ yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS}}
}
yyVAL.union = yyLOCAL
case 754:
@@ -15906,7 +15843,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4138
{
- yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS}}
+ yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS}}
}
yyVAL.union = yyLOCAL
case 755:
@@ -15914,7 +15851,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4142
{
- yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS}}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 756:
@@ -15922,7 +15859,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4146
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].identifierCS}}
}
yyVAL.union = yyLOCAL
case 757:
@@ -15930,23 +15867,23 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4150
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].identifierCS}}
+ yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
case 758:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
//line sql.y:4154
{
- yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)}
+ yyLOCAL = &ShowThrottledApps{}
}
yyVAL.union = yyLOCAL
case 759:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
//line sql.y:4158
{
- yyLOCAL = &ShowThrottledApps{}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 760:
@@ -15954,7 +15891,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4162
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &ShowThrottlerStatus{}
}
yyVAL.union = yyLOCAL
case 761:
@@ -15962,7 +15899,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4166
{
- yyLOCAL = &ShowThrottlerStatus{}
+ yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}}
}
yyVAL.union = yyLOCAL
case 762:
@@ -15970,7 +15907,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4170
{
- yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}}
+ yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}}
}
yyVAL.union = yyLOCAL
case 763:
@@ -15978,31 +15915,31 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4174
{
- yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}}
+ yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}}
}
yyVAL.union = yyLOCAL
case 764:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
//line sql.y:4178
{
- yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}}
+ yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}}
}
yyVAL.union = yyLOCAL
case 765:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
//line sql.y:4182
{
- yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}}
+ yyLOCAL = &Show{&ShowBasic{Command: Warnings}}
}
yyVAL.union = yyLOCAL
case 766:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
//line sql.y:4186
{
- yyLOCAL = &Show{&ShowBasic{Command: Warnings}}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 767:
@@ -16010,31 +15947,31 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4190
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
case 768:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
//line sql.y:4194
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}}
+ yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}}
}
yyVAL.union = yyLOCAL
case 769:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4198
+//line sql.y:4201
{
- yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].identifierCI.String())}}
}
yyVAL.union = yyLOCAL
case 770:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4205
{
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].identifierCI.String())}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
case 771:
@@ -16042,7 +15979,7 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4209
{
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()}}
}
yyVAL.union = yyLOCAL
case 772:
@@ -16050,23 +15987,23 @@ yydefault:
var yyLOCAL Statement
//line sql.y:4213
{
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
case 773:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
//line sql.y:4217
{
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}}
}
yyVAL.union = yyLOCAL
case 774:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
//line sql.y:4221
{
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}}
+ yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}}
}
yyVAL.union = yyLOCAL
case 775:
@@ -16078,163 +16015,161 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 776:
- yyDollar = yyS[yypt-4 : yypt+1]
- var yyLOCAL Statement
-//line sql.y:4229
- {
- yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}}
- }
- yyVAL.union = yyLOCAL
- case 777:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4233
+//line sql.y:4229
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
- case 778:
+ case 777:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4237
+//line sql.y:4233
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}}
}
yyVAL.union = yyLOCAL
- case 779:
+ case 778:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4241
+//line sql.y:4237
{
yyLOCAL = &Show{&ShowTransactionStatus{TransactionID: string(yyDollar[5].str)}}
}
yyVAL.union = yyLOCAL
- case 780:
+ case 779:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4245
+//line sql.y:4241
{
yyLOCAL = &Show{&ShowTransactionStatus{}}
}
yyVAL.union = yyLOCAL
- case 781:
+ case 780:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4249
+//line sql.y:4245
{
yyLOCAL = &Show{&ShowTransactionStatus{Keyspace: yyDollar[5].identifierCS.String()}}
}
yyVAL.union = yyLOCAL
- case 782:
+ case 781:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4254
+//line sql.y:4250
{
}
- case 783:
+ case 782:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4256
+//line sql.y:4252
{
}
- case 784:
+ case 783:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4260
+//line sql.y:4256
{
yyVAL.str = ""
}
- case 785:
+ case 784:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4264
+//line sql.y:4260
{
yyVAL.str = "extended "
}
- case 786:
+ case 785:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4270
+//line sql.y:4266
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 787:
+ case 786:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4274
+//line sql.y:4270
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 788:
+ case 787:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4280
+//line sql.y:4276
{
yyVAL.str = string(yyDollar[1].str)
}
- case 789:
+ case 788:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4284
+//line sql.y:4280
{
yyVAL.str = string(yyDollar[1].str)
}
- case 790:
+ case 789:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4290
+//line sql.y:4286
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 791:
+ case 790:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4294
+//line sql.y:4290
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 792:
+ case 791:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4298
+//line sql.y:4294
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 793:
+ case 792:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4304
+//line sql.y:4300
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 794:
+ case 793:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4308
+//line sql.y:4304
{
yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 795:
+ case 794:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4312
+//line sql.y:4308
{
yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 796:
+ case 795:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4318
+//line sql.y:4314
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 797:
+ case 796:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4322
+//line sql.y:4318
{
yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 798:
+ case 797:
yyDollar = yyS[yypt-0 : yypt+1]
+//line sql.y:4324
+ {
+ yyVAL.empty = struct{}{}
+ }
+ case 798:
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4328
{
yyVAL.empty = struct{}{}
@@ -16247,9 +16182,9 @@ yydefault:
}
case 800:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4336
+//line sql.y:4338
{
- yyVAL.empty = struct{}{}
+ yyVAL.str = string(yyDollar[1].str)
}
case 801:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -16258,237 +16193,239 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 802:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4346
- {
- yyVAL.str = string(yyDollar[1].str)
- }
- case 803:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4352
+//line sql.y:4348
{
yyLOCAL = &Use{DBName: yyDollar[2].identifierCS}
}
yyVAL.union = yyLOCAL
- case 804:
+ case 803:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4356
+//line sql.y:4352
{
yyLOCAL = &Use{DBName: IdentifierCS{v: ""}}
}
yyVAL.union = yyLOCAL
- case 805:
+ case 804:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4360
+//line sql.y:4356
{
yyLOCAL = &Use{DBName: NewIdentifierCS(yyDollar[2].identifierCS.String() + "@" + string(yyDollar[3].str))}
}
yyVAL.union = yyLOCAL
- case 806:
+ case 805:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4367
+//line sql.y:4363
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 807:
+ case 806:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4371
+//line sql.y:4367
{
yyVAL.identifierCS = NewIdentifierCS("@" + string(yyDollar[1].str))
}
- case 808:
+ case 807:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4375
+//line sql.y:4371
{
yyVAL.identifierCS = NewIdentifierCS("@@" + string(yyDollar[1].str))
}
- case 809:
+ case 808:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4379
+//line sql.y:4375
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 810:
+ case 809:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4386
+//line sql.y:4382
{
yyLOCAL = &Begin{}
}
yyVAL.union = yyLOCAL
- case 811:
+ case 810:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4390
+//line sql.y:4386
{
yyLOCAL = &Begin{TxAccessModes: yyDollar[3].txAccessModesUnion()}
}
yyVAL.union = yyLOCAL
- case 812:
+ case 811:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4395
+//line sql.y:4391
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 813:
+ case 812:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4399
+//line sql.y:4395
{
yyLOCAL = yyDollar[1].txAccessModesUnion()
}
yyVAL.union = yyLOCAL
- case 814:
+ case 813:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4405
+//line sql.y:4401
{
yyLOCAL = []TxAccessMode{yyDollar[1].txAccessModeUnion()}
}
yyVAL.union = yyLOCAL
- case 815:
+ case 814:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4409
+//line sql.y:4405
{
yySLICE := (*[]TxAccessMode)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].txAccessModeUnion())
}
- case 816:
+ case 815:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4415
+//line sql.y:4411
{
yyLOCAL = WithConsistentSnapshot
}
yyVAL.union = yyLOCAL
- case 817:
+ case 816:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4419
+//line sql.y:4415
{
yyLOCAL = ReadWrite
}
yyVAL.union = yyLOCAL
- case 818:
+ case 817:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4423
+//line sql.y:4419
{
yyLOCAL = ReadOnly
}
yyVAL.union = yyLOCAL
- case 819:
+ case 818:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4430
+//line sql.y:4426
{
yyLOCAL = &Commit{}
}
yyVAL.union = yyLOCAL
- case 820:
+ case 819:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4436
+//line sql.y:4432
{
yyLOCAL = &Rollback{}
}
yyVAL.union = yyLOCAL
- case 821:
+ case 820:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4440
+//line sql.y:4436
{
yyLOCAL = &SRollback{Name: yyDollar[5].identifierCI}
}
yyVAL.union = yyLOCAL
- case 822:
+ case 821:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4445
+//line sql.y:4441
{
yyVAL.empty = struct{}{}
}
- case 823:
+ case 822:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4447
+//line sql.y:4443
{
yyVAL.empty = struct{}{}
}
- case 824:
+ case 823:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4450
+//line sql.y:4446
{
yyVAL.empty = struct{}{}
}
- case 825:
+ case 824:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4452
+//line sql.y:4448
{
yyVAL.empty = struct{}{}
}
- case 826:
+ case 825:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4456
+//line sql.y:4452
{
yyLOCAL = &Savepoint{Name: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 827:
+ case 826:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4462
+//line sql.y:4458
{
yyLOCAL = &Release{Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 828:
+ case 827:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4467
+//line sql.y:4463
{
yyLOCAL = EmptyType
}
yyVAL.union = yyLOCAL
- case 829:
+ case 828:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4471
+//line sql.y:4467
{
yyLOCAL = JSONType
}
yyVAL.union = yyLOCAL
- case 830:
+ case 829:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4475
+//line sql.y:4471
{
yyLOCAL = TreeType
}
yyVAL.union = yyLOCAL
- case 831:
+ case 830:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4479
+//line sql.y:4475
{
yyLOCAL = TraditionalType
}
yyVAL.union = yyLOCAL
- case 832:
+ case 831:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4483
+//line sql.y:4479
{
yyLOCAL = AnalyzeType
}
yyVAL.union = yyLOCAL
- case 833:
+ case 832:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL VExplainType
+//line sql.y:4484
+ {
+ yyLOCAL = PlanVExplainType
+ }
+ yyVAL.union = yyLOCAL
+ case 833:
+ yyDollar = yyS[yypt-1 : yypt+1]
+ var yyLOCAL VExplainType
//line sql.y:4488
{
yyLOCAL = PlanVExplainType
@@ -16499,7 +16436,7 @@ yydefault:
var yyLOCAL VExplainType
//line sql.y:4492
{
- yyLOCAL = PlanVExplainType
+ yyLOCAL = AllVExplainType
}
yyVAL.union = yyLOCAL
case 835:
@@ -16507,7 +16444,7 @@ yydefault:
var yyLOCAL VExplainType
//line sql.y:4496
{
- yyLOCAL = AllVExplainType
+ yyLOCAL = QueriesVExplainType
}
yyVAL.union = yyLOCAL
case 836:
@@ -16515,7 +16452,7 @@ yydefault:
var yyLOCAL VExplainType
//line sql.y:4500
{
- yyLOCAL = QueriesVExplainType
+ yyLOCAL = TraceVExplainType
}
yyVAL.union = yyLOCAL
case 837:
@@ -16523,17 +16460,15 @@ yydefault:
var yyLOCAL VExplainType
//line sql.y:4504
{
- yyLOCAL = TraceVExplainType
+ yyLOCAL = KeysVExplainType
}
yyVAL.union = yyLOCAL
case 838:
yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL VExplainType
-//line sql.y:4508
+//line sql.y:4510
{
- yyLOCAL = KeysVExplainType
+ yyVAL.str = yyDollar[1].str
}
- yyVAL.union = yyLOCAL
case 839:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4514
@@ -16548,16 +16483,18 @@ yydefault:
}
case 841:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4522
+ var yyLOCAL Statement
+//line sql.y:4524
{
- yyVAL.str = yyDollar[1].str
+ yyLOCAL = yyDollar[1].selStmtUnion()
}
+ yyVAL.union = yyLOCAL
case 842:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
//line sql.y:4528
{
- yyLOCAL = yyDollar[1].selStmtUnion()
+ yyLOCAL = yyDollar[1].statementUnion()
}
yyVAL.union = yyLOCAL
case 843:
@@ -16577,210 +16514,208 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 845:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL Statement
-//line sql.y:4540
- {
- yyLOCAL = yyDollar[1].statementUnion()
- }
- yyVAL.union = yyLOCAL
- case 846:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4545
+//line sql.y:4541
{
yyVAL.str = ""
}
- case 847:
+ case 846:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4549
+//line sql.y:4545
{
yyVAL.str = yyDollar[1].identifierCI.val
}
- case 848:
+ case 847:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4553
+//line sql.y:4549
{
yyVAL.str = encodeSQLString(yyDollar[1].str)
}
- case 849:
+ case 848:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4559
+//line sql.y:4555
{
yyLOCAL = &ExplainTab{Table: yyDollar[3].tableName, Wild: yyDollar[4].str}
}
yyVAL.union = yyLOCAL
- case 850:
+ case 849:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4563
+//line sql.y:4559
{
yyLOCAL = &ExplainStmt{Type: yyDollar[3].explainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()}
}
yyVAL.union = yyLOCAL
- case 851:
+ case 850:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4569
+//line sql.y:4565
{
yyLOCAL = &VExplainStmt{Type: yyDollar[3].vexplainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()}
}
yyVAL.union = yyLOCAL
- case 852:
+ case 851:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4575
+//line sql.y:4571
{
yyLOCAL = &OtherAdmin{}
}
yyVAL.union = yyLOCAL
- case 853:
+ case 852:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4579
+//line sql.y:4575
{
yyLOCAL = &OtherAdmin{}
}
yyVAL.union = yyLOCAL
- case 854:
+ case 853:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4585
+//line sql.y:4581
{
yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()}
}
yyVAL.union = yyLOCAL
- case 855:
+ case 854:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableAndLockTypes
-//line sql.y:4591
+//line sql.y:4587
{
yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 856:
+ case 855:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4595
+//line sql.y:4591
{
yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion())
}
- case 857:
+ case 856:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *TableAndLockType
-//line sql.y:4601
+//line sql.y:4597
{
yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 858:
+ case 857:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4607
+//line sql.y:4603
{
yyLOCAL = Read
}
yyVAL.union = yyLOCAL
- case 859:
+ case 858:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4611
+//line sql.y:4607
{
yyLOCAL = ReadLocal
}
yyVAL.union = yyLOCAL
- case 860:
+ case 859:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4615
+//line sql.y:4611
{
yyLOCAL = Write
}
yyVAL.union = yyLOCAL
- case 861:
+ case 860:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4619
+//line sql.y:4615
{
yyLOCAL = LowPriorityWrite
}
yyVAL.union = yyLOCAL
- case 862:
+ case 861:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4625
+//line sql.y:4621
{
yyLOCAL = &UnlockTables{}
}
yyVAL.union = yyLOCAL
- case 863:
+ case 862:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4631
+//line sql.y:4627
{
yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs).Parsed(), UUID: string(yyDollar[4].str)}
}
yyVAL.union = yyLOCAL
- case 864:
+ case 863:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4637
+//line sql.y:4633
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs}
}
yyVAL.union = yyLOCAL
- case 865:
+ case 864:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4641
+//line sql.y:4637
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 866:
+ case 865:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4645
+//line sql.y:4641
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true}
}
yyVAL.union = yyLOCAL
- case 867:
+ case 866:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4649
+//line sql.y:4645
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()}
}
yyVAL.union = yyLOCAL
- case 868:
+ case 867:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4653
+//line sql.y:4649
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true}
}
yyVAL.union = yyLOCAL
- case 869:
+ case 868:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4657
+//line sql.y:4653
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true}
}
yyVAL.union = yyLOCAL
- case 870:
+ case 869:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4663
+//line sql.y:4659
{
yyVAL.strs = []string{yyDollar[1].str}
}
- case 871:
+ case 870:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4667
+//line sql.y:4663
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str)
}
+ case 871:
+ yyDollar = yyS[yypt-2 : yypt+1]
+//line sql.y:4669
+ {
+ yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
+ }
case 872:
yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4673
@@ -16800,10 +16735,10 @@ yydefault:
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 875:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4685
{
- yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
+ yyVAL.str = string(yyDollar[1].str)
}
case 876:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -16818,22 +16753,22 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 878:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:4697
{
- yyVAL.str = string(yyDollar[1].str)
+ yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str
}
case 879:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:4701
{
- yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str
+ yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 880:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4705
{
- yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
+ yyVAL.str = string(yyDollar[1].str)
}
case 881:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -16848,150 +16783,144 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 883:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4717
- {
- yyVAL.str = string(yyDollar[1].str)
- }
- case 884:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4722
+//line sql.y:4718
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 885:
+ case 884:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4726
+//line sql.y:4722
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 886:
+ case 885:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4730
+//line sql.y:4726
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 887:
+ case 886:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4735
+//line sql.y:4731
{
yyVAL.str = ""
}
- case 888:
+ case 887:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4739
+//line sql.y:4735
{
yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()
}
- case 889:
+ case 888:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4744
+//line sql.y:4740
{
setAllowComments(yylex, true)
}
- case 890:
+ case 889:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4748
+//line sql.y:4744
{
yyVAL.strs = yyDollar[2].strs
setAllowComments(yylex, false)
}
- case 891:
+ case 890:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4754
+//line sql.y:4750
{
yyVAL.strs = nil
}
- case 892:
+ case 891:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4758
+//line sql.y:4754
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
}
- case 893:
+ case 892:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4764
+//line sql.y:4760
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 894:
+ case 893:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:4768
+//line sql.y:4764
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 895:
+ case 894:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:4772
+//line sql.y:4768
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 896:
+ case 895:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4777
+//line sql.y:4773
{
yyVAL.str = ""
}
- case 897:
+ case 896:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4781
+//line sql.y:4777
{
yyVAL.str = SQLNoCacheStr
}
- case 898:
+ case 897:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4785
+//line sql.y:4781
{
yyVAL.str = SQLCacheStr
}
- case 899:
+ case 898:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4790
+//line sql.y:4786
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 900:
+ case 899:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4794
+//line sql.y:4790
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 901:
+ case 900:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4798
+//line sql.y:4794
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 902:
+ case 901:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4804
+//line sql.y:4800
{
yyLOCAL = &PrepareStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Statement: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 903:
+ case 902:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4808
+//line sql.y:4804
{
yyLOCAL = &PrepareStmt{
Name: yyDollar[3].identifierCI,
@@ -17000,81 +16929,87 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 904:
+ case 903:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4818
+//line sql.y:4814
{
yyLOCAL = &ExecuteStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Arguments: yyDollar[4].variablesUnion()}
}
yyVAL.union = yyLOCAL
- case 905:
+ case 904:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:4823
+//line sql.y:4819
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 906:
+ case 905:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:4827
+//line sql.y:4823
{
yyLOCAL = yyDollar[2].variablesUnion()
}
yyVAL.union = yyLOCAL
- case 907:
+ case 906:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4833
+//line sql.y:4829
{
yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI}
}
yyVAL.union = yyLOCAL
- case 908:
+ case 907:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4837
+//line sql.y:4833
{
yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI}
}
yyVAL.union = yyLOCAL
- case 909:
+ case 908:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4842
+//line sql.y:4838
{
yyVAL.strs = nil
}
- case 910:
+ case 909:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4846
+//line sql.y:4842
{
yyVAL.strs = yyDollar[1].strs
}
- case 911:
+ case 910:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4852
+//line sql.y:4848
{
yyVAL.strs = []string{yyDollar[1].str}
}
- case 912:
+ case 911:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4856
+//line sql.y:4852
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
}
+ case 912:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:4858
+ {
+ yyVAL.str = SQLNoCacheStr
+ }
case 913:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4862
{
- yyVAL.str = SQLNoCacheStr
+ yyVAL.str = SQLCacheStr
}
case 914:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4866
{
- yyVAL.str = SQLCacheStr
+ yyVAL.str = DistinctStr
}
case 915:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -17086,511 +17021,505 @@ yydefault:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4874
{
- yyVAL.str = DistinctStr
+ yyVAL.str = HighPriorityStr
}
case 917:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4878
{
- yyVAL.str = HighPriorityStr
+ yyVAL.str = StraightJoinHint
}
case 918:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4882
{
- yyVAL.str = StraightJoinHint
+ yyVAL.str = SQLBufferResultStr
}
case 919:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4886
{
- yyVAL.str = SQLBufferResultStr
+ yyVAL.str = SQLSmallResultStr
}
case 920:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4890
{
- yyVAL.str = SQLSmallResultStr
+ yyVAL.str = SQLBigResultStr
}
case 921:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4894
{
- yyVAL.str = SQLBigResultStr
+ yyVAL.str = SQLCalcFoundRowsStr
}
case 922:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:4898
- {
- yyVAL.str = SQLCalcFoundRowsStr
- }
- case 923:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4902
{
yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway
}
- case 924:
+ case 923:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SelectExprs
-//line sql.y:4908
+//line sql.y:4904
{
yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()}
}
yyVAL.union = yyLOCAL
- case 925:
+ case 924:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4912
+//line sql.y:4908
{
yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion())
}
- case 926:
+ case 925:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4918
+//line sql.y:4914
{
yyLOCAL = &StarExpr{}
}
yyVAL.union = yyLOCAL
- case 927:
+ case 926:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4922
+//line sql.y:4918
{
yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 928:
+ case 927:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4926
+//line sql.y:4922
{
yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 929:
+ case 928:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4930
+//line sql.y:4926
{
yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 930:
+ case 929:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4935
+//line sql.y:4931
{
yyVAL.identifierCI = IdentifierCI{}
}
- case 931:
+ case 930:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4939
+//line sql.y:4935
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 932:
+ case 931:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4943
+//line sql.y:4939
{
yyVAL.identifierCI = yyDollar[2].identifierCI
}
- case 934:
+ case 933:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4950
+//line sql.y:4946
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 935:
+ case 934:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4955
+//line sql.y:4951
{
yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewIdentifierCS("dual")}}}
}
yyVAL.union = yyLOCAL
- case 936:
+ case 935:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4959
+//line sql.y:4955
{
yyLOCAL = yyDollar[1].tableExprsUnion()
}
yyVAL.union = yyLOCAL
- case 937:
+ case 936:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4965
+//line sql.y:4961
{
yyLOCAL = yyDollar[2].tableExprsUnion()
}
yyVAL.union = yyLOCAL
- case 938:
+ case 937:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4971
+//line sql.y:4967
{
yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()}
}
yyVAL.union = yyLOCAL
- case 939:
+ case 938:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4975
+//line sql.y:4971
{
yySLICE := (*TableExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion())
}
- case 942:
+ case 941:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4985
+//line sql.y:4981
{
yyLOCAL = yyDollar[1].aliasedTableNameUnion()
}
yyVAL.union = yyLOCAL
- case 943:
+ case 942:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4989
+//line sql.y:4985
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].identifierCS, Columns: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 944:
+ case 943:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4993
+//line sql.y:4989
{
yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()}
}
yyVAL.union = yyLOCAL
- case 945:
+ case 944:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4997
+//line sql.y:4993
{
yyLOCAL = yyDollar[1].tableExprUnion()
}
yyVAL.union = yyLOCAL
- case 946:
+ case 945:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *DerivedTable
-//line sql.y:5003
+//line sql.y:4999
{
yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 947:
+ case 946:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *DerivedTable
-//line sql.y:5007
+//line sql.y:5003
{
yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[2].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 948:
+ case 947:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *AliasedTableExpr
-//line sql.y:5013
+//line sql.y:5009
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].identifierCS, Hints: yyDollar[3].indexHintsUnion()}
}
yyVAL.union = yyLOCAL
- case 949:
+ case 948:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *AliasedTableExpr
-//line sql.y:5017
+//line sql.y:5013
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].identifierCS, Hints: yyDollar[7].indexHintsUnion()}
}
yyVAL.union = yyLOCAL
- case 950:
+ case 949:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5022
+//line sql.y:5018
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 951:
+ case 950:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5026
+//line sql.y:5022
{
yyLOCAL = yyDollar[2].columnsUnion()
}
yyVAL.union = yyLOCAL
- case 952:
+ case 951:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5031
+//line sql.y:5027
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 953:
+ case 952:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5035
+//line sql.y:5031
{
yyLOCAL = yyDollar[1].columnsUnion()
}
yyVAL.union = yyLOCAL
- case 954:
+ case 953:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5041
+//line sql.y:5037
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 955:
+ case 954:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5045
+//line sql.y:5041
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 956:
+ case 955:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:5051
+//line sql.y:5047
{
yyLOCAL = []*Variable{yyDollar[1].variableUnion()}
}
yyVAL.union = yyLOCAL
- case 957:
+ case 956:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5055
+//line sql.y:5051
{
yySLICE := (*[]*Variable)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].variableUnion())
}
- case 958:
+ case 957:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5061
+//line sql.y:5057
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 959:
+ case 958:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5065
+//line sql.y:5061
{
yyLOCAL = Columns{NewIdentifierCI(string(yyDollar[1].str))}
}
yyVAL.union = yyLOCAL
- case 960:
+ case 959:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5069
+//line sql.y:5065
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 961:
+ case 960:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5073
+//line sql.y:5069
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, NewIdentifierCI(string(yyDollar[3].str)))
}
- case 962:
+ case 961:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Partitions
-//line sql.y:5079
+//line sql.y:5075
{
yyLOCAL = Partitions{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 963:
+ case 962:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5083
+//line sql.y:5079
{
yySLICE := (*Partitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 964:
+ case 963:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5096
+//line sql.y:5092
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 965:
+ case 964:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5100
+//line sql.y:5096
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 966:
+ case 965:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5104
+//line sql.y:5100
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 967:
+ case 966:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5108
+//line sql.y:5104
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()}
}
yyVAL.union = yyLOCAL
- case 968:
+ case 967:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5114
+//line sql.y:5110
{
yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
}
- case 969:
+ case 968:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:5116
+//line sql.y:5112
{
yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()}
}
- case 970:
+ case 969:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5120
+//line sql.y:5116
{
yyVAL.joinCondition = &JoinCondition{}
}
- case 971:
+ case 970:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5122
+//line sql.y:5118
{
yyVAL.joinCondition = yyDollar[1].joinCondition
}
- case 972:
+ case 971:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5126
+//line sql.y:5122
{
yyVAL.joinCondition = &JoinCondition{}
}
- case 973:
+ case 972:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5128
+//line sql.y:5124
{
yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
}
- case 974:
+ case 973:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5131
+//line sql.y:5127
{
yyVAL.empty = struct{}{}
}
- case 975:
+ case 974:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5133
+//line sql.y:5129
{
yyVAL.empty = struct{}{}
}
- case 976:
+ case 975:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5136
+//line sql.y:5132
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 977:
+ case 976:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5140
+//line sql.y:5136
{
yyVAL.identifierCS = yyDollar[1].identifierCS
}
- case 978:
+ case 977:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5144
+//line sql.y:5140
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 980:
+ case 979:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5151
+//line sql.y:5147
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 981:
+ case 980:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5157
+//line sql.y:5153
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 982:
+ case 981:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5161
+//line sql.y:5157
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 983:
+ case 982:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5165
+//line sql.y:5161
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 984:
+ case 983:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5171
+//line sql.y:5167
{
yyLOCAL = StraightJoinType
}
yyVAL.union = yyLOCAL
- case 985:
+ case 984:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5177
+//line sql.y:5173
{
yyLOCAL = LeftJoinType
}
yyVAL.union = yyLOCAL
- case 986:
+ case 985:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5181
+//line sql.y:5177
{
yyLOCAL = LeftJoinType
}
yyVAL.union = yyLOCAL
- case 987:
+ case 986:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5185
+//line sql.y:5181
{
yyLOCAL = RightJoinType
}
yyVAL.union = yyLOCAL
- case 988:
+ case 987:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5189
+//line sql.y:5185
{
yyLOCAL = RightJoinType
}
yyVAL.union = yyLOCAL
- case 989:
+ case 988:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5195
+//line sql.y:5191
{
yyLOCAL = NaturalJoinType
}
yyVAL.union = yyLOCAL
- case 990:
+ case 989:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5199
+//line sql.y:5195
{
if yyDollar[2].joinTypeUnion() == LeftJoinType {
yyLOCAL = NaturalLeftJoinType
@@ -17599,259 +17528,267 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 991:
+ case 990:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5209
+//line sql.y:5205
{
yyVAL.tableName = yyDollar[2].tableName
}
- case 992:
+ case 991:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5213
+//line sql.y:5209
{
yyVAL.tableName = yyDollar[1].tableName
}
- case 993:
+ case 992:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5219
+//line sql.y:5215
{
yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS}
}
- case 994:
+ case 993:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5223
+//line sql.y:5219
{
yyVAL.tableName = TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}
}
- case 995:
+ case 994:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5229
+//line sql.y:5225
{
yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS}
}
- case 996:
+ case 995:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5234
+//line sql.y:5230
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 997:
+ case 996:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5238
+//line sql.y:5234
{
yyLOCAL = yyDollar[1].indexHintsUnion()
}
yyVAL.union = yyLOCAL
- case 998:
+ case 997:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5244
+//line sql.y:5240
{
yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()}
}
yyVAL.union = yyLOCAL
- case 999:
+ case 998:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5248
+//line sql.y:5244
{
yySLICE := (*IndexHints)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion())
}
- case 1000:
+ case 999:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5254
+//line sql.y:5250
{
yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1001:
+ case 1000:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5258
+//line sql.y:5254
{
yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1002:
+ case 1001:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5262
+//line sql.y:5258
{
yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1003:
+ case 1002:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5266
+//line sql.y:5262
{
yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1004:
+ case 1003:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5270
+//line sql.y:5266
{
yyLOCAL = &IndexHint{Type: UseVindexOp, Indexes: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1005:
+ case 1004:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5274
+//line sql.y:5270
{
yyLOCAL = &IndexHint{Type: IgnoreVindexOp, Indexes: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1006:
+ case 1005:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5279
+//line sql.y:5275
{
yyLOCAL = NoForType
}
yyVAL.union = yyLOCAL
- case 1007:
+ case 1006:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5283
+//line sql.y:5279
{
yyLOCAL = JoinForType
}
yyVAL.union = yyLOCAL
- case 1008:
+ case 1007:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5287
+//line sql.y:5283
{
yyLOCAL = OrderByForType
}
yyVAL.union = yyLOCAL
- case 1009:
+ case 1008:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5291
+//line sql.y:5287
{
yyLOCAL = GroupByForType
}
yyVAL.union = yyLOCAL
- case 1010:
+ case 1009:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5297
+//line sql.y:5293
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1011:
+ case 1010:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5301
+//line sql.y:5297
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1012:
+ case 1011:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5308
+//line sql.y:5304
{
yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1013:
+ case 1012:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5312
+//line sql.y:5308
{
yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1014:
+ case 1013:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5316
+//line sql.y:5312
{
yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1015:
+ case 1014:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5320
+//line sql.y:5316
{
yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1016:
+ case 1015:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5324
+//line sql.y:5320
{
yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()}
}
yyVAL.union = yyLOCAL
- case 1017:
+ case 1016:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5328
+//line sql.y:5324
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1018:
+ case 1017:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5332
+//line sql.y:5328
{
yyLOCAL = &AssignmentExpr{Left: yyDollar[1].variableUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1019:
+ case 1018:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5336
+//line sql.y:5332
{
yyLOCAL = &MemberOfExpr{Value: yyDollar[1].exprUnion(), JSONArr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
+ case 1019:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:5338
+ {
+ }
case 1020:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5342
+//line sql.y:5341
{
}
case 1021:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5345
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL Expr
+//line sql.y:5346
{
+ yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp}
}
+ yyVAL.union = yyLOCAL
case 1022:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5350
{
- yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp}
+ yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp}
}
yyVAL.union = yyLOCAL
case 1023:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5354
{
- yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1024:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5358
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()}
}
yyVAL.union = yyLOCAL
case 1025:
@@ -17867,129 +17804,129 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5366
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: All, Right: yyDollar[4].subqueryUnion()}
}
yyVAL.union = yyLOCAL
case 1027:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:5370
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: All, Right: yyDollar[4].subqueryUnion()}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1028:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5374
+//line sql.y:5376
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()}
}
yyVAL.union = yyLOCAL
case 1029:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5380
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()}
}
yyVAL.union = yyLOCAL
case 1030:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:5384
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()}
+ yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1031:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5388
{
- yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()}
+ yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1032:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5392
{
- yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1033:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5396
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1034:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:5400
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1035:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5404
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1036:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5408
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1037:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5412
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1038:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:5416
{
- yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1039:
yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL Expr
-//line sql.y:5420
+//line sql.y:5422
{
- yyLOCAL = yyDollar[1].exprUnion()
}
- yyVAL.union = yyLOCAL
case 1040:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5426
+//line sql.y:5425
{
}
case 1041:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5429
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL Expr
+//line sql.y:5431
{
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()}
}
+ yyVAL.union = yyLOCAL
case 1042:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5435
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1043:
@@ -17997,7 +17934,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5439
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1044:
@@ -18005,7 +17942,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5443
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1045:
@@ -18013,7 +17950,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5447
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1046:
@@ -18021,15 +17958,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5451
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1047:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:5455
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1048:
@@ -18037,15 +17974,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5459
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1049:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5463
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1050:
@@ -18053,7 +17990,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5467
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1051:
@@ -18061,7 +17998,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5471
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1052:
@@ -18069,7 +18006,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5475
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1053:
@@ -18077,7 +18014,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5479
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1054:
@@ -18085,21 +18022,21 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5483
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1055:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:5487
{
- yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1056:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5491
+//line sql.y:5493
{
yyLOCAL = yyDollar[1].exprUnion()
}
@@ -18129,19 +18066,19 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1060:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:5509
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str}
}
yyVAL.union = yyLOCAL
case 1061:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:5513
{
- yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1062:
@@ -18157,15 +18094,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5521
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = yyDollar[1].variableUnion()
}
yyVAL.union = yyLOCAL
case 1064:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
//line sql.y:5525
{
- yyLOCAL = yyDollar[1].variableUnion()
+ yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals?
}
yyVAL.union = yyLOCAL
case 1065:
@@ -18173,7 +18110,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5529
{
- yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals?
+ yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1066:
@@ -18181,7 +18118,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5533
{
- yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
+ yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1067:
@@ -18189,15 +18126,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5537
{
- yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()}
+ yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1068:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:5541
{
- yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()}
+ yyLOCAL = yyDollar[1].subqueryUnion()
}
yyVAL.union = yyLOCAL
case 1069:
@@ -18205,23 +18142,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5545
{
- yyLOCAL = yyDollar[1].subqueryUnion()
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1070:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
//line sql.y:5549
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()}
}
yyVAL.union = yyLOCAL
case 1071:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
//line sql.y:5553
{
- yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()}
+ yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNamesUnion(), Expr: yyDollar[5].exprUnion(), Option: yyDollar[6].matchExprOptionUnion()}
}
yyVAL.union = yyLOCAL
case 1072:
@@ -18229,37 +18166,29 @@ yydefault:
var yyLOCAL Expr
//line sql.y:5557
{
- yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNamesUnion(), Expr: yyDollar[5].exprUnion(), Option: yyDollar[6].matchExprOptionUnion()}
+ yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()}
}
yyVAL.union = yyLOCAL
case 1073:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5561
{
- yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()}
+ yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1074:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5565
- {
- yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
- }
- yyVAL.union = yyLOCAL
- case 1075:
- yyDollar = yyS[yypt-6 : yypt+1]
- var yyLOCAL Expr
-//line sql.y:5569
{
yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str}
}
yyVAL.union = yyLOCAL
- case 1076:
+ case 1075:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5573
+//line sql.y:5569
{
// From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary
// To convert a string expression to a binary string, these constructs are equivalent:
@@ -18268,83 +18197,91 @@ yydefault:
yyLOCAL = &ConvertExpr{Expr: yyDollar[2].exprUnion(), Type: &ConvertType{Type: yyDollar[1].str}}
}
yyVAL.union = yyLOCAL
- case 1077:
+ case 1076:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5581
+//line sql.y:5577
{
yyLOCAL = &Default{ColName: yyDollar[2].str}
}
yyVAL.union = yyLOCAL
- case 1078:
+ case 1077:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5585
+//line sql.y:5581
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAddLeft, Date: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion(), Interval: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1079:
+ case 1078:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5589
+//line sql.y:5585
{
yyLOCAL = &IntervalFuncExpr{Expr: yyDollar[3].exprUnion(), Exprs: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1080:
+ case 1079:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5593
+//line sql.y:5589
{
yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}}
}
yyVAL.union = yyLOCAL
- case 1081:
+ case 1080:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5597
+//line sql.y:5593
{
yyLOCAL = &JSONUnquoteExpr{JSONValue: &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}}}
}
yyVAL.union = yyLOCAL
- case 1082:
+ case 1081:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5603
+//line sql.y:5599
{
yyLOCAL = yyDollar[1].colNamesUnion()
}
yyVAL.union = yyLOCAL
- case 1083:
+ case 1082:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5607
+//line sql.y:5603
{
yyLOCAL = yyDollar[2].colNamesUnion()
}
yyVAL.union = yyLOCAL
- case 1084:
+ case 1083:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5613
+//line sql.y:5609
{
yyLOCAL = []*ColName{yyDollar[1].colNameUnion()}
}
yyVAL.union = yyLOCAL
- case 1085:
+ case 1084:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5617
+//line sql.y:5613
{
yySLICE := (*[]*ColName)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].colNameUnion())
}
+ case 1085:
+ yyDollar = yyS[yypt-1 : yypt+1]
+ var yyLOCAL TrimType
+//line sql.y:5619
+ {
+ yyLOCAL = BothTrimType
+ }
+ yyVAL.union = yyLOCAL
case 1086:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TrimType
//line sql.y:5623
{
- yyLOCAL = BothTrimType
+ yyLOCAL = LeadingTrimType
}
yyVAL.union = yyLOCAL
case 1087:
@@ -18352,15 +18289,15 @@ yydefault:
var yyLOCAL TrimType
//line sql.y:5627
{
- yyLOCAL = LeadingTrimType
+ yyLOCAL = TrailingTrimType
}
yyVAL.union = yyLOCAL
case 1088:
yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL TrimType
-//line sql.y:5631
+ var yyLOCAL FrameUnitType
+//line sql.y:5633
{
- yyLOCAL = TrailingTrimType
+ yyLOCAL = FrameRowsType
}
yyVAL.union = yyLOCAL
case 1089:
@@ -18368,15 +18305,15 @@ yydefault:
var yyLOCAL FrameUnitType
//line sql.y:5637
{
- yyLOCAL = FrameRowsType
+ yyLOCAL = FrameRangeType
}
yyVAL.union = yyLOCAL
case 1090:
yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL FrameUnitType
-//line sql.y:5641
+ var yyLOCAL ArgumentLessWindowExprType
+//line sql.y:5644
{
- yyLOCAL = FrameRangeType
+ yyLOCAL = CumeDistExprType
}
yyVAL.union = yyLOCAL
case 1091:
@@ -18384,7 +18321,7 @@ yydefault:
var yyLOCAL ArgumentLessWindowExprType
//line sql.y:5648
{
- yyLOCAL = CumeDistExprType
+ yyLOCAL = DenseRankExprType
}
yyVAL.union = yyLOCAL
case 1092:
@@ -18392,7 +18329,7 @@ yydefault:
var yyLOCAL ArgumentLessWindowExprType
//line sql.y:5652
{
- yyLOCAL = DenseRankExprType
+ yyLOCAL = PercentRankExprType
}
yyVAL.union = yyLOCAL
case 1093:
@@ -18400,7 +18337,7 @@ yydefault:
var yyLOCAL ArgumentLessWindowExprType
//line sql.y:5656
{
- yyLOCAL = PercentRankExprType
+ yyLOCAL = RankExprType
}
yyVAL.union = yyLOCAL
case 1094:
@@ -18408,15 +18345,15 @@ yydefault:
var yyLOCAL ArgumentLessWindowExprType
//line sql.y:5660
{
- yyLOCAL = RankExprType
+ yyLOCAL = RowNumberExprType
}
yyVAL.union = yyLOCAL
case 1095:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5664
+ yyDollar = yyS[yypt-2 : yypt+1]
+ var yyLOCAL *FramePoint
+//line sql.y:5666
{
- yyLOCAL = RowNumberExprType
+ yyLOCAL = &FramePoint{Type: CurrentRowType}
}
yyVAL.union = yyLOCAL
case 1096:
@@ -18424,7 +18361,7 @@ yydefault:
var yyLOCAL *FramePoint
//line sql.y:5670
{
- yyLOCAL = &FramePoint{Type: CurrentRowType}
+ yyLOCAL = &FramePoint{Type: UnboundedPrecedingType}
}
yyVAL.union = yyLOCAL
case 1097:
@@ -18432,342 +18369,342 @@ yydefault:
var yyLOCAL *FramePoint
//line sql.y:5674
{
- yyLOCAL = &FramePoint{Type: UnboundedPrecedingType}
+ yyLOCAL = &FramePoint{Type: UnboundedFollowingType}
}
yyVAL.union = yyLOCAL
case 1098:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
//line sql.y:5678
- {
- yyLOCAL = &FramePoint{Type: UnboundedFollowingType}
- }
- yyVAL.union = yyLOCAL
- case 1099:
- yyDollar = yyS[yypt-2 : yypt+1]
- var yyLOCAL *FramePoint
-//line sql.y:5682
{
yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1100:
+ case 1099:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5686
+//line sql.y:5682
{
yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1101:
+ case 1100:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5690
+//line sql.y:5686
{
yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1102:
+ case 1101:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5694
+//line sql.y:5690
{
yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1103:
+ case 1102:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5699
+//line sql.y:5695
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1104:
+ case 1103:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5703
+//line sql.y:5699
{
yyLOCAL = yyDollar[1].frameClauseUnion()
}
yyVAL.union = yyLOCAL
- case 1105:
+ case 1104:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5709
+//line sql.y:5705
{
yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[2].framePointUnion()}
}
yyVAL.union = yyLOCAL
- case 1106:
+ case 1105:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5713
+//line sql.y:5709
{
yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[3].framePointUnion(), End: yyDollar[5].framePointUnion()}
}
yyVAL.union = yyLOCAL
- case 1107:
+ case 1106:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5718
+//line sql.y:5714
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1108:
+ case 1107:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5722
+//line sql.y:5718
{
yyLOCAL = yyDollar[3].exprsUnion()
}
yyVAL.union = yyLOCAL
- case 1109:
+ case 1108:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5727
+//line sql.y:5723
{
yyVAL.identifierCI = IdentifierCI{}
}
- case 1110:
+ case 1109:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5731
+//line sql.y:5727
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 1111:
+ case 1110:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *WindowSpecification
-//line sql.y:5737
+//line sql.y:5733
{
yyLOCAL = &WindowSpecification{Name: yyDollar[1].identifierCI, PartitionClause: yyDollar[2].exprsUnion(), OrderClause: yyDollar[3].orderByUnion(), FrameClause: yyDollar[4].frameClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1112:
+ case 1111:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5743
+//line sql.y:5739
{
yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecificationUnion()}
}
yyVAL.union = yyLOCAL
- case 1113:
+ case 1112:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5747
+//line sql.y:5743
{
yyLOCAL = &OverClause{WindowName: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1114:
+ case 1113:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5753
+//line sql.y:5749
{
yyLOCAL = yyDollar[1].overClauseUnion()
}
yyVAL.union = yyLOCAL
- case 1115:
+ case 1114:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5757
+//line sql.y:5753
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1116:
+ case 1115:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *NullTreatmentClause
-//line sql.y:5762
+//line sql.y:5758
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1118:
+ case 1117:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *NullTreatmentClause
-//line sql.y:5769
+//line sql.y:5765
{
yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1119:
+ case 1118:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL NullTreatmentType
-//line sql.y:5775
+//line sql.y:5771
{
yyLOCAL = RespectNullsType
}
yyVAL.union = yyLOCAL
- case 1120:
+ case 1119:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL NullTreatmentType
-//line sql.y:5779
+//line sql.y:5775
{
yyLOCAL = IgnoreNullsType
}
yyVAL.union = yyLOCAL
- case 1121:
+ case 1120:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FirstOrLastValueExprType
-//line sql.y:5785
+//line sql.y:5781
{
yyLOCAL = FirstValueExprType
}
yyVAL.union = yyLOCAL
- case 1122:
+ case 1121:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FirstOrLastValueExprType
-//line sql.y:5789
+//line sql.y:5785
{
yyLOCAL = LastValueExprType
}
yyVAL.union = yyLOCAL
- case 1123:
+ case 1122:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL FromFirstLastType
-//line sql.y:5795
+//line sql.y:5791
{
yyLOCAL = FromFirstType
}
yyVAL.union = yyLOCAL
- case 1124:
+ case 1123:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL FromFirstLastType
-//line sql.y:5799
+//line sql.y:5795
{
yyLOCAL = FromLastType
}
yyVAL.union = yyLOCAL
- case 1125:
+ case 1124:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *FromFirstLastClause
-//line sql.y:5804
+//line sql.y:5800
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1127:
+ case 1126:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *FromFirstLastClause
-//line sql.y:5811
+//line sql.y:5807
{
yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1128:
+ case 1127:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LagLeadExprType
-//line sql.y:5817
+//line sql.y:5813
{
yyLOCAL = LagExprType
}
yyVAL.union = yyLOCAL
- case 1129:
+ case 1128:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LagLeadExprType
-//line sql.y:5821
+//line sql.y:5817
{
yyLOCAL = LeadExprType
}
yyVAL.union = yyLOCAL
- case 1130:
+ case 1129:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *WindowDefinition
-//line sql.y:5827
+//line sql.y:5823
{
yyLOCAL = &WindowDefinition{Name: yyDollar[1].identifierCI, WindowSpec: yyDollar[4].windowSpecificationUnion()}
}
yyVAL.union = yyLOCAL
- case 1131:
+ case 1130:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL WindowDefinitions
-//line sql.y:5833
+//line sql.y:5829
{
yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 1132:
+ case 1131:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5837
+//line sql.y:5833
{
yySLICE := (*WindowDefinitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].windowDefinitionUnion())
}
- case 1133:
+ case 1132:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5843
+//line sql.y:5839
{
yyVAL.str = ""
}
- case 1134:
+ case 1133:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5847
+//line sql.y:5843
{
yyVAL.str = string(yyDollar[2].identifierCI.String())
}
- case 1135:
+ case 1134:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL BoolVal
-//line sql.y:5853
+//line sql.y:5849
{
yyLOCAL = BoolVal(true)
}
yyVAL.union = yyLOCAL
- case 1136:
+ case 1135:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL BoolVal
-//line sql.y:5857
+//line sql.y:5853
{
yyLOCAL = BoolVal(false)
}
yyVAL.union = yyLOCAL
- case 1137:
+ case 1136:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5864
+//line sql.y:5860
{
yyLOCAL = IsTrueOp
}
yyVAL.union = yyLOCAL
- case 1138:
+ case 1137:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5868
+//line sql.y:5864
{
yyLOCAL = IsNotTrueOp
}
yyVAL.union = yyLOCAL
- case 1139:
+ case 1138:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5872
+//line sql.y:5868
{
yyLOCAL = IsFalseOp
}
yyVAL.union = yyLOCAL
- case 1140:
+ case 1139:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5876
+//line sql.y:5872
{
yyLOCAL = IsNotFalseOp
}
yyVAL.union = yyLOCAL
+ case 1140:
+ yyDollar = yyS[yypt-1 : yypt+1]
+ var yyLOCAL ComparisonExprOperator
+//line sql.y:5878
+ {
+ yyLOCAL = yyDollar[1].comparisonExprOperatorUnion()
+ }
+ yyVAL.union = yyLOCAL
case 1141:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
//line sql.y:5882
{
- yyLOCAL = yyDollar[1].comparisonExprOperatorUnion()
+ yyLOCAL = NullSafeEqualOp
}
yyVAL.union = yyLOCAL
case 1142:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5886
+//line sql.y:5888
{
- yyLOCAL = NullSafeEqualOp
+ yyLOCAL = EqualOp
}
yyVAL.union = yyLOCAL
case 1143:
@@ -18775,7 +18712,7 @@ yydefault:
var yyLOCAL ComparisonExprOperator
//line sql.y:5892
{
- yyLOCAL = EqualOp
+ yyLOCAL = LessThanOp
}
yyVAL.union = yyLOCAL
case 1144:
@@ -18783,7 +18720,7 @@ yydefault:
var yyLOCAL ComparisonExprOperator
//line sql.y:5896
{
- yyLOCAL = LessThanOp
+ yyLOCAL = GreaterThanOp
}
yyVAL.union = yyLOCAL
case 1145:
@@ -18791,7 +18728,7 @@ yydefault:
var yyLOCAL ComparisonExprOperator
//line sql.y:5900
{
- yyLOCAL = GreaterThanOp
+ yyLOCAL = LessEqualOp
}
yyVAL.union = yyLOCAL
case 1146:
@@ -18799,7 +18736,7 @@ yydefault:
var yyLOCAL ComparisonExprOperator
//line sql.y:5904
{
- yyLOCAL = LessEqualOp
+ yyLOCAL = GreaterEqualOp
}
yyVAL.union = yyLOCAL
case 1147:
@@ -18807,15 +18744,15 @@ yydefault:
var yyLOCAL ComparisonExprOperator
//line sql.y:5908
{
- yyLOCAL = GreaterEqualOp
+ yyLOCAL = NotEqualOp
}
yyVAL.union = yyLOCAL
case 1148:
yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL ComparisonExprOperator
-//line sql.y:5912
+ var yyLOCAL ColTuple
+//line sql.y:5914
{
- yyLOCAL = NotEqualOp
+ yyLOCAL = yyDollar[1].valTupleUnion()
}
yyVAL.union = yyLOCAL
case 1149:
@@ -18823,79 +18760,79 @@ yydefault:
var yyLOCAL ColTuple
//line sql.y:5918
{
- yyLOCAL = yyDollar[1].valTupleUnion()
+ yyLOCAL = yyDollar[1].subqueryUnion()
}
yyVAL.union = yyLOCAL
case 1150:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColTuple
//line sql.y:5922
- {
- yyLOCAL = yyDollar[1].subqueryUnion()
- }
- yyVAL.union = yyLOCAL
- case 1151:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL ColTuple
-//line sql.y:5926
{
yyLOCAL = ListArg(yyDollar[1].str[2:])
markBindVariable(yylex, yyDollar[1].str[2:])
}
yyVAL.union = yyLOCAL
- case 1152:
+ case 1151:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Subquery
-//line sql.y:5933
+//line sql.y:5929
{
yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1153:
+ case 1152:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5939
+//line sql.y:5935
{
yyLOCAL = Exprs{yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1154:
+ case 1153:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5943
+//line sql.y:5939
{
yySLICE := (*Exprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].exprUnion())
}
- case 1155:
+ case 1154:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5953
+//line sql.y:5949
{
yyLOCAL = &FuncExpr{Name: yyDollar[1].identifierCI, Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1156:
+ case 1155:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5957
+//line sql.y:5953
{
yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCI, Exprs: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
+ case 1156:
+ yyDollar = yyS[yypt-4 : yypt+1]
+ var yyLOCAL Expr
+//line sql.y:5963
+ {
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprsUnion()}
+ }
+ yyVAL.union = yyLOCAL
case 1157:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5967
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprsUnion()}
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1158:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:5971
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprsUnion()}
+ yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1159:
@@ -18907,83 +18844,83 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1160:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5979
{
- yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
+ yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1161:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:5983
{
- yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
+ yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1162:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:5987
{
- yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
+ yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1163:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:5991
{
- yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
+ yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1164:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:5995
{
- yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()}
+ yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()}
}
yyVAL.union = yyLOCAL
case 1165:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
//line sql.y:5999
{
- yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()}
+ yyLOCAL = &InsertExpr{Str: yyDollar[3].exprUnion(), Pos: yyDollar[5].exprUnion(), Len: yyDollar[7].exprUnion(), NewStr: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1166:
- yyDollar = yyS[yypt-10 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
//line sql.y:6003
{
- yyLOCAL = &InsertExpr{Str: yyDollar[3].exprUnion(), Pos: yyDollar[5].exprUnion(), Len: yyDollar[7].exprUnion(), NewStr: yyDollar[9].exprUnion()}
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 1167:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6007
+//line sql.y:6014
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str)}
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")}
}
yyVAL.union = yyLOCAL
case 1168:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:6018
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1169:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6022
+//line sql.y:6024
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")}
}
yyVAL.union = yyLOCAL
case 1170:
@@ -18991,7 +18928,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6028
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")}
+ yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")}
}
yyVAL.union = yyLOCAL
case 1171:
@@ -18999,39 +18936,39 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6032
{
- yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")}
+ yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
case 1172:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6036
+//line sql.y:6037
{
- yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integerUnion()}
+ yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
case 1173:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6041
+//line sql.y:6042
{
- yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integerUnion()}
+ yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
case 1174:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:6046
{
- yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integerUnion()}
+ yyLOCAL = &CountStar{OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1175:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6050
{
- yyLOCAL = &CountStar{OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1176:
@@ -19039,7 +18976,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6054
{
- yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1177:
@@ -19047,7 +18984,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6058
{
- yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1178:
@@ -19055,7 +18992,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6062
{
- yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1179:
@@ -19063,15 +19000,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6066
{
- yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1180:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:6070
{
- yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1181:
@@ -19079,7 +19016,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6074
{
- yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1182:
@@ -19087,7 +19024,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6078
{
- yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1183:
@@ -19095,7 +19032,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6082
{
- yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &Std{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1184:
@@ -19103,7 +19040,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6086
{
- yyLOCAL = &Std{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1185:
@@ -19111,7 +19048,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6090
{
- yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1186:
@@ -19119,7 +19056,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6094
{
- yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1187:
@@ -19127,7 +19064,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6098
{
- yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1188:
@@ -19135,7 +19072,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6102
{
- yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1189:
@@ -19143,31 +19080,31 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6106
{
- yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1190:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6110
{
- yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].exprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()}
}
yyVAL.union = yyLOCAL
case 1191:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6114
{
- yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].exprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()}
+ yyLOCAL = &AnyValue{Arg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1192:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6118
{
- yyLOCAL = &AnyValue{Arg: yyDollar[3].exprUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1193:
@@ -19175,31 +19112,31 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6122
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
+ yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalTypeUnion(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1194:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6126
{
- yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalTypeUnion(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
+ yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1195:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:6130
{
- yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()}
+ yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1196:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6134
{
- yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()}
+ yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1197:
@@ -19207,7 +19144,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6138
{
- yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1198:
@@ -19215,31 +19152,31 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6142
{
- yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1199:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:6146
{
- yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONArrayAgg{Expr: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1200:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
//line sql.y:6150
{
- yyLOCAL = &JSONArrayAgg{Expr: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &JSONObjectAgg{Key: yyDollar[3].exprUnion(), Value: yyDollar[5].exprUnion(), OverClause: yyDollar[7].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1201:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6154
{
- yyLOCAL = &JSONObjectAgg{Key: yyDollar[3].exprUnion(), Value: yyDollar[5].exprUnion(), OverClause: yyDollar[7].overClauseUnion()}
+ yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1202:
@@ -19247,23 +19184,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6158
{
- yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].exprUnion()}
+ yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1203:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
//line sql.y:6162
{
- yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].exprUnion()}
+ yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1204:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6166
{
- yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()}
+ yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1205:
@@ -19271,15 +19208,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6170
{
- yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()}
+ yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1206:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6174
{
- yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion()}
+ yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion(), Charset: yyDollar[5].str}
}
yyVAL.union = yyLOCAL
case 1207:
@@ -19287,7 +19224,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6178
{
- yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion(), Charset: yyDollar[5].str}
+ yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1208:
@@ -19295,23 +19232,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6182
{
- yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()}
+ yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1209:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6186
{
- yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
+ yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion(), Pos: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1210:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6190
{
- yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion(), Pos: yyDollar[7].exprUnion()}
+ yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1211:
@@ -19319,15 +19256,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6194
{
- yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
+ yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1212:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6198
{
- yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
+ yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1213:
@@ -19335,31 +19272,31 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6202
{
- yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()}
+ yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1214:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
//line sql.y:6206
{
- yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()}
+ yyLOCAL = &LockingFunc{Type: ReleaseAllLocks}
}
yyVAL.union = yyLOCAL
case 1215:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6210
{
- yyLOCAL = &LockingFunc{Type: ReleaseAllLocks}
+ yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1216:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6214
{
- yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1217:
@@ -19367,15 +19304,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6218
{
- yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
+ yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1218:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6222
{
- yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
+ yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1219:
@@ -19383,39 +19320,39 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6226
{
- yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()}
+ yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1220:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6230
{
- yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1221:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6234
{
- yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1222:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6238
{
- yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1223:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6242
{
- yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1224:
@@ -19423,7 +19360,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6246
{
- yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1225:
@@ -19431,7 +19368,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6250
{
- yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1226:
@@ -19439,7 +19376,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6254
{
- yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1227:
@@ -19447,7 +19384,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6258
{
- yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1228:
@@ -19455,39 +19392,39 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6262
{
- yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1229:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6266
{
- yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1230:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6270
{
- yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1231:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6274
{
- yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1232:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6278
{
- yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1233:
@@ -19495,7 +19432,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6282
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1234:
@@ -19503,39 +19440,39 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6286
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1235:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6290
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1236:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6294
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1237:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6298
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1238:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6302
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
+ yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1239:
@@ -19543,423 +19480,423 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6306
{
- yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1240:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6310
{
- yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1241:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6314
{
- yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1242:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6318
{
- yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion()}
+ yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1243:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6322
{
- yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1244:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6326
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1245:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6330
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1246:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6334
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1247:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6338
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1248:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6342
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1249:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6346
{
- yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1250:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6350
{
- yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1251:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6354
{
- yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1252:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6358
{
- yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1253:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6362
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1254:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6366
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1255:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6370
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1256:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6374
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1257:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6378
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1258:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6382
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1259:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6386
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1260:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6390
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1261:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6394
{
- yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1262:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6398
{
- yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1263:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6402
{
- yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1264:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6406
{
- yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1265:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6410
{
- yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1266:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6414
{
- yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1267:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6418
{
- yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1268:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6422
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1269:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6426
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1270:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6430
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1271:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6434
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1272:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6438
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1273:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6442
{
- yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1274:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6446
{
- yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1275:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6450
{
- yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1276:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6454
{
- yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1277:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6458
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1278:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6462
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1279:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6466
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1280:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6470
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1281:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6474
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1282:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6478
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1283:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6482
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1284:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6486
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1285:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6490
{
- yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1286:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6494
{
- yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1287:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6498
{
- yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1288:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6502
{
- yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1289:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6506
{
- yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1290:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6510
{
- yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1291:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6514
{
- yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
+ yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1292:
@@ -19967,7 +19904,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6518
{
- yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].exprUnion()}
+ yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1293:
@@ -19975,63 +19912,63 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6522
{
- yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].exprUnion()}
+ yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1294:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6526
{
- yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].exprUnion()}
+ yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1295:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6530
{
- yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
+ yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1296:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6534
{
- yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1297:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6538
{
- yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1298:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6542
{
- yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].exprUnion(), Latitude: yyDollar[5].exprUnion(), MaxLength: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1299:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6546
{
- yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].exprUnion(), Latitude: yyDollar[5].exprUnion(), MaxLength: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].exprUnion(), MaxLength: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1300:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6550
{
- yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].exprUnion(), MaxLength: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1301:
@@ -20039,71 +19976,71 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6554
{
- yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1302:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6558
{
- yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].exprUnion(), SridOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1303:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6562
{
- yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].exprUnion(), SridOpt: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1304:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6566
{
- yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1305:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6570
{
- yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion(), Srid: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1306:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6574
{
- yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion(), Srid: yyDollar[7].exprUnion()}
+ yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1307:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6578
{
- yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion()}
+ yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1308:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6582
{
- yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion()}
+ yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion(), Bitmask: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1309:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6586
{
- yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion(), Bitmask: yyDollar[7].exprUnion()}
+ yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1310:
@@ -20111,47 +20048,47 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6590
{
- yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1311:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6594
{
- yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]}
}
yyVAL.union = yyLOCAL
case 1312:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6598
{
- yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]}
+ yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1313:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6602
{
- yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()}
+ yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1314:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6606
{
- yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
+ yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1315:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6610
{
- yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1316:
@@ -20159,39 +20096,39 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6614
{
- yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
+ yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1317:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6618
{
- yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()}
+ yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1318:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
//line sql.y:6622
{
- yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()}
+ yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]}
}
yyVAL.union = yyLOCAL
case 1319:
- yyDollar = yyS[yypt-10 : yypt+1]
+ yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
//line sql.y:6626
{
- yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]}
+ yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1320:
- yyDollar = yyS[yypt-7 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6630
{
- yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()}
+ yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
case 1321:
@@ -20199,23 +20136,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6634
{
- yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
+ yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
case 1322:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
//line sql.y:6638
{
- yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
+ yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
case 1323:
- yyDollar = yyS[yypt-9 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6642
{
- yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
+ yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1324:
@@ -20223,7 +20160,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6646
{
- yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1325:
@@ -20231,7 +20168,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6650
{
- yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1326:
@@ -20239,15 +20176,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6654
{
- yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1327:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6658
{
- yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
+ yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1328:
@@ -20255,7 +20192,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6662
{
- yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
+ yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1329:
@@ -20263,7 +20200,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6666
{
- yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1330:
@@ -20271,7 +20208,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6670
{
- yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1331:
@@ -20279,7 +20216,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6674
{
- yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1332:
@@ -20287,7 +20224,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6678
{
- yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
case 1333:
@@ -20295,7 +20232,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6682
{
- yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
+ yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1334:
@@ -20303,7 +20240,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6686
{
- yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
+ yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1335:
@@ -20311,7 +20248,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6690
{
- yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
+ yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1336:
@@ -20319,15 +20256,15 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6694
{
- yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
+ yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1337:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6698
{
- yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
+ yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1338:
@@ -20335,7 +20272,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6702
{
- yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()}
+ yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1339:
@@ -20343,7 +20280,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6706
{
- yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprsUnion()}
+ yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1340:
@@ -20351,7 +20288,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6710
{
- yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprsUnion()}
+ yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1341:
@@ -20359,7 +20296,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6714
{
- yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprsUnion()}
+ yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1342:
@@ -20367,87 +20304,87 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6718
{
- yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprsUnion()}
+ yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
case 1343:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6722
{
- yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprsUnion()}
+ yyLOCAL = &PointExpr{XCordinate: yyDollar[3].exprUnion(), YCordinate: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
case 1344:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
//line sql.y:6726
{
- yyLOCAL = &PointExpr{XCordinate: yyDollar[3].exprUnion(), YCordinate: yyDollar[5].exprUnion()}
+ yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1345:
- yyDollar = yyS[yypt-4 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6730
{
- yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()}
+ yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1346:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
//line sql.y:6734
{
- yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1347:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
//line sql.y:6738
{
- yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
+ yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1348:
- yyDollar = yyS[yypt-9 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6742
{
- yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
+ yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1349:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
//line sql.y:6746
{
- yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
+ yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
}
yyVAL.union = yyLOCAL
case 1350:
- yyDollar = yyS[yypt-9 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6750
{
- yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1351:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6754
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
}
yyVAL.union = yyLOCAL
case 1352:
- yyDollar = yyS[yypt-6 : yypt+1]
+ yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
//line sql.y:6758
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1353:
@@ -20455,7 +20392,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6762
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1354:
@@ -20463,23 +20400,23 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6766
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
case 1355:
- yyDollar = yyS[yypt-8 : yypt+1]
+ yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
//line sql.y:6770
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
+ yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
}
yyVAL.union = yyLOCAL
- case 1356:
- yyDollar = yyS[yypt-6 : yypt+1]
+ case 1360:
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6774
+//line sql.y:6780
{
- yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
+ yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
case 1361:
@@ -20487,7 +20424,7 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6784
{
- yyLOCAL = yyDollar[1].exprUnion()
+ yyLOCAL = NewIntLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
case 1362:
@@ -20495,290 +20432,290 @@ yydefault:
var yyLOCAL Expr
//line sql.y:6788
{
- yyLOCAL = NewIntLiteral(yyDollar[1].str)
+ yyLOCAL = yyDollar[1].variableUnion()
}
yyVAL.union = yyLOCAL
case 1363:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
//line sql.y:6792
- {
- yyLOCAL = yyDollar[1].variableUnion()
- }
- yyVAL.union = yyLOCAL
- case 1364:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL Expr
-//line sql.y:6796
{
yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
}
yyVAL.union = yyLOCAL
- case 1365:
+ case 1364:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6801
+//line sql.y:6797
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1366:
+ case 1365:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6805
+//line sql.y:6801
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1367:
+ case 1366:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6811
+//line sql.y:6807
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1368:
+ case 1367:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6815
+//line sql.y:6811
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1369:
+ case 1368:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6819
+//line sql.y:6815
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1370:
+ case 1369:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6823
+//line sql.y:6819
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1371:
+ case 1370:
yyDollar = yyS[yypt-14 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6827
+//line sql.y:6823
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1372:
+ case 1371:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6832
+//line sql.y:6828
{
yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1373:
+ case 1372:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6836
+//line sql.y:6832
{
yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), MatchType: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1374:
+ case 1373:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6840
+//line sql.y:6836
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1375:
+ case 1374:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6844
+//line sql.y:6840
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1376:
+ case 1375:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6848
+//line sql.y:6844
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1377:
+ case 1376:
yyDollar = yyS[yypt-14 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6852
+//line sql.y:6848
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1378:
+ case 1377:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6857
+//line sql.y:6853
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1379:
+ case 1378:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6861
+//line sql.y:6857
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1380:
+ case 1379:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6865
+//line sql.y:6861
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1381:
+ case 1380:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6869
+//line sql.y:6865
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), MatchType: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1382:
+ case 1381:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6876
+//line sql.y:6872
{
yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1383:
+ case 1382:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6880
+//line sql.y:6876
{
yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion(), NewXML: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1384:
+ case 1383:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6886
+//line sql.y:6882
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatBytesType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1385:
+ case 1384:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6890
+//line sql.y:6886
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatPicoTimeType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1386:
+ case 1385:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6894
+//line sql.y:6890
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsCurrentThreadIDType}
}
yyVAL.union = yyLOCAL
- case 1387:
+ case 1386:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6898
+//line sql.y:6894
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsThreadIDType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1388:
+ case 1387:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6904
+//line sql.y:6900
{
yyLOCAL = >IDFuncExpr{Type: GTIDSubsetType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1389:
+ case 1388:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6908
+//line sql.y:6904
{
yyLOCAL = >IDFuncExpr{Type: GTIDSubtractType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1390:
+ case 1389:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6912
+//line sql.y:6908
{
yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1391:
+ case 1390:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6916
+//line sql.y:6912
{
yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1392:
+ case 1391:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6920
+//line sql.y:6916
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1393:
+ case 1392:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6924
+//line sql.y:6920
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1394:
+ case 1393:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6928
+//line sql.y:6924
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion(), Channel: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1395:
+ case 1394:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:6933
+//line sql.y:6929
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1396:
+ case 1395:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:6937
+//line sql.y:6933
{
yyLOCAL = yyDollar[2].convertTypeUnion()
}
yyVAL.union = yyLOCAL
+ case 1396:
+ yyDollar = yyS[yypt-1 : yypt+1]
+ var yyLOCAL IntervalType
+//line sql.y:6939
+ {
+ yyLOCAL = IntervalDayHour
+ }
+ yyVAL.union = yyLOCAL
case 1397:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
//line sql.y:6943
{
- yyLOCAL = IntervalDayHour
+ yyLOCAL = IntervalDayMicrosecond
}
yyVAL.union = yyLOCAL
case 1398:
@@ -20786,7 +20723,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6947
{
- yyLOCAL = IntervalDayMicrosecond
+ yyLOCAL = IntervalDayMinute
}
yyVAL.union = yyLOCAL
case 1399:
@@ -20794,7 +20731,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6951
{
- yyLOCAL = IntervalDayMinute
+ yyLOCAL = IntervalDaySecond
}
yyVAL.union = yyLOCAL
case 1400:
@@ -20802,7 +20739,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6955
{
- yyLOCAL = IntervalDaySecond
+ yyLOCAL = IntervalHourMicrosecond
}
yyVAL.union = yyLOCAL
case 1401:
@@ -20810,7 +20747,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6959
{
- yyLOCAL = IntervalHourMicrosecond
+ yyLOCAL = IntervalHourMinute
}
yyVAL.union = yyLOCAL
case 1402:
@@ -20818,7 +20755,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6963
{
- yyLOCAL = IntervalHourMinute
+ yyLOCAL = IntervalHourSecond
}
yyVAL.union = yyLOCAL
case 1403:
@@ -20826,7 +20763,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6967
{
- yyLOCAL = IntervalHourSecond
+ yyLOCAL = IntervalMinuteMicrosecond
}
yyVAL.union = yyLOCAL
case 1404:
@@ -20834,7 +20771,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6971
{
- yyLOCAL = IntervalMinuteMicrosecond
+ yyLOCAL = IntervalMinuteSecond
}
yyVAL.union = yyLOCAL
case 1405:
@@ -20842,7 +20779,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6975
{
- yyLOCAL = IntervalMinuteSecond
+ yyLOCAL = IntervalSecondMicrosecond
}
yyVAL.union = yyLOCAL
case 1406:
@@ -20850,7 +20787,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6979
{
- yyLOCAL = IntervalSecondMicrosecond
+ yyLOCAL = IntervalYearMonth
}
yyVAL.union = yyLOCAL
case 1407:
@@ -20858,7 +20795,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6983
{
- yyLOCAL = IntervalYearMonth
+ yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
case 1408:
@@ -20866,7 +20803,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6987
{
- yyLOCAL = IntervalDay
+ yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
case 1409:
@@ -20874,7 +20811,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6991
{
- yyLOCAL = IntervalWeek
+ yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
case 1410:
@@ -20882,7 +20819,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6995
{
- yyLOCAL = IntervalHour
+ yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
case 1411:
@@ -20890,7 +20827,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:6999
{
- yyLOCAL = IntervalMinute
+ yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
case 1412:
@@ -20898,7 +20835,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7003
{
- yyLOCAL = IntervalMonth
+ yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
case 1413:
@@ -20906,7 +20843,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7007
{
- yyLOCAL = IntervalQuarter
+ yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
case 1414:
@@ -20914,7 +20851,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7011
{
- yyLOCAL = IntervalSecond
+ yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
case 1415:
@@ -20922,15 +20859,15 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7015
{
- yyLOCAL = IntervalMicrosecond
+ yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
case 1416:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7019
+//line sql.y:7021
{
- yyLOCAL = IntervalYear
+ yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
case 1417:
@@ -20938,7 +20875,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7025
{
- yyLOCAL = IntervalDay
+ yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
case 1418:
@@ -20946,7 +20883,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7029
{
- yyLOCAL = IntervalWeek
+ yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
case 1419:
@@ -20954,7 +20891,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7033
{
- yyLOCAL = IntervalHour
+ yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
case 1420:
@@ -20962,7 +20899,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7037
{
- yyLOCAL = IntervalMinute
+ yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
case 1421:
@@ -20970,7 +20907,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7041
{
- yyLOCAL = IntervalMonth
+ yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
case 1422:
@@ -20978,7 +20915,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7045
{
- yyLOCAL = IntervalQuarter
+ yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
case 1423:
@@ -20986,7 +20923,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7049
{
- yyLOCAL = IntervalSecond
+ yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
case 1424:
@@ -20994,7 +20931,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7053
{
- yyLOCAL = IntervalMicrosecond
+ yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
case 1425:
@@ -21002,7 +20939,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7057
{
- yyLOCAL = IntervalYear
+ yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
case 1426:
@@ -21010,7 +20947,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7061
{
- yyLOCAL = IntervalDay
+ yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
case 1427:
@@ -21018,7 +20955,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7065
{
- yyLOCAL = IntervalWeek
+ yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
case 1428:
@@ -21026,7 +20963,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7069
{
- yyLOCAL = IntervalHour
+ yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
case 1429:
@@ -21034,7 +20971,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7073
{
- yyLOCAL = IntervalMinute
+ yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
case 1430:
@@ -21042,7 +20979,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7077
{
- yyLOCAL = IntervalMonth
+ yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
case 1431:
@@ -21050,7 +20987,7 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7081
{
- yyLOCAL = IntervalQuarter
+ yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
case 1432:
@@ -21058,134 +20995,132 @@ yydefault:
var yyLOCAL IntervalType
//line sql.y:7085
{
- yyLOCAL = IntervalSecond
+ yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
case 1433:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
//line sql.y:7089
- {
- yyLOCAL = IntervalMicrosecond
- }
- yyVAL.union = yyLOCAL
- case 1434:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL IntervalType
-//line sql.y:7093
{
yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
- case 1437:
+ case 1436:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:7103
+//line sql.y:7099
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 1438:
+ case 1437:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:7107
+//line sql.y:7103
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 1439:
+ case 1438:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:7111
+//line sql.y:7107
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 1440:
+ case 1439:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7121
+//line sql.y:7117
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("if"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1441:
+ case 1440:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7125
+//line sql.y:7121
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("database"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1442:
+ case 1441:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7129
+//line sql.y:7125
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("schema"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1443:
+ case 1442:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7133
+//line sql.y:7129
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("mod"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1444:
+ case 1443:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7137
+//line sql.y:7133
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("replace"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1445:
+ case 1444:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7143
+//line sql.y:7139
{
yyLOCAL = NoOption
}
yyVAL.union = yyLOCAL
- case 1446:
+ case 1445:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7147
+//line sql.y:7143
{
yyLOCAL = BooleanModeOpt
}
yyVAL.union = yyLOCAL
- case 1447:
+ case 1446:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7151
+//line sql.y:7147
{
yyLOCAL = NaturalLanguageModeOpt
}
yyVAL.union = yyLOCAL
- case 1448:
+ case 1447:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7155
+//line sql.y:7151
{
yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt
}
yyVAL.union = yyLOCAL
- case 1449:
+ case 1448:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7159
+//line sql.y:7155
{
yyLOCAL = QueryExpansionOpt
}
yyVAL.union = yyLOCAL
+ case 1449:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:7161
+ {
+ yyVAL.str = string(yyDollar[1].identifierCI.String())
+ }
case 1450:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:7165
{
- yyVAL.str = string(yyDollar[1].identifierCI.String())
+ yyVAL.str = string(yyDollar[1].str)
}
case 1451:
yyDollar = yyS[yypt-1 : yypt+1]
@@ -21194,17 +21129,19 @@ yydefault:
yyVAL.str = string(yyDollar[1].str)
}
case 1452:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7173
+ yyDollar = yyS[yypt-0 : yypt+1]
+ var yyLOCAL *ConvertType
+//line sql.y:7175
{
- yyVAL.str = string(yyDollar[1].str)
+ yyLOCAL = nil
}
+ yyVAL.union = yyLOCAL
case 1453:
- yyDollar = yyS[yypt-0 : yypt+1]
+ yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7179
{
- yyLOCAL = nil
+ yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))}
}
yyVAL.union = yyLOCAL
case 1454:
@@ -21216,35 +21153,35 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1455:
- yyDollar = yyS[yypt-5 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7187
+//line sql.y:7189
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
case 1456:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7193
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
}
yyVAL.union = yyLOCAL
case 1457:
- yyDollar = yyS[yypt-3 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7197
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 1458:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7201
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
case 1459:
@@ -21252,37 +21189,37 @@ yydefault:
var yyLOCAL *ConvertType
//line sql.y:7205
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
+ yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length
+ yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale
}
yyVAL.union = yyLOCAL
case 1460:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7209
+//line sql.y:7211
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
- yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length
- yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale
}
yyVAL.union = yyLOCAL
case 1461:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7215
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
case 1462:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7219
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 1463:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7223
{
@@ -21294,19 +21231,19 @@ yydefault:
var yyLOCAL *ConvertType
//line sql.y:7227
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
case 1465:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7231
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 1466:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7235
{
@@ -21318,15 +21255,15 @@ yydefault:
var yyLOCAL *ConvertType
//line sql.y:7239
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
case 1468:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
//line sql.y:7243
{
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
+ yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
case 1469:
@@ -21337,149 +21274,141 @@ yydefault:
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1470:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL *ConvertType
-//line sql.y:7251
- {
- yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
- }
- yyVAL.union = yyLOCAL
- case 1471:
+ case 1470:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7257
+//line sql.y:7253
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1472:
+ case 1471:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:7261
+//line sql.y:7257
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1473:
+ case 1472:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7266
+//line sql.y:7262
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1474:
+ case 1473:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7270
+//line sql.y:7266
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1475:
+ case 1474:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7275
+//line sql.y:7271
{
yyVAL.str = string("")
}
- case 1476:
+ case 1475:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7279
+//line sql.y:7275
{
yyVAL.str = encodeSQLString(yyDollar[2].str)
}
- case 1477:
+ case 1476:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*When
-//line sql.y:7285
+//line sql.y:7281
{
yyLOCAL = []*When{yyDollar[1].whenUnion()}
}
yyVAL.union = yyLOCAL
- case 1478:
+ case 1477:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7289
+//line sql.y:7285
{
yySLICE := (*[]*When)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].whenUnion())
}
- case 1479:
+ case 1478:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *When
-//line sql.y:7295
+//line sql.y:7291
{
yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1480:
+ case 1479:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7300
+//line sql.y:7296
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1481:
+ case 1480:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7304
+//line sql.y:7300
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1482:
+ case 1481:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7310
+//line sql.y:7306
{
yyLOCAL = &ColName{Name: yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1483:
+ case 1482:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7314
+//line sql.y:7310
{
yyLOCAL = &ColName{Name: NewIdentifierCI(string(yyDollar[1].str))}
}
yyVAL.union = yyLOCAL
- case 1484:
+ case 1483:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7318
+//line sql.y:7314
{
yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].identifierCS}, Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1485:
+ case 1484:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7322
+//line sql.y:7318
{
yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}, Name: yyDollar[5].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1486:
+ case 1485:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7328
+//line sql.y:7324
{
yyLOCAL = yyDollar[1].colNameUnion()
}
yyVAL.union = yyLOCAL
- case 1487:
+ case 1486:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7332
+//line sql.y:7328
{
yyLOCAL = &Offset{V: convertStringToInt(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1488:
+ case 1487:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7338
+//line sql.y:7334
{
// TODO(sougou): Deprecate this construct.
if yyDollar[1].identifierCI.Lowered() != "value" {
@@ -21489,228 +21418,236 @@ yydefault:
yyLOCAL = NewIntLiteral("1")
}
yyVAL.union = yyLOCAL
- case 1489:
+ case 1488:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7347
+//line sql.y:7343
{
yyLOCAL = NewIntLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
- case 1490:
+ case 1489:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7351
+//line sql.y:7347
{
yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
}
yyVAL.union = yyLOCAL
- case 1491:
+ case 1490:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *GroupBy
-//line sql.y:7356
+//line sql.y:7352
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1492:
+ case 1491:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *GroupBy
-//line sql.y:7360
+//line sql.y:7356
{
yyLOCAL = &GroupBy{Exprs: yyDollar[3].exprsUnion(), WithRollup: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 1493:
+ case 1492:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7365
+//line sql.y:7361
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1494:
+ case 1493:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:7369
+//line sql.y:7365
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1495:
+ case 1494:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7375
+//line sql.y:7371
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1496:
+ case 1495:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7379
+//line sql.y:7375
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1497:
+ case 1496:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *NamedWindow
-//line sql.y:7385
+//line sql.y:7381
{
yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 1498:
+ case 1497:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7391
+//line sql.y:7387
{
yyLOCAL = NamedWindows{yyDollar[1].namedWindowUnion()}
}
yyVAL.union = yyLOCAL
- case 1499:
+ case 1498:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7395
+//line sql.y:7391
{
yySLICE := (*NamedWindows)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].namedWindowUnion())
}
- case 1500:
+ case 1499:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7400
+//line sql.y:7396
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1501:
+ case 1500:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7404
+//line sql.y:7400
{
yyLOCAL = yyDollar[1].namedWindowsUnion()
}
yyVAL.union = yyLOCAL
- case 1502:
+ case 1501:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7409
+//line sql.y:7405
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1503:
+ case 1502:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7413
+//line sql.y:7409
{
yyLOCAL = yyDollar[1].orderByUnion()
}
yyVAL.union = yyLOCAL
- case 1504:
+ case 1503:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7419
+//line sql.y:7415
{
yyLOCAL = yyDollar[3].orderByUnion()
}
yyVAL.union = yyLOCAL
- case 1505:
+ case 1504:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7425
+//line sql.y:7421
{
yyLOCAL = OrderBy{yyDollar[1].orderUnion()}
}
yyVAL.union = yyLOCAL
- case 1506:
+ case 1505:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7429
+//line sql.y:7425
{
yySLICE := (*OrderBy)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].orderUnion())
}
- case 1507:
+ case 1506:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Order
-//line sql.y:7435
+//line sql.y:7431
{
yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()}
}
yyVAL.union = yyLOCAL
- case 1508:
+ case 1507:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7440
+//line sql.y:7436
{
yyLOCAL = AscOrder
}
yyVAL.union = yyLOCAL
- case 1509:
+ case 1508:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7444
+//line sql.y:7440
{
yyLOCAL = AscOrder
}
yyVAL.union = yyLOCAL
- case 1510:
+ case 1509:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7448
+//line sql.y:7444
{
yyLOCAL = DescOrder
}
yyVAL.union = yyLOCAL
- case 1511:
+ case 1510:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7453
+//line sql.y:7449
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1512:
+ case 1511:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7457
+//line sql.y:7453
{
yyLOCAL = yyDollar[1].limitUnion()
}
yyVAL.union = yyLOCAL
- case 1513:
+ case 1512:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7463
+//line sql.y:7459
{
yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1514:
+ case 1513:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7467
+//line sql.y:7463
{
yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1515:
+ case 1514:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7471
+//line sql.y:7467
{
yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1516:
+ case 1515:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7476
+//line sql.y:7472
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
+ case 1516:
+ yyDollar = yyS[yypt-2 : yypt+1]
+ var yyLOCAL []AlterOption
+//line sql.y:7476
+ {
+ yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
+ }
+ yyVAL.union = yyLOCAL
case 1517:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL []AlterOption
@@ -21720,11 +21657,11 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1518:
- yyDollar = yyS[yypt-2 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
//line sql.y:7484
{
- yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
+ yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
case 1519:
@@ -21736,11 +21673,11 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1520:
- yyDollar = yyS[yypt-1 : yypt+1]
- var yyLOCAL []AlterOption
-//line sql.y:7492
+ yyDollar = yyS[yypt-3 : yypt+1]
+ var yyLOCAL AlterOption
+//line sql.y:7495
{
- yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
+ yyLOCAL = &LockOption{Type: DefaultType}
}
yyVAL.union = yyLOCAL
case 1521:
@@ -21748,7 +21685,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:7499
{
- yyLOCAL = &LockOption{Type: DefaultType}
+ yyLOCAL = &LockOption{Type: NoneType}
}
yyVAL.union = yyLOCAL
case 1522:
@@ -21756,7 +21693,7 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:7503
{
- yyLOCAL = &LockOption{Type: NoneType}
+ yyLOCAL = &LockOption{Type: SharedType}
}
yyVAL.union = yyLOCAL
case 1523:
@@ -21764,15 +21701,15 @@ yydefault:
var yyLOCAL AlterOption
//line sql.y:7507
{
- yyLOCAL = &LockOption{Type: SharedType}
+ yyLOCAL = &LockOption{Type: ExclusiveType}
}
yyVAL.union = yyLOCAL
case 1524:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7511
+//line sql.y:7513
{
- yyLOCAL = &LockOption{Type: ExclusiveType}
+ yyLOCAL = AlgorithmValue(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
case 1525:
@@ -21800,18 +21737,16 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 1528:
- yyDollar = yyS[yypt-3 : yypt+1]
- var yyLOCAL AlterOption
-//line sql.y:7529
+ yyDollar = yyS[yypt-0 : yypt+1]
+//line sql.y:7530
{
- yyLOCAL = AlgorithmValue(yyDollar[3].str)
+ yyVAL.str = ""
}
- yyVAL.union = yyLOCAL
case 1529:
- yyDollar = yyS[yypt-0 : yypt+1]
+ yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:7534
{
- yyVAL.str = ""
+ yyVAL.str = string(yyDollar[3].str)
}
case 1530:
yyDollar = yyS[yypt-3 : yypt+1]
@@ -21826,105 +21761,99 @@ yydefault:
yyVAL.str = string(yyDollar[3].str)
}
case 1532:
- yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7546
- {
- yyVAL.str = string(yyDollar[3].str)
- }
- case 1533:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7551
+//line sql.y:7547
{
yyVAL.str = ""
}
- case 1534:
+ case 1533:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7555
+//line sql.y:7551
{
yyVAL.str = yyDollar[3].str
}
- case 1535:
+ case 1534:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7561
+//line sql.y:7557
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1536:
+ case 1535:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7565
+//line sql.y:7561
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1537:
+ case 1536:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7570
+//line sql.y:7566
{
yyVAL.str = ""
}
- case 1538:
+ case 1537:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:7574
+//line sql.y:7570
{
yyVAL.str = yyDollar[2].str
}
- case 1539:
+ case 1538:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7579
+//line sql.y:7575
{
yyVAL.str = "cascaded"
}
- case 1540:
+ case 1539:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7583
+//line sql.y:7579
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1541:
+ case 1540:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7587
+//line sql.y:7583
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1542:
+ case 1541:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7592
+//line sql.y:7588
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1543:
+ case 1542:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7596
+//line sql.y:7592
{
yyLOCAL = yyDollar[3].definerUnion()
}
yyVAL.union = yyLOCAL
- case 1544:
+ case 1543:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7602
+//line sql.y:7598
{
yyLOCAL = &Definer{
Name: string(yyDollar[1].str),
}
}
yyVAL.union = yyLOCAL
- case 1545:
+ case 1544:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7608
+//line sql.y:7604
{
yyLOCAL = &Definer{
Name: string(yyDollar[1].str),
}
}
yyVAL.union = yyLOCAL
- case 1546:
+ case 1545:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7614
+//line sql.y:7610
{
yyLOCAL = &Definer{
Name: yyDollar[1].str,
@@ -21932,433 +21861,433 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 1547:
+ case 1546:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7623
+//line sql.y:7619
{
yyVAL.str = encodeSQLString(yyDollar[1].str)
}
- case 1548:
+ case 1547:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7627
+//line sql.y:7623
{
yyVAL.str = formatIdentifier(yyDollar[1].str)
}
- case 1549:
+ case 1548:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7632
+//line sql.y:7628
{
yyVAL.str = ""
}
- case 1550:
+ case 1549:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7636
+//line sql.y:7632
{
yyVAL.str = formatAddress(yyDollar[1].str)
}
- case 1551:
+ case 1550:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7642
+//line sql.y:7638
{
yyLOCAL = ForUpdateLock
}
yyVAL.union = yyLOCAL
- case 1552:
+ case 1551:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7646
+//line sql.y:7642
{
yyLOCAL = ForUpdateLockNoWait
}
yyVAL.union = yyLOCAL
- case 1553:
+ case 1552:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7650
+//line sql.y:7646
{
yyLOCAL = ForUpdateLockSkipLocked
}
yyVAL.union = yyLOCAL
- case 1554:
+ case 1553:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7654
+//line sql.y:7650
{
yyLOCAL = ForShareLock
}
yyVAL.union = yyLOCAL
- case 1555:
+ case 1554:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7658
+//line sql.y:7654
{
yyLOCAL = ForShareLockNoWait
}
yyVAL.union = yyLOCAL
- case 1556:
+ case 1555:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7662
+//line sql.y:7658
{
yyLOCAL = ForShareLockSkipLocked
}
yyVAL.union = yyLOCAL
- case 1557:
+ case 1556:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7666
+//line sql.y:7662
{
yyLOCAL = ShareModeLock
}
yyVAL.union = yyLOCAL
- case 1558:
+ case 1557:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7672
+//line sql.y:7668
{
yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].columnCharset, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str}
}
yyVAL.union = yyLOCAL
- case 1559:
+ case 1558:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7676
+//line sql.y:7672
{
yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""}
}
yyVAL.union = yyLOCAL
- case 1560:
+ case 1559:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7680
+//line sql.y:7676
{
yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].columnCharset, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""}
}
yyVAL.union = yyLOCAL
- case 1561:
+ case 1560:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7685
+//line sql.y:7681
{
yyVAL.str = ""
}
- case 1562:
+ case 1561:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7689
+//line sql.y:7685
{
yyVAL.str = " format csv" + yyDollar[3].str
}
- case 1563:
+ case 1562:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7693
+//line sql.y:7689
{
yyVAL.str = " format text" + yyDollar[3].str
}
- case 1564:
+ case 1563:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7698
+//line sql.y:7694
{
yyVAL.str = ""
}
- case 1565:
+ case 1564:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7702
+//line sql.y:7698
{
yyVAL.str = " header"
}
- case 1566:
+ case 1565:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7707
+//line sql.y:7703
{
yyVAL.str = ""
}
- case 1567:
+ case 1566:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7711
+//line sql.y:7707
{
yyVAL.str = " manifest on"
}
- case 1568:
+ case 1567:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7715
+//line sql.y:7711
{
yyVAL.str = " manifest off"
}
- case 1569:
+ case 1568:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7720
+//line sql.y:7716
{
yyVAL.str = ""
}
- case 1570:
+ case 1569:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7724
+//line sql.y:7720
{
yyVAL.str = " overwrite on"
}
- case 1571:
+ case 1570:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7728
+//line sql.y:7724
{
yyVAL.str = " overwrite off"
}
- case 1572:
+ case 1571:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7734
+//line sql.y:7730
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1573:
+ case 1572:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7739
+//line sql.y:7735
{
yyVAL.str = ""
}
- case 1574:
+ case 1573:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7743
+//line sql.y:7739
{
yyVAL.str = " lines" + yyDollar[2].str
}
- case 1575:
+ case 1574:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7749
+//line sql.y:7745
{
yyVAL.str = yyDollar[1].str
}
- case 1576:
+ case 1575:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7753
+//line sql.y:7749
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1577:
+ case 1576:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7759
+//line sql.y:7755
{
yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str)
}
- case 1578:
+ case 1577:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7763
+//line sql.y:7759
{
yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
}
- case 1579:
+ case 1578:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7768
+//line sql.y:7764
{
yyVAL.str = ""
}
- case 1580:
+ case 1579:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7772
+//line sql.y:7768
{
yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str
}
- case 1581:
+ case 1580:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7778
+//line sql.y:7774
{
yyVAL.str = yyDollar[1].str
}
- case 1582:
+ case 1581:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7782
+//line sql.y:7778
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1583:
+ case 1582:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7788
+//line sql.y:7784
{
yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
}
- case 1584:
+ case 1583:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:7792
+//line sql.y:7788
{
yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str)
}
- case 1585:
+ case 1584:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7796
+//line sql.y:7792
{
yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str)
}
- case 1586:
+ case 1585:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7801
+//line sql.y:7797
{
yyVAL.str = ""
}
- case 1587:
+ case 1586:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7805
+//line sql.y:7801
{
yyVAL.str = " optionally"
}
- case 1588:
+ case 1587:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7818
+//line sql.y:7814
{
yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion(), RowAlias: yyDollar[3].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1589:
+ case 1588:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7822
+//line sql.y:7818
{
yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1590:
+ case 1589:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7826
+//line sql.y:7822
{
yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion(), RowAlias: yyDollar[6].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1591:
+ case 1590:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7830
+//line sql.y:7826
{
yyLOCAL = &Insert{Columns: []IdentifierCI{}, Rows: yyDollar[4].valuesUnion(), RowAlias: yyDollar[5].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1592:
+ case 1591:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7834
+//line sql.y:7830
{
yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1593:
+ case 1592:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:7840
+//line sql.y:7836
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1594:
+ case 1593:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Columns
-//line sql.y:7844
+//line sql.y:7840
{
yyLOCAL = Columns{yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1595:
+ case 1594:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7848
+//line sql.y:7844
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 1596:
+ case 1595:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:7852
+//line sql.y:7848
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[5].identifierCI)
}
- case 1597:
+ case 1596:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7857
+//line sql.y:7853
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1598:
+ case 1597:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7861
+//line sql.y:7857
{
yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS}
}
yyVAL.union = yyLOCAL
- case 1599:
+ case 1598:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7865
+//line sql.y:7861
{
yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS, Columns: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1600:
+ case 1599:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7870
+//line sql.y:7866
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1601:
+ case 1600:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7874
+//line sql.y:7870
{
yyLOCAL = yyDollar[5].updateExprsUnion()
}
yyVAL.union = yyLOCAL
- case 1602:
+ case 1601:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Values
-//line sql.y:7880
+//line sql.y:7876
{
yyLOCAL = Values{yyDollar[1].valTupleUnion()}
}
yyVAL.union = yyLOCAL
- case 1603:
+ case 1602:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7884
+//line sql.y:7880
{
yySLICE := (*Values)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion())
}
- case 1604:
+ case 1603:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7890
+//line sql.y:7886
{
yyLOCAL = yyDollar[1].valTupleUnion()
}
yyVAL.union = yyLOCAL
- case 1605:
+ case 1604:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7894
+//line sql.y:7890
{
yyLOCAL = ValTuple{}
}
yyVAL.union = yyLOCAL
- case 1606:
+ case 1605:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7900
+//line sql.y:7896
{
yyLOCAL = ValTuple(yyDollar[2].exprsUnion())
}
yyVAL.union = yyLOCAL
- case 1607:
+ case 1606:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7904
+//line sql.y:7900
{
yyLOCAL = ValTuple(yyDollar[3].exprsUnion())
}
yyVAL.union = yyLOCAL
- case 1608:
+ case 1607:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7909
+//line sql.y:7905
{
if len(yyDollar[1].valTupleUnion()) == 1 {
yyLOCAL = yyDollar[1].valTupleUnion()[0]
@@ -22367,287 +22296,293 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 1609:
+ case 1608:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7919
+//line sql.y:7915
{
yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()}
}
yyVAL.union = yyLOCAL
- case 1610:
+ case 1609:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7923
+//line sql.y:7919
{
yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion())
}
- case 1611:
+ case 1610:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *UpdateExpr
-//line sql.y:7929
+//line sql.y:7925
{
yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1613:
+ case 1612:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7936
+//line sql.y:7932
{
yyVAL.str = "charset"
}
- case 1616:
+ case 1615:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7946
+//line sql.y:7942
{
yyLOCAL = NewStrLiteral(yyDollar[1].identifierCI.String())
}
yyVAL.union = yyLOCAL
- case 1617:
+ case 1616:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7950
+//line sql.y:7946
{
yyLOCAL = NewStrLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
- case 1618:
+ case 1617:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7954
+//line sql.y:7950
{
yyLOCAL = &Default{}
}
yyVAL.union = yyLOCAL
- case 1621:
+ case 1620:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7963
+//line sql.y:7959
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1622:
+ case 1621:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:7965
+//line sql.y:7961
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1623:
+ case 1622:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7968
+//line sql.y:7964
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1624:
+ case 1623:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:7970
+//line sql.y:7966
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1625:
+ case 1624:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7973
+//line sql.y:7969
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1626:
+ case 1625:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL bool
-//line sql.y:7975
+//line sql.y:7971
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1627:
+ case 1626:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Ignore
-//line sql.y:7978
+//line sql.y:7974
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1628:
+ case 1627:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Ignore
-//line sql.y:7980
+//line sql.y:7976
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1629:
+ case 1628:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7983
+//line sql.y:7979
{
yyVAL.empty = struct{}{}
}
- case 1630:
+ case 1629:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7985
+//line sql.y:7981
{
yyVAL.empty = struct{}{}
}
- case 1631:
+ case 1630:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7987
+//line sql.y:7983
{
yyVAL.empty = struct{}{}
}
- case 1632:
+ case 1631:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:7991
+//line sql.y:7987
{
yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1633:
+ case 1632:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:7996
+//line sql.y:7992
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1634:
+ case 1633:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:8000
+//line sql.y:7996
{
yyLOCAL = yyDollar[1].exprsUnion()
}
yyVAL.union = yyLOCAL
- case 1635:
+ case 1634:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:8005
+//line sql.y:8001
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1636:
+ case 1635:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:8007
+//line sql.y:8003
{
yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1637:
+ case 1636:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:8011
+//line sql.y:8007
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].identifierCI.String())}
}
yyVAL.union = yyLOCAL
- case 1638:
+ case 1637:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8017
+//line sql.y:8013
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 1639:
+ case 1638:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8021
+//line sql.y:8017
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 1641:
+ case 1640:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8028
+//line sql.y:8024
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 1642:
+ case 1641:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8034
+//line sql.y:8030
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1643:
+ case 1642:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8038
+//line sql.y:8034
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1644:
+ case 1643:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:8044
+//line sql.y:8040
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 1645:
+ case 1644:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8048
+//line sql.y:8044
{
yyVAL.identifierCS = yyDollar[1].identifierCS
}
- case 1647:
+ case 1646:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8055
+//line sql.y:8051
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1648:
+ case 1647:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:8061
+//line sql.y:8057
{
yyLOCAL = &Kill{Type: yyDollar[2].killTypeUnion(), ProcesslistID: convertStringToUInt64(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 1649:
+ case 1648:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8067
+//line sql.y:8063
{
yyLOCAL = ConnectionType
}
yyVAL.union = yyLOCAL
- case 1650:
+ case 1649:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8071
+//line sql.y:8067
{
yyLOCAL = ConnectionType
}
yyVAL.union = yyLOCAL
- case 1651:
+ case 1650:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8075
+//line sql.y:8071
{
yyLOCAL = QueryType
}
yyVAL.union = yyLOCAL
+ case 2281:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:8730
+ {
+ }
case 2282:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8734
+//line sql.y:8735
{
}
case 2283:
- yyDollar = yyS[yypt-1 : yypt+1]
+ yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:8739
{
+ skipToEnd(yylex)
}
case 2284:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:8743
+//line sql.y:8744
{
skipToEnd(yylex)
}
case 2285:
- yyDollar = yyS[yypt-0 : yypt+1]
+ yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:8748
{
skipToEnd(yylex)
@@ -22658,12 +22593,6 @@ yydefault:
{
skipToEnd(yylex)
}
- case 2287:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8756
- {
- skipToEnd(yylex)
- }
}
goto yystack /* stack new state and value */
}
diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y
index 0881c2d0b59..18db4d2eb08 100644
--- a/go/vt/sqlparser/sql.y
+++ b/go/vt/sqlparser/sql.y
@@ -1730,10 +1730,6 @@ text_literal %prec MULTIPLE_TEXT_LITERAL
{
$$ = &IntroducerExpr{CharacterSet: $1, Expr: NewHexLiteral($2)}
}
-| underscore_charsets column_name_or_offset %prec UNARY
- {
- $$ = &IntroducerExpr{CharacterSet: $1, Expr: $2}
- }
| underscore_charsets VALUE_ARG %prec UNARY
{
arg := parseBindVariable(yylex, $2[1:])
diff --git a/go/vt/vtgate/evalengine/translate_test.go b/go/vt/vtgate/evalengine/translate_test.go
index 3702230e22e..2bebae548e1 100644
--- a/go/vt/vtgate/evalengine/translate_test.go
+++ b/go/vt/vtgate/evalengine/translate_test.go
@@ -89,8 +89,8 @@ func TestTranslateSimplification(t *testing.T) {
{"coalesce(NULL, 2, NULL, 4)", ok("coalesce(null, 2, null, 4)"), ok("2")},
{"coalesce(NULL, NULL)", ok("coalesce(null, null)"), ok("null")},
{"coalesce(NULL)", ok("coalesce(null)"), ok("null")},
- {"weight_string('foobar')", ok(`weight_string('foobar')`), ok("'\x1c\xe5\x1d\xdd\x1d\xdd\x1c`\x1cG\x1e3'")},
- {"weight_string('foobar' as char(12))", ok(`weight_string('foobar' as char(12))`), ok("'\x1c\xe5\x1d\xdd\x1d\xdd\x1c`\x1cG\x1e3'")},
+ {"weight_string('foobar')", ok(`weight_string('foobar')`), ok("_binary'\x1c\xe5\x1d\xdd\x1d\xdd\x1c`\x1cG\x1e3'")},
+ {"weight_string('foobar' as char(12))", ok(`weight_string('foobar' as char(12))`), ok("_binary'\x1c\xe5\x1d\xdd\x1d\xdd\x1c`\x1cG\x1e3'")},
{"case when 1 = 1 then 2 else 3 end", ok("case when 1 = 1 then 2 else 3"), ok("2")},
{"case when null then 2 when 12 = 4 then 'ohnoes' else 42 end", ok(`case when null then 2 when 12 = 4 then 'ohnoes' else 42`), ok(`'42'`)},
{"convert('a', char(2) character set utf8mb4)", ok(`convert('a', CHAR(2) character set utf8mb4_0900_ai_ci)`), ok(`'a'`)},
diff --git a/go/vt/vtgate/planbuilder/testdata/dml_cases.json b/go/vt/vtgate/planbuilder/testdata/dml_cases.json
index b5d0fa8951f..f796b935605 100644
--- a/go/vt/vtgate/planbuilder/testdata/dml_cases.json
+++ b/go/vt/vtgate/planbuilder/testdata/dml_cases.json
@@ -2823,7 +2823,7 @@
"Query": "delete from `user` where `name` = _binary 'abc'",
"Table": "user",
"Values": [
- "'abc'"
+ "_binary'abc'"
],
"Vindex": "name_user_map"
},
diff --git a/go/vt/vtgate/planbuilder/testdata/select_cases.json b/go/vt/vtgate/planbuilder/testdata/select_cases.json
index bd41b2f93ec..185bd6938df 100644
--- a/go/vt/vtgate/planbuilder/testdata/select_cases.json
+++ b/go/vt/vtgate/planbuilder/testdata/select_cases.json
@@ -1055,7 +1055,7 @@
"Query": "select * from `user` where id = 0x04",
"Table": "`user`",
"Values": [
- "'\u0004'"
+ "_binary'\u0004'"
],
"Vindex": "user_index"
},
diff --git a/go/vt/vttablet/endtoend/twopc/prepare_test.go b/go/vt/vttablet/endtoend/twopc/prepare_test.go
index ae07356d6dc..047b02bce82 100644
--- a/go/vt/vttablet/endtoend/twopc/prepare_test.go
+++ b/go/vt/vttablet/endtoend/twopc/prepare_test.go
@@ -64,7 +64,7 @@ func TestCommitPreparedFailNonRetryable(t *testing.T) {
qr, err := client2.Execute("select dtid, state, message from _vt.redo_state where dtid = 'bb'", nil)
require.NoError(t, err)
- require.Equal(t, `[[VARBINARY("bb") INT64(0) TEXT("Lock wait timeout exceeded; try restarting transaction (errno 1205) (sqlstate HY000) during query: delete from _vt.redo_state where dtid = 'bb'")]]`, fmt.Sprintf("%v", qr.Rows))
+ require.Equal(t, `[[VARBINARY("bb") INT64(0) TEXT("Lock wait timeout exceeded; try restarting transaction (errno 1205) (sqlstate HY000) during query: delete from _vt.redo_state where dtid = _binary'bb'")]]`, fmt.Sprintf("%v", qr.Rows))
}
// TestCommitPreparedFailRetryable tests the case where the commit_prepared fails when the query is killed.
@@ -81,7 +81,7 @@ func TestCommitPreparedFailRetryable(t *testing.T) {
require.NoError(t, err)
client2 := framework.NewClient()
- _, err = client2.BeginExecute(`select * from _vt.redo_state where dtid = 'aa' for update`, nil, nil)
+ _, err = client2.BeginExecute(`select * from _vt.redo_state where dtid = _binary'aa' for update`, nil, nil)
require.NoError(t, err)
ch := make(chan any)
@@ -103,7 +103,7 @@ func TestCommitPreparedFailRetryable(t *testing.T) {
client2.Release()
<-ch
- qr, err := client2.Execute("select dtid, state, message from _vt.redo_state where dtid = 'aa'", nil)
+ qr, err := client2.Execute("select dtid, state, message from _vt.redo_state where dtid = _binary'aa'", nil)
require.NoError(t, err)
- require.Equal(t, `[[VARBINARY("aa") INT64(1) TEXT("Query execution was interrupted (errno 1317) (sqlstate 70100) during query: delete from _vt.redo_state where dtid = 'aa'")]]`, fmt.Sprintf("%v", qr.Rows))
+ require.Equal(t, `[[VARBINARY("aa") INT64(1) TEXT("Query execution was interrupted (errno 1317) (sqlstate 70100) during query: delete from _vt.redo_state where dtid = _binary'aa'")]]`, fmt.Sprintf("%v", qr.Rows))
}
diff --git a/go/vt/vttablet/tabletmanager/vreplication/external_connector_test.go b/go/vt/vttablet/tabletmanager/vreplication/external_connector_test.go
index 24e6cb0dbc3..e00a5578171 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/external_connector_test.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/external_connector_test.go
@@ -64,7 +64,7 @@ func TestExternalConnectorCopy(t *testing.T) {
expectDBClientAndVreplicationQueries(t, []string{
"begin",
- "insert into tab1(id,val) values (1,'a'), (2,'b')",
+ "insert into tab1(id,val) values (1,_binary'a'), (2,_binary'b')",
"/insert into _vt.copy_state",
"commit",
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name",
@@ -73,7 +73,7 @@ func TestExternalConnectorCopy(t *testing.T) {
execStatements(t, []string{"insert into tab1 values(3, 'c')"})
expectDBClientQueries(t, qh.Expect(
"begin",
- "insert into tab1(id,val) values (3,'c')",
+ "insert into tab1(id,val) values (3,_binary'c')",
"/update _vt.vreplication set pos=",
"commit",
))
@@ -96,7 +96,7 @@ func TestExternalConnectorCopy(t *testing.T) {
expectDBClientAndVreplicationQueries(t, []string{
"begin",
- "insert into tab2(id,val) values (1,'a'), (2,'b')",
+ "insert into tab2(id,val) values (1,_binary'a'), (2,_binary'b')",
"/insert into _vt.copy_state",
"commit",
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name",
@@ -121,7 +121,7 @@ func TestExternalConnectorCopy(t *testing.T) {
expectDBClientAndVreplicationQueries(t, []string{
"begin",
- "insert into tab3(id,val) values (1,'a'), (2,'b')",
+ "insert into tab3(id,val) values (1,_binary'a'), (2,_binary'b')",
"/insert into _vt.copy_state",
"commit",
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name",
@@ -163,8 +163,8 @@ func TestExternalConnectorPlay(t *testing.T) {
expectDBClientAndVreplicationQueries(t, []string{
"begin",
- "insert into tab1(id,val) values (1,'a')",
- "insert into tab1(id,val) values (2,'b')",
+ "insert into tab1(id,val) values (1,_binary'a')",
+ "insert into tab1(id,val) values (2,_binary'b')",
"/update _vt.vreplication set pos=",
"commit",
}, pos)
diff --git a/go/vt/vttablet/tabletmanager/vreplication/vcopier_test.go b/go/vt/vttablet/tabletmanager/vreplication/vcopier_test.go
index ab91d480535..a95e0bf17c5 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/vcopier_test.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/vcopier_test.go
@@ -174,11 +174,11 @@ func testPlayerCopyCharPK(t *testing.T) {
"/update _vt.vreplication set message='Picked source tablet.*",
"/insert into _vt.copy_state",
"/update _vt.vreplication set state='Copying'",
- "insert into dst(idc,val) values ('a\\0',1)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"idc" type:BINARY charset:63 flags:20611} rows:{lengths:2 values:"a\\\\x00"}'.*`,
- `update dst set val=3 where idc='a\0' and ('a\0') <= ('a\0')`,
- "insert into dst(idc,val) values ('c\\0',2)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"idc" type:BINARY charset:63 flags:20611} rows:{lengths:2 values:"c\\\\x00"}'.*`,
+ "insert into dst(idc,val) values (_binary'a\\0',1)",
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"idc" type:BINARY charset:63 flags:20611} rows:{lengths:2 values:"a\\\\x00"}'.*`,
+ `update dst set val=3 where idc=_binary'a\0' and (_binary'a\0') <= (_binary'a\0')`,
+ "insert into dst(idc,val) values (_binary'c\\0',2)",
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"idc" type:BINARY charset:63 flags:20611} rows:{lengths:2 values:"c\\\\x00"}'.*`,
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst",
"/update _vt.vreplication set state='Running",
), recvTimeout)
@@ -282,7 +282,7 @@ func testPlayerCopyVarcharPKCaseInsensitive(t *testing.T) {
"/update _vt.vreplication set state='Copying'",
// Copy mode.
"insert into dst(idc,val) values ('a',1)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"a"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"a"}'.*`,
// Copy-catchup mode.
`/insert into dst\(idc,val\) select 'B', 3 from dual where \( .* 'B' COLLATE .* \) <= \( .* 'a' COLLATE .* \)`,
).Then(func(expect qh.ExpectationSequencer) qh.ExpectationSequencer {
@@ -292,11 +292,11 @@ func testPlayerCopyVarcharPKCaseInsensitive(t *testing.T) {
// upd1 := expect.
upd1 := expect.Then(qh.Eventually(
"insert into dst(idc,val) values ('B',3)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"B"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"B"}'.*`,
))
upd2 := expect.Then(qh.Eventually(
"insert into dst(idc,val) values ('c',2)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"c"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"idc" type:VARCHAR charset:33 flags:20483} rows:{lengths:1 values:"c"}'.*`,
))
upd1.Then(upd2.Eventually())
return upd2
@@ -336,7 +336,7 @@ func testPlayerCopyVarcharCompositePKCaseSensitiveCollation(t *testing.T) {
execStatements(t, []string{
"create table src(id int, idc varbinary(20), idc2 varbinary(20), val int, primary key(id,idc,idc2))",
- "insert into src values(1, 'a', 'a', 1), (1, 'c', 'c', 2)",
+ "insert into src values(1, _binary'a', _binary'a', 1), (1, _binary'c', _binary'c', 2)",
fmt.Sprintf("create table %s.dst(id int, idc varbinary(20), idc2 varbinary(20), val int, primary key(id,idc,idc2))", vrepldb),
})
defer execStatements(t, []string{
@@ -354,7 +354,7 @@ func testPlayerCopyVarcharCompositePKCaseSensitiveCollation(t *testing.T) {
}
// Insert a row with PK which is < the lastPK till now because of the utf8mb4 collation
execStatements(t, []string{
- "insert into src values(1, 'B', 'B', 3)",
+ "insert into src values(1, _binary'B', _binary'B', 3)",
})
// Wait for context to expire and then send the row.
// This will cause the copier to abort and go back to catchup mode.
@@ -404,13 +404,13 @@ func testPlayerCopyVarcharCompositePKCaseSensitiveCollation(t *testing.T) {
"/insert into _vt.copy_state",
"/update _vt.vreplication set state='Copying'",
// Copy mode.
- "insert into dst(id,idc,idc2,val) values (1,'a','a',1)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"idc" type:VARBINARY charset:63 flags:20611} fields:{name:"idc2" type:VARBINARY charset:63 flags:20611} rows:{lengths:1 lengths:1 lengths:1 values:"1aa"}'.*`,
+ "insert into dst(id,idc,idc2,val) values (1,_binary'a',_binary'a',1)",
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"idc" type:VARBINARY charset:63 flags:20611} fields:{name:"idc2" type:VARBINARY charset:63 flags:20611} rows:{lengths:1 lengths:1 lengths:1 values:"1aa"}'.*`,
// Copy-catchup mode.
- `insert into dst(id,idc,idc2,val) select 1, 'B', 'B', 3 from dual where (1,'B','B') <= (1,'a','a')`,
+ `insert into dst(id,idc,idc2,val) select 1, _binary'B', _binary'B', 3 from dual where (1,_binary'B',_binary'B') <= (1,_binary'a',_binary'a')`,
// Copy mode.
- "insert into dst(id,idc,idc2,val) values (1,'c','c',2)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"idc" type:VARBINARY charset:63 flags:20611} fields:{name:"idc2" type:VARBINARY charset:63 flags:20611} rows:{lengths:1 lengths:1 lengths:1 values:"1cc"}'.*`,
+ "insert into dst(id,idc,idc2,val) values (1,_binary'c',_binary'c',2)",
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"idc" type:VARBINARY charset:63 flags:20611} fields:{name:"idc2" type:VARBINARY charset:63 flags:20611} rows:{lengths:1 lengths:1 lengths:1 values:"1cc"}'.*`,
// Wrap-up.
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst",
"/update _vt.vreplication set state='Running'",
@@ -494,7 +494,7 @@ func testPlayerCopyTablesWithFK(t *testing.T) {
// Inserts may happen out-of-order. Update happen in-order.
"begin",
"insert into dst1(id,id2) values (1,1), (2,2)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
"set @@session.foreign_key_checks=0",
@@ -515,7 +515,7 @@ func testPlayerCopyTablesWithFK(t *testing.T) {
// copy dst2
"begin",
"insert into dst2(id,id2) values (1,21), (2,22)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
"set @@session.foreign_key_checks=0",
@@ -560,13 +560,13 @@ func testPlayerCopyTables(t *testing.T) {
execStatements(t, []string{
"create table ast1(id int, primary key(id))",
- "create table src1(id int, val varbinary(128), d decimal(8,0), j json, primary key(id))",
+ "create table src1(id int, val varchar(128), d decimal(8,0), j json, primary key(id))",
"insert into src1 values(2, 'bbb', 1, '{\"foo\": \"bar\"}'), (1, 'aaa', 0, JSON_ARRAY(123456789012345678901234567890, \"abcd\")), (3, 'ccc', 2, 'null'), (4, 'ddd', 3, '{\"name\": \"matt\", \"size\": null}'), (5, 'eee', 4, null)",
fmt.Sprintf("create table %s.ast1(id int, primary key(id))", vrepldb),
- fmt.Sprintf("create table %s.dst1(id int, val varbinary(128), val2 varbinary(128), d decimal(8,0), j json, primary key(id))", vrepldb),
- "create table yes(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.yes(id int, val varbinary(128), primary key(id))", vrepldb),
- "create table no(id int, val varbinary(128), primary key(id))",
+ fmt.Sprintf("create table %s.dst1(id int, val varchar(128), val2 varchar(128), d decimal(8,0), j json, primary key(id))", vrepldb),
+ "create table yes(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.yes(id int, val varchar(128), primary key(id))", vrepldb),
+ "create table no(id int, val varchar(128), primary key(id))",
})
defer execStatements(t, []string{
"drop table ast1",
@@ -628,7 +628,7 @@ func testPlayerCopyTables(t *testing.T) {
"commit",
"begin",
"insert into dst1(id,val,val2,d,j) values (1,'aaa','aaa',0,JSON_ARRAY(123456789012345678901234567890, _utf8mb4'abcd')), (2,'bbb','bbb',1,JSON_OBJECT(_utf8mb4'foo', _utf8mb4'bar')), (3,'ccc','ccc',2,CAST(_utf8mb4'null' as JSON)), (4,'ddd','ddd',3,JSON_OBJECT(_utf8mb4'name', _utf8mb4'matt', _utf8mb4'size', null)), (5,'eee','eee',4,null)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"5"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"5"}'.*`,
"commit",
// copy of dst1 is done: delete from copy_state.
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst1",
@@ -695,9 +695,9 @@ func testPlayerCopyBigTable(t *testing.T) {
defer func() { waitRetryTime = savedWaitRetryTime }()
execStatements(t, []string{
- "create table src(id int, val varbinary(128), primary key(id))",
+ "create table src(id int, val varchar(128), primary key(id))",
"insert into src values(1, 'aaa'), (2, 'bbb')",
- fmt.Sprintf("create table %s.dst(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src",
@@ -764,7 +764,7 @@ func testPlayerCopyBigTable(t *testing.T) {
// The first fast-forward has no starting point. So, it just saves the current position.
"/update _vt.vreplication set state='Copying'",
"insert into dst(id,val) values (1,'aaa')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
// The next catchup executes the new row insert, but will be a no-op.
"insert into dst(id,val) select 3, 'ccc' from dual where (3) <= (1)",
// fastForward has nothing to add. Just saves position.
@@ -774,12 +774,12 @@ func testPlayerCopyBigTable(t *testing.T) {
).Then(func(expect qh.ExpectationSequencer) qh.ExpectationSequencer {
ins1 := expect.Then(qh.Eventually("insert into dst(id,val) values (2,'bbb')"))
upd1 := ins1.Then(qh.Eventually(
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
))
// Third row copied without going back to catchup state.
ins3 := expect.Then(qh.Eventually("insert into dst(id,val) values (3,'ccc')"))
upd3 := ins3.Then(qh.Eventually(
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"3"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"3"}'.*`,
))
upd1.Then(upd3.Eventually())
return upd3
@@ -825,9 +825,9 @@ func testPlayerCopyWildcardRule(t *testing.T) {
defer func() { waitRetryTime = savedWaitRetryTime }()
execStatements(t, []string{
- "create table src(id int, val varbinary(128), primary key(id))",
+ "create table src(id int, val varchar(128), primary key(id))",
"insert into src values(1, 'aaa'), (2, 'bbb')",
- fmt.Sprintf("create table %s.src(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.src(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src",
@@ -893,7 +893,7 @@ func testPlayerCopyWildcardRule(t *testing.T) {
"/update _vt.vreplication set state='Copying'",
// The first fast-forward has no starting point. So, it just saves the current position.
"insert into src(id,val) values (1,'aaa')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
// The next catchup executes the new row insert, but will be a no-op.
"insert into src(id,val) select 3, 'ccc' from dual where (3) <= (1)",
// fastForward has nothing to add. Just saves position.
@@ -903,12 +903,12 @@ func testPlayerCopyWildcardRule(t *testing.T) {
).Then(func(expect qh.ExpectationSequencer) qh.ExpectationSequencer {
ins1 := expect.Then(qh.Eventually("insert into src(id,val) values (2,'bbb')"))
upd1 := ins1.Then(qh.Eventually(
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
))
// Third row copied without going back to catchup state.
ins3 := expect.Then(qh.Eventually("insert into src(id,val) values (3,'ccc')"))
upd3 := ins3.Then(qh.Eventually(
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"3"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"3"}'.*`,
))
upd1.Then(upd3.Eventually())
return upd3
@@ -943,19 +943,19 @@ func testPlayerCopyTableContinuation(t *testing.T) {
// src1 is initialized as partially copied.
// lastpk will be initialized at (6,6) later below.
// dst1 only copies id1 and val. This will allow us to test for correctness if id2 changes in the source.
- "create table src1(id1 int, id2 int, val varbinary(128), primary key(id1, id2))",
+ "create table src1(id1 int, id2 int, val varchar(128), primary key(id1, id2))",
"insert into src1 values(2,2,'no change'), (3,3,'update'), (4,4,'delete'), (5,5,'move within'), (6,6,'move out'), (8,8,'no change'), (9,9,'delete'), (10,10,'update'), (11,11,'move in')",
- fmt.Sprintf("create table %s.dst1(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst1(id int, val varchar(128), primary key(id))", vrepldb),
fmt.Sprintf("insert into %s.dst1 values(2,'no change'), (3,'update'), (4,'delete'), (5,'move within'), (6,'move out')", vrepldb),
// copied is initialized as fully copied
- "create table copied(id int, val varbinary(128), primary key(id))",
+ "create table copied(id int, val varchar(128), primary key(id))",
"insert into copied values(1,'aaa')",
- fmt.Sprintf("create table %s.copied(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.copied(id int, val varchar(128), primary key(id))", vrepldb),
fmt.Sprintf("insert into %s.copied values(1,'aaa')", vrepldb),
// not_copied yet to be copied.
- "create table not_copied(id int, val varbinary(128), primary key(id))",
+ "create table not_copied(id int, val varchar(128), primary key(id))",
"insert into not_copied values(1,'aaa')",
- fmt.Sprintf("create table %s.not_copied(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.not_copied(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src1",
@@ -1067,13 +1067,13 @@ func testPlayerCopyTableContinuation(t *testing.T) {
).Then(qh.Immediately(
"insert into dst1(id,val) values (7,'insert out'), (8,'no change'), (10,'updated'), (12,'move out')",
)).Then(qh.Eventually(
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id1" type:INT32 charset:63 flags:53251} fields:{name:"id2" type:INT32 charset:63 flags:53251} rows:{lengths:2 lengths:1 values:"126"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id1" type:INT32 charset:63 flags:53251} fields:{name:"id2" type:INT32 charset:63 flags:53251} rows:{lengths:2 lengths:1 values:"126"}'.*`,
)).Then(qh.Immediately(
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst1",
"insert into not_copied(id,val) values (1,'bbb')",
)).Then(qh.Eventually(
// Copy again. There should be no events for catchup.
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"1"}'.*`,
)).Then(qh.Immediately(
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*not_copied",
"/update _vt.vreplication set state='Running'",
@@ -1118,9 +1118,9 @@ func testPlayerCopyWildcardTableContinuation(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table src(id int, val varbinary(128), primary key(id))",
+ "create table src(id int, val varchar(128), primary key(id))",
"insert into src values(2,'copied'), (3,'uncopied')",
- fmt.Sprintf("create table %s.dst(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst(id int, val varchar(128), primary key(id))", vrepldb),
fmt.Sprintf("insert into %s.dst values(2,'copied')", vrepldb),
})
defer execStatements(t, []string{
@@ -1218,9 +1218,9 @@ func TestPlayerCopyWildcardTableContinuationWithOptimizeInserts(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table src(id int, val varbinary(128), primary key(id))",
+ "create table src(id int, val varchar(128), primary key(id))",
"insert into src values(2,'copied'), (3,'uncopied')",
- fmt.Sprintf("create table %s.dst(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst(id int, val varchar(128), primary key(id))", vrepldb),
fmt.Sprintf("insert into %s.dst values(2,'copied')", vrepldb),
})
defer execStatements(t, []string{
@@ -1344,9 +1344,9 @@ func testPlayerCopyTablesStopAfterCopy(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table src1(id int, val varbinary(128), primary key(id))",
+ "create table src1(id int, val varchar(128), primary key(id))",
"insert into src1 values(2, 'bbb'), (1, 'aaa')",
- fmt.Sprintf("create table %s.dst1(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src1",
@@ -1393,7 +1393,7 @@ func testPlayerCopyTablesStopAfterCopy(t *testing.T) {
).Then(qh.Eventually(
"begin",
"insert into dst1(id,val) values (1,'aaa'), (2,'bbb')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
// copy of dst1 is done: delete from copy_state.
@@ -1423,13 +1423,13 @@ func testPlayerCopyTablesGIPK(t *testing.T) {
execStatements(t, []string{
"SET @@session.sql_generate_invisible_primary_key=ON;",
- "create table src1(val varbinary(128))",
+ "create table src1(val varchar(128))",
"insert into src1 values('aaa'), ('bbb')",
- "create table src2(val varbinary(128))",
+ "create table src2(val varchar(128))",
"insert into src2 values('aaa'), ('bbb')",
- fmt.Sprintf("create table %s.dst1(val varbinary(128))", vrepldb),
+ fmt.Sprintf("create table %s.dst1(val varchar(128))", vrepldb),
"SET @@session.sql_generate_invisible_primary_key=OFF;",
- fmt.Sprintf("create table %s.dst2(my_row_id int, val varbinary(128), primary key(my_row_id))", vrepldb),
+ fmt.Sprintf("create table %s.dst2(my_row_id int, val varchar(128), primary key(my_row_id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src1",
@@ -1481,7 +1481,7 @@ func testPlayerCopyTablesGIPK(t *testing.T) {
).Then(qh.Eventually(
"begin",
"insert into dst1(my_row_id,val) values (1,'aaa'), (2,'bbb')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"my_row_id" type:UINT64 charset:63 flags:49699} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"my_row_id" type:UINT64 charset:63 flags:49699} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
// copy of dst1 is done: delete from copy_state.
@@ -1492,7 +1492,7 @@ func testPlayerCopyTablesGIPK(t *testing.T) {
"commit",
"begin",
"insert into dst2(my_row_id,val) values (1,'aaa'), (2,'bbb')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"my_row_id" type:UINT64 charset:63 flags:49699} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"my_row_id" type:UINT64 charset:63 flags:49699} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
// copy of dst2 is done: delete from copy_state.
@@ -1519,9 +1519,9 @@ func testPlayerCopyTableCancel(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table src1(id int, val varbinary(128), primary key(id))",
+ "create table src1(id int, val varchar(128), primary key(id))",
"insert into src1 values(2, 'bbb'), (1, 'aaa')",
- fmt.Sprintf("create table %s.dst1(id int, val varbinary(128), primary key(id))", vrepldb),
+ fmt.Sprintf("create table %s.dst1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table src1",
@@ -1583,7 +1583,7 @@ func testPlayerCopyTableCancel(t *testing.T) {
).Then(qh.Eventually(
"begin",
"insert into dst1(id,val) values (1,'aaa'), (2,'bbb')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
// copy of dst1 is done: delete from copy_state.
@@ -1606,12 +1606,12 @@ func testPlayerCopyTablesWithGeneratedColumn(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table src1(id int, val varbinary(128), val2 varbinary(128) as (concat(id, val)), val3 varbinary(128) as (concat(val, id)), id2 int, primary key(id))",
+ "create table src1(id int, val varchar(128), val2 varchar(128) as (concat(id, val)), val3 varchar(128) as (concat(val, id)), id2 int, primary key(id))",
"insert into src1(id, val, id2) values(2, 'bbb', 20), (1, 'aaa', 10)",
- fmt.Sprintf("create table %s.dst1(id int, val varbinary(128), val2 varbinary(128) as (concat(id, val)), val3 varbinary(128), id2 int, primary key(id))", vrepldb),
- "create table src2(id int, val varbinary(128), val2 varbinary(128) as (concat(id, val)), val3 varbinary(128) as (concat(val, id)), id2 int, primary key(id))",
+ fmt.Sprintf("create table %s.dst1(id int, val varchar(128), val2 varchar(128) as (concat(id, val)), val3 varchar(128), id2 int, primary key(id))", vrepldb),
+ "create table src2(id int, val varchar(128), val2 varchar(128) as (concat(id, val)), val3 varchar(128) as (concat(val, id)), id2 int, primary key(id))",
"insert into src2(id, val, id2) values(2, 'bbb', 20), (1, 'aaa', 10)",
- fmt.Sprintf("create table %s.dst2(val3 varbinary(128), val varbinary(128), id2 int)", vrepldb),
+ fmt.Sprintf("create table %s.dst2(val3 varchar(128), val varchar(128), id2 int)", vrepldb),
})
defer execStatements(t, []string{
"drop table src1",
@@ -1656,11 +1656,11 @@ func testPlayerCopyTablesWithGeneratedColumn(t *testing.T) {
"/update _vt.vreplication set state",
// The first fast-forward has no starting point. So, it just saves the current position.
"insert into dst1(id,val,val3,id2) values (1,'aaa','aaa1',10), (2,'bbb','bbb2',20)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
// copy of dst1 is done: delete from copy_state.
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst1",
"insert into dst2(val3,val,id2) values ('aaa1','aaa',10), ('bbb2','bbb',20)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
// copy of dst2 is done: delete from copy_state.
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst2",
"/update _vt.vreplication set state",
@@ -1737,7 +1737,7 @@ func testCopyTablesWithInvalidDates(t *testing.T) {
).Then(qh.Eventually(
"begin",
"insert into dst1(id,dt) values (1,'2020-01-12'), (2,'0000-00-00')",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} rows:{lengths:1 values:"2"}'.*`,
"commit",
)).Then(qh.Immediately(
// copy of dst1 is done: delete from copy_state.
@@ -1827,7 +1827,7 @@ func testCopyInvisibleColumns(t *testing.T) {
"/update _vt.vreplication set state='Copying'",
// The first fast-forward has no starting point. So, it just saves the current position.
"insert into dst1(id,id2,inv1,inv2) values (1,10,100,1000), (2,20,200,2000)",
- `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \('fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"inv1" type:INT32 charset:63 flags:53251} rows:{lengths:1 lengths:3 values:"2200"}'.*`,
+ `/insert into _vt.copy_state \(lastpk, vrepl_id, table_name\) values \(_binary'fields:{name:"id" type:INT32 charset:63 flags:53251} fields:{name:"inv1" type:INT32 charset:63 flags:53251} rows:{lengths:1 lengths:3 values:"2200"}'.*`,
// copy of dst1 is done: delete from copy_state.
"/delete cs, pca from _vt.copy_state as cs left join _vt.post_copy_action as pca on cs.vrepl_id=pca.vrepl_id and cs.table_name=pca.table_name.*dst1",
"/update _vt.vreplication set state='Running'",
diff --git a/go/vt/vttablet/tabletmanager/vreplication/vplayer_flaky_test.go b/go/vt/vttablet/tabletmanager/vreplication/vplayer_flaky_test.go
index ccf1ce9119a..0cc568c1cf1 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/vplayer_flaky_test.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/vplayer_flaky_test.go
@@ -53,11 +53,11 @@ func TestPlayerGeneratedInvisiblePrimaryKey(t *testing.T) {
execStatements(t, []string{
"SET @@session.sql_generate_invisible_primary_key=ON;",
- "create table t1(val varbinary(128))",
- fmt.Sprintf("create table %s.t1(val varbinary(128))", vrepldb),
- "create table t2(val varbinary(128))",
+ "create table t1(val varchar(128))",
+ fmt.Sprintf("create table %s.t1(val varchar(128))", vrepldb),
+ "create table t2(val varchar(128))",
"SET @@session.sql_generate_invisible_primary_key=OFF;",
- fmt.Sprintf("create table %s.t2(my_row_id int, val varbinary(128), primary key(my_row_id))", vrepldb),
+ fmt.Sprintf("create table %s.t2(my_row_id int, val varchar(128), primary key(my_row_id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -235,8 +235,8 @@ func TestVReplicationTimeUpdated(t *testing.T) {
ctx := context.Background()
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -340,14 +340,14 @@ func TestCharPK(t *testing.T) {
data [][]string
}{{ // binary(2)
input: "insert into t1 values(1, 'a')",
- output: "insert into t1(id,val) values (1,'a\\0')",
+ output: "insert into t1(id,val) values (1,_binary'a\\0')",
table: "t1",
data: [][]string{
{"1", "a\000"},
},
}, {
input: "update t1 set id = 2 where val = 'a\000'",
- output: "update t1 set id=2 where val='a\\0'",
+ output: "update t1 set id=2 where val=_binary'a\\0'",
table: "t1",
data: [][]string{
{"2", "a\000"},
@@ -368,14 +368,14 @@ func TestCharPK(t *testing.T) {
},
}, { // varbinary(2)
input: "insert into t3 values(1, 'a')",
- output: "insert into t3(id,val) values (1,'a')",
+ output: "insert into t3(id,val) values (1,_binary'a')",
table: "t3",
data: [][]string{
{"1", "a"},
},
}, {
input: "update t3 set id = 2 where val = 'a'",
- output: "update t3 set id=2 where val='a'",
+ output: "update t3 set id=2 where val=_binary'a'",
table: "t3",
data: [][]string{
{"2", "a"},
@@ -748,7 +748,7 @@ func TestPlayerFilters(t *testing.T) {
Filter: "select id1, val from src5 where val = 'abc'",
}, {
Match: "dst_charset",
- Filter: "select id1, concat(substr(_utf8mb4 val collate utf8mb4_bin,1,1),'abcxyz') val, concat(substr(_utf8mb4 val collate utf8mb4_bin,1,1),'abcxyz') val2 from src_charset",
+ Filter: "select id1, concat(substr(CONVERT(val USING utf8mb4) COLLATE utf8mb4_bin,1,1),'abcxyz') val, concat(substr(CONVERT(val USING utf8mb4) COLLATE utf8mb4_bin,1,1),'abcxyz') val2 from src_charset",
}},
}
bls := &binlogdatapb.BinlogSource{
@@ -772,7 +772,7 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into src1 values(1, 'aaa')",
output: qh.Expect(
"begin",
- "insert into dst1(id,val) values (1,'aaa')",
+ "insert into dst1(id,val) values (1,_binary'aaa')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -782,7 +782,7 @@ func TestPlayerFilters(t *testing.T) {
},
logs: []LogExpectation{
{"FIELD", "/src1.*id.*INT32.*val.*VARBINARY.*"},
- {"ROWCHANGE", "insert into dst1(id,val) values (1,'aaa')"},
+ {"ROWCHANGE", "insert into dst1(id,val) values (1,_binary'aaa')"},
{"ROW", "/src1.*3.*1aaa.*"},
},
}, {
@@ -790,7 +790,7 @@ func TestPlayerFilters(t *testing.T) {
input: "update src1 set val='bbb'",
output: qh.Expect(
"begin",
- "update dst1 set val='bbb' where id=1",
+ "update dst1 set val=_binary'bbb' where id=1",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -799,7 +799,7 @@ func TestPlayerFilters(t *testing.T) {
{"1", "bbb"},
},
logs: []LogExpectation{
- {"ROWCHANGE", "update dst1 set val='bbb' where id=1"},
+ {"ROWCHANGE", "update dst1 set val=_binary'bbb' where id=1"},
{"ROW", "/src1.*3.*1aaa.*"},
},
}, {
@@ -869,7 +869,7 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into src3 values(1, 'aaa')",
output: qh.Expect(
"begin",
- "insert ignore into dst3(id,val) values (1,'aaa')",
+ "insert ignore into dst3(id,val) values (1,_binary'aaa')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -882,7 +882,7 @@ func TestPlayerFilters(t *testing.T) {
input: "update src3 set val='bbb'",
output: qh.Expect(
"begin",
- "insert ignore into dst3(id,val) values (1,'bbb')",
+ "insert ignore into dst3(id,val) values (1,_binary'bbb')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -907,7 +907,7 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into yes values(1, 'aaa')",
output: qh.Expect(
"begin",
- "insert into yes(id,val) values (1,'aaa')",
+ "insert into yes(id,val) values (1,_binary'aaa')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -920,7 +920,7 @@ func TestPlayerFilters(t *testing.T) {
input: "update yes set val='bbb'",
output: qh.Expect(
"begin",
- "update yes set val='bbb' where id=1",
+ "update yes set val=_binary'bbb' where id=1",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -937,7 +937,7 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into nopk values(1, 'aaa')",
output: qh.Expect(
"begin",
- "insert into nopk(id,val) values (1,'aaa')",
+ "insert into nopk(id,val) values (1,_binary'aaa')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -950,8 +950,8 @@ func TestPlayerFilters(t *testing.T) {
input: "update nopk set val='bbb' where id=1",
output: qh.Expect(
"begin",
- "delete from nopk where id=1 and val='aaa'",
- "insert into nopk(id,val) values (1,'bbb')",
+ "delete from nopk where id=1 and val=_binary'aaa'",
+ "insert into nopk(id,val) values (1,_binary'bbb')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -964,7 +964,7 @@ func TestPlayerFilters(t *testing.T) {
input: "delete from nopk where id=1",
output: qh.Expect(
"begin",
- "delete from nopk where id=1 and val='bbb'",
+ "delete from nopk where id=1 and val=_binary'bbb'",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -975,8 +975,8 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into src4 values (1,100,'aaa'),(2,200,'bbb'),(3,100,'ccc')",
output: qh.Expect(
"begin",
- "insert into dst4(id1,val) values (1,'aaa')",
- "insert into dst4(id1,val) values (3,'ccc')",
+ "insert into dst4(id1,val) values (1,_binary'aaa')",
+ "insert into dst4(id1,val) values (3,_binary'ccc')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -987,8 +987,8 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into src5 values (1,100,'abc'),(2,200,'xyz'),(3,100,'xyz'),(4,300,'abc'),(5,200,'xyz')",
output: qh.Expect(
"begin",
- "insert into dst5(id1,val) values (1,'abc')",
- "insert into dst5(id1,val) values (4,'abc')",
+ "insert into dst5(id1,val) values (1,_binary'abc')",
+ "insert into dst5(id1,val) values (4,_binary'abc')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -999,7 +999,7 @@ func TestPlayerFilters(t *testing.T) {
input: "insert into src_charset values (1,'木元')",
output: qh.Expect(
"begin",
- "insert into dst_charset(id1,val,val2) values (1,concat(substr(_utf8mb4 '木元' collate utf8mb4_bin, 1, 1), 'abcxyz'),concat(substr(_utf8mb4 '木元' collate utf8mb4_bin, 1, 1), 'abcxyz'))",
+ "insert into dst_charset(id1,val,val2) values (1,concat(substr(convert(_binary'木元' using utf8mb4) collate utf8mb4_bin, 1, 1), 'abcxyz'),concat(substr(convert(_binary'木元' using utf8mb4) collate utf8mb4_bin, 1, 1), 'abcxyz'))",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -1026,12 +1026,12 @@ func TestPlayerKeywordNames(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table `begin`(`primary` int, `column` varbinary(128), primary key(`primary`))",
- fmt.Sprintf("create table %s.`begin`(`primary` int, `column` varbinary(128), primary key(`primary`))", vrepldb),
- "create table `rollback`(`primary` int, `column` varbinary(128), primary key(`primary`))",
- fmt.Sprintf("create table %s.`rollback`(`primary` int, `column` varbinary(128), primary key(`primary`))", vrepldb),
- "create table `commit`(`primary` int, `column` varbinary(128), primary key(`primary`))",
- fmt.Sprintf("create table %s.`commit`(`primary` int, `column` varbinary(128), primary key(`primary`))", vrepldb),
+ "create table `begin`(`primary` int, `column` varchar(128), primary key(`primary`))",
+ fmt.Sprintf("create table %s.`begin`(`primary` int, `column` varchar(128), primary key(`primary`))", vrepldb),
+ "create table `rollback`(`primary` int, `column` varchar(128), primary key(`primary`))",
+ fmt.Sprintf("create table %s.`rollback`(`primary` int, `column` varchar(128), primary key(`primary`))", vrepldb),
+ "create table `commit`(`primary` int, `column` varchar(128), primary key(`primary`))",
+ fmt.Sprintf("create table %s.`commit`(`primary` int, `column` varchar(128), primary key(`primary`))", vrepldb),
})
defer execStatements(t, []string{
"drop table `begin`",
@@ -1257,7 +1257,7 @@ func TestPlayerKeyspaceID(t *testing.T) {
input: "insert into src1 values(1, 'aaa')",
output: qh.Expect(
"begin",
- "insert into dst1(id,val) values (1,'\x16k@\xb4J\xbaK\xd6')",
+ "insert into dst1(id,val) values (1,_binary'\x16k@\xb4J\xbaK\xd6')",
"/update _vt.vreplication set pos=",
"commit",
),
@@ -1602,7 +1602,7 @@ func TestPlayerTypes(t *testing.T) {
},
}, {
input: "insert into vitess_strings values('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'a', 'a,b,f,l,q,s,v,z')",
- output: "insert into vitess_strings(vb,c,vc,b,tb,bl,ttx,tx,en,s) values ('a','b','c','d\\0\\0\\0\\0','e','f','g','h','a','a,b,f,l,q,s,v,z')",
+ output: "insert into vitess_strings(vb,c,vc,b,tb,bl,ttx,tx,en,s) values (_binary'a','b','c',_binary'd\\0\\0\\0\\0',_binary'e',_binary'f','g','h','a','a,b,f,l,q,s,v,z')",
table: "vitess_strings",
data: [][]string{
{"a", "b", "c", "d\000\000\000\000", "e", "f", "g", "h", "a", "a,b,f,l,q,s,v,z"},
@@ -1623,7 +1623,7 @@ func TestPlayerTypes(t *testing.T) {
},
}, {
input: "insert into binary_pk values('a', 'aaa')",
- output: "insert into binary_pk(b,val) values ('a\\0\\0\\0','aaa')",
+ output: "insert into binary_pk(b,val) values (_binary'a\\0\\0\\0',_binary'aaa')",
table: "binary_pk",
data: [][]string{
{"a\000\000\000", "aaa"},
@@ -1638,7 +1638,7 @@ func TestPlayerTypes(t *testing.T) {
}, {
// Binary pk is a special case: https://github.com/vitessio/vitess/issues/3984
input: "update binary_pk set val='bbb' where b='a\\0\\0\\0'",
- output: "update binary_pk set val='bbb' where b='a\\0\\0\\0'",
+ output: "update binary_pk set val=_binary'bbb' where b=_binary'a\\0\\0\\0'",
table: "binary_pk",
data: [][]string{
{"a\000\000\000", "bbb"},
@@ -1874,9 +1874,9 @@ func TestPlayerStopPos(t *testing.T) {
vttablet.DefaultVReplicationConfig.StoreCompressedGTID = false
}()
execStatements(t, []string{
- "create table yes(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.yes(id int, val varbinary(128), primary key(id))", vrepldb),
- "create table no(id int, val varbinary(128), primary key(id))",
+ "create table yes(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.yes(id int, val varchar(128), primary key(id))", vrepldb),
+ "create table no(id int, val varchar(128), primary key(id))",
})
defer execStatements(t, []string{
"drop table yes",
@@ -2084,8 +2084,8 @@ func TestPlayerIdleUpdate(t *testing.T) {
idleTimeout = 100 * time.Millisecond
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2137,8 +2137,8 @@ func TestPlayerSplitTransaction(t *testing.T) {
defer setFlag("vstream_packet_size", "10000")
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2180,8 +2180,8 @@ func TestPlayerLockErrors(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2259,8 +2259,8 @@ func TestPlayerCancelOnLock(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2336,8 +2336,8 @@ func TestPlayerTransactions(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2441,8 +2441,8 @@ func TestPlayerRelayLogMaxSize(t *testing.T) {
}
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2535,8 +2535,8 @@ func TestRestartOnVStreamEnd(t *testing.T) {
vttablet.DefaultVReplicationConfig.RetryDelay = 1 * time.Millisecond
execStatements(t, []string{
- "create table t1(id int, val varbinary(128), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(128), primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(128), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(128), primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2801,10 +2801,10 @@ func TestGeneratedColumns(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val varbinary(6), val2 varbinary(6) as (concat(id, val)), val3 varbinary(6) as (concat(val, id)), id2 int, primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val varbinary(6), val2 varbinary(6) as (concat(id, val)), val3 varbinary(6), id2 int, primary key(id))", vrepldb),
- "create table t2(id int, val varbinary(128), val2 varbinary(128) as (concat(id, val)) stored, val3 varbinary(128) as (concat(val, id)), id2 int, primary key(id))",
- fmt.Sprintf("create table %s.t2(id int, val3 varbinary(128), val varbinary(128), id2 int, primary key(id))", vrepldb),
+ "create table t1(id int, val varchar(6), val2 varchar(6) as (concat(id, val)), val3 varchar(6) as (concat(val, id)), id2 int, primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val varchar(6), val2 varchar(6) as (concat(id, val)), val3 varchar(6), id2 int, primary key(id))", vrepldb),
+ "create table t2(id int, val varchar(128), val2 varchar(128) as (concat(id, val)) stored, val3 varchar(128) as (concat(val, id)), id2 int, primary key(id))",
+ fmt.Sprintf("create table %s.t2(id int, val3 varchar(128), val varchar(128), id2 int, primary key(id))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
@@ -2962,10 +2962,10 @@ func TestPlayerNoBlob(t *testing.T) {
defer deleteTablet(addTablet(100))
execStatements(t, []string{
- "create table t1(id int, val1 varchar(20), blb1 blob, id2 int, blb2 longblob, val2 varbinary(10), primary key(id))",
- fmt.Sprintf("create table %s.t1(id int, val1 varchar(20), blb1 blob, id2 int, blb2 longblob, val2 varbinary(10), primary key(id))", vrepldb),
- "create table t2(id int, val1 varchar(20), txt1 text, id2 int, val2 varbinary(10), unique key(id, val1))",
- fmt.Sprintf("create table %s.t2(id int, val1 varchar(20), txt1 text, id2 int, val2 varbinary(10), primary key(id, val1))", vrepldb),
+ "create table t1(id int, val1 varchar(20), blb1 text, id2 int, blb2 longtext, val2 varchar(10), primary key(id))",
+ fmt.Sprintf("create table %s.t1(id int, val1 varchar(20), blb1 text, id2 int, blb2 longtext, val2 varchar(10), primary key(id))", vrepldb),
+ "create table t2(id int, val1 varchar(20), txt1 text, id2 int, val2 varchar(10), unique key(id, val1))",
+ fmt.Sprintf("create table %s.t2(id int, val1 varchar(20), txt1 text, id2 int, val2 varchar(10), primary key(id, val1))", vrepldb),
})
defer execStatements(t, []string{
"drop table t1",
diff --git a/go/vt/vttablet/tabletserver/dt_executor_test.go b/go/vt/vttablet/tabletserver/dt_executor_test.go
index bc497b070e6..103112bd7c7 100644
--- a/go/vt/vttablet/tabletserver/dt_executor_test.go
+++ b/go/vt/vttablet/tabletserver/dt_executor_test.go
@@ -267,8 +267,8 @@ func TestTxExecutorCommitRedoFail(t *testing.T) {
require.NoError(t, err)
// fail commit prepare as the delete redo query is in rejected query.
- db.AddRejectedQuery("delete from _vt.redo_state where dtid = 'bb'", errors.New("delete redo log fail"))
- db.AddQuery("update _vt.redo_state set state = 0 where dtid = 'bb'", sqltypes.MakeTestResult(nil))
+ db.AddRejectedQuery("delete from _vt.redo_state where dtid = _binary'bb'", errors.New("delete redo log fail"))
+ db.AddQuery("update _vt.redo_state set state = 0 where dtid = _binary'bb'", sqltypes.MakeTestResult(nil))
err = txe.CommitPrepared("bb")
require.ErrorContains(t, err, "delete redo log fail")
@@ -331,8 +331,8 @@ func TestExecutorCreateTransaction(t *testing.T) {
txe, _, db, closer := newTestTxExecutor(t, ctx)
defer closer()
- db.AddQueryPattern(fmt.Sprintf("insert into _vt\\.dt_state\\(dtid, state, time_created\\) values \\('aa', %d,.*", int(querypb.TransactionState_PREPARE)), &sqltypes.Result{})
- db.AddQueryPattern("insert into _vt\\.dt_participant\\(dtid, id, keyspace, shard\\) values \\('aa', 1,.*", &sqltypes.Result{})
+ db.AddQueryPattern(fmt.Sprintf("insert into _vt\\.dt_state\\(dtid, state, time_created\\) values \\(_binary'aa', %d,.*", int(querypb.TransactionState_PREPARE)), &sqltypes.Result{})
+ db.AddQueryPattern("insert into _vt\\.dt_participant\\(dtid, id, keyspace, shard\\) values \\(_binary'aa', 1,.*", &sqltypes.Result{})
err := txe.CreateTransaction("aa", []*querypb.Target{{
Keyspace: "t1",
Shard: "0",
@@ -346,7 +346,7 @@ func TestExecutorStartCommit(t *testing.T) {
txe, tsv, db, closer := newTestTxExecutor(t, ctx)
defer closer()
- commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = 'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
+ commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
db.AddQuery(commitTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
err := txe.StartCommit(txid, "aa")
@@ -375,7 +375,7 @@ func TestExecutorStartCommitFailure(t *testing.T) {
sc.Unlock()
// add rollback state update expectation
- rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = 'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
+ rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
db.AddQuery(rollbackTransition, sqltypes.MakeTestResult(nil))
// try 2pc commit of Metadata Manager.
@@ -389,7 +389,7 @@ func TestExecutorSetRollback(t *testing.T) {
txe, tsv, db, closer := newTestTxExecutor(t, ctx)
defer closer()
- rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = 'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
+ rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
db.AddQuery(rollbackTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
err := txe.SetRollback("aa", txid)
@@ -464,8 +464,8 @@ func TestExecutorConcludeTransaction(t *testing.T) {
txe, _, db, closer := newTestTxExecutor(t, ctx)
defer closer()
- db.AddQuery("delete from _vt.dt_state where dtid = 'aa'", &sqltypes.Result{})
- db.AddQuery("delete from _vt.dt_participant where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.dt_state where dtid = _binary'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.dt_participant where dtid = _binary'aa'", &sqltypes.Result{})
err := txe.ConcludeTransaction("aa")
require.NoError(t, err)
}
@@ -476,7 +476,7 @@ func TestExecutorReadTransaction(t *testing.T) {
txe, _, db, closer := newTestTxExecutor(t, ctx)
defer closer()
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", &sqltypes.Result{})
got, err := txe.ReadTransaction("aa")
require.NoError(t, err)
want := &querypb.TransactionMetadata{}
@@ -496,8 +496,8 @@ func TestExecutorReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
- db.AddQuery("select keyspace, shard from _vt.dt_participant where dtid = 'aa'", &sqltypes.Result{
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
+ db.AddQuery("select keyspace, shard from _vt.dt_participant where dtid = _binary'aa'", &sqltypes.Result{
Fields: []*querypb.Field{
{Type: sqltypes.VarChar},
{Type: sqltypes.VarChar},
@@ -542,7 +542,7 @@ func TestExecutorReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
want.State = querypb.TransactionState_COMMIT
got, err = txe.ReadTransaction("aa")
require.NoError(t, err)
@@ -562,7 +562,7 @@ func TestExecutorReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
want.State = querypb.TransactionState_ROLLBACK
got, err = txe.ReadTransaction("aa")
require.NoError(t, err)
@@ -714,10 +714,10 @@ func newTestTxExecutor(t *testing.T, ctx context.Context) (txe *DTExecutor, tsv
env := tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "TabletServerTest")
se := schema.NewEngine(env)
qe := NewQueryEngine(env, se)
- db.AddQueryPattern("insert into _vt\\.redo_state\\(dtid, state, time_created\\) values \\('aa', 1,.*", &sqltypes.Result{})
+ db.AddQueryPattern("insert into _vt\\.redo_state\\(dtid, state, time_created\\) values \\(_binary'aa', 1,.*", &sqltypes.Result{})
db.AddQueryPattern("insert into _vt\\.redo_statement.*", &sqltypes.Result{})
- db.AddQuery("delete from _vt.redo_state where dtid = 'aa'", &sqltypes.Result{})
- db.AddQuery("delete from _vt.redo_statement where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.redo_state where dtid = _binary'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.redo_statement where dtid = _binary'aa'", &sqltypes.Result{})
db.AddQuery("update test_table set `name` = 2 where pk = 1 limit 10001", &sqltypes.Result{})
db.AddRejectedQuery("bogus", sqlerror.NewSQLError(sqlerror.ERUnknownError, sqlerror.SSUnknownSQLState, "bogus query"))
return &DTExecutor{
@@ -736,10 +736,10 @@ func newShortAgeExecutor(t *testing.T, ctx context.Context) (txe *DTExecutor, ts
db = setUpQueryExecutorTest(t)
logStats := tabletenv.NewLogStats(ctx, "TestTxExecutor")
tsv = newTestTabletServer(ctx, smallTxPool|shortTwopcAge, db)
- db.AddQueryPattern("insert into _vt\\.redo_state\\(dtid, state, time_created\\) values \\('aa', 1,.*", &sqltypes.Result{})
+ db.AddQueryPattern("insert into _vt\\.redo_state\\(dtid, state, time_created\\) values \\(_binary'aa', 1,.*", &sqltypes.Result{})
db.AddQueryPattern("insert into _vt\\.redo_statement.*", &sqltypes.Result{})
- db.AddQuery("delete from _vt.redo_state where dtid = 'aa'", &sqltypes.Result{})
- db.AddQuery("delete from _vt.redo_statement where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.redo_state where dtid = _binary'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.redo_statement where dtid = _binary'aa'", &sqltypes.Result{})
db.AddQuery("update test_table set `name` = 2 where pk = 1 limit 10001", &sqltypes.Result{})
return &DTExecutor{
ctx: ctx,
diff --git a/go/vt/vttablet/tabletserver/messager/message_manager.go b/go/vt/vttablet/tabletserver/messager/message_manager.go
index a1fc27187a3..7a217fb63b7 100644
--- a/go/vt/vttablet/tabletserver/messager/message_manager.go
+++ b/go/vt/vttablet/tabletserver/messager/message_manager.go
@@ -236,6 +236,9 @@ type messageManager struct {
ackQuery *sqlparser.ParsedQuery
postponeQuery *sqlparser.ParsedQuery
purgeQuery *sqlparser.ParsedQuery
+
+ // idType is the type of the id column in the message table.
+ idType sqltypes.Type
}
// newMessageManager creates a new message manager.
@@ -259,6 +262,7 @@ func newMessageManager(tsv TabletService, vs VStreamer, table *schema.Table, pos
purgeTicks: timer.NewTimer(table.MessageInfo.PollInterval),
postponeSema: postponeSema,
messagesPending: true,
+ idType: table.MessageInfo.IDType,
}
mm.cond.L = &mm.mu
@@ -856,7 +860,7 @@ func (mm *messageManager) GenerateAckQuery(ids []string) (string, map[string]*qu
}
for _, id := range ids {
idbvs.Values = append(idbvs.Values, &querypb.Value{
- Type: querypb.Type_VARBINARY,
+ Type: mm.idType,
Value: []byte(id),
})
}
@@ -874,7 +878,7 @@ func (mm *messageManager) GeneratePostponeQuery(ids []string) (string, map[strin
}
for _, id := range ids {
idbvs.Values = append(idbvs.Values, &querypb.Value{
- Type: querypb.Type_VARBINARY,
+ Type: mm.idType,
Value: []byte(id),
})
}
diff --git a/go/vt/vttablet/tabletserver/messager/message_manager_test.go b/go/vt/vttablet/tabletserver/messager/message_manager_test.go
index 6c323d2d95b..5e1c21f773f 100644
--- a/go/vt/vttablet/tabletserver/messager/message_manager_test.go
+++ b/go/vt/vttablet/tabletserver/messager/message_manager_test.go
@@ -74,6 +74,7 @@ func newMMTable() *schema.Table {
BatchSize: 1,
CacheSize: 10,
PollInterval: 1 * time.Second,
+ IDType: sqltypes.VarBinary,
},
}
}
@@ -91,6 +92,7 @@ func newMMTableWithBackoff() *schema.Table {
BatchSize: 1,
CacheSize: 10,
PollInterval: 1 * time.Second,
+ IDType: sqltypes.VarBinary,
},
}
}
diff --git a/go/vt/vttablet/tabletserver/schema/cached_size.go b/go/vt/vttablet/tabletserver/schema/cached_size.go
index 8ca75534a62..4db9f313644 100644
--- a/go/vt/vttablet/tabletserver/schema/cached_size.go
+++ b/go/vt/vttablet/tabletserver/schema/cached_size.go
@@ -25,7 +25,7 @@ func (cached *MessageInfo) CachedSize(alloc bool) int64 {
}
size := int64(0)
if alloc {
- size += int64(80)
+ size += int64(96)
}
// field Fields []*vitess.io/vitess/go/vt/proto/query.Field
{
diff --git a/go/vt/vttablet/tabletserver/schema/engine_test.go b/go/vt/vttablet/tabletserver/schema/engine_test.go
index 1fd6098b384..1c32b7acf73 100644
--- a/go/vt/vttablet/tabletserver/schema/engine_test.go
+++ b/go/vt/vttablet/tabletserver/schema/engine_test.go
@@ -737,6 +737,7 @@ func initialSchema() map[string]*Table {
BatchSize: 1,
CacheSize: 10,
PollInterval: 30 * time.Second,
+ IDType: sqltypes.Int64,
},
},
}
diff --git a/go/vt/vttablet/tabletserver/schema/load_table.go b/go/vt/vttablet/tabletserver/schema/load_table.go
index 6022f8724eb..2a2be33a208 100644
--- a/go/vt/vttablet/tabletserver/schema/load_table.go
+++ b/go/vt/vttablet/tabletserver/schema/load_table.go
@@ -157,6 +157,14 @@ func loadMessageInfo(ta *Table, comment string, collationEnv *collations.Environ
ta.MessageInfo.Fields = getDefaultMessageFields(ta.Fields, hiddenCols)
}
+ ta.MessageInfo.IDType = sqltypes.VarBinary
+ for _, field := range ta.MessageInfo.Fields {
+ if field.Name == "id" {
+ ta.MessageInfo.IDType = field.Type
+ break
+ }
+ }
+
return nil
}
diff --git a/go/vt/vttablet/tabletserver/schema/load_table_test.go b/go/vt/vttablet/tabletserver/schema/load_table_test.go
index 6416e2e306e..e451624c0d7 100644
--- a/go/vt/vttablet/tabletserver/schema/load_table_test.go
+++ b/go/vt/vttablet/tabletserver/schema/load_table_test.go
@@ -149,6 +149,7 @@ func TestLoadTableMessage(t *testing.T) {
BatchSize: 1,
CacheSize: 10,
PollInterval: 30 * time.Second,
+ IDType: sqltypes.Int64,
},
}
assert.Equal(t, want, table)
diff --git a/go/vt/vttablet/tabletserver/schema/schema.go b/go/vt/vttablet/tabletserver/schema/schema.go
index 4b3d9c88fb5..e800477da3b 100644
--- a/go/vt/vttablet/tabletserver/schema/schema.go
+++ b/go/vt/vttablet/tabletserver/schema/schema.go
@@ -20,6 +20,7 @@ import (
"sync"
"time"
+ "vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/vt/sqlparser"
@@ -125,6 +126,9 @@ type MessageInfo struct {
// MaxBackoff specifies the longest duration message manager
// should wait before rescheduling a message
MaxBackoff time.Duration
+
+ // IDType specifies the type of the ID column
+ IDType sqltypes.Type
}
// NewTable creates a new Table.
diff --git a/go/vt/vttablet/tabletserver/tabletserver_test.go b/go/vt/vttablet/tabletserver/tabletserver_test.go
index 97d948a4d0a..be842e8e76e 100644
--- a/go/vt/vttablet/tabletserver/tabletserver_test.go
+++ b/go/vt/vttablet/tabletserver/tabletserver_test.go
@@ -304,8 +304,8 @@ func TestTabletServerCreateTransaction(t *testing.T) {
defer closer()
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
- db.AddQueryPattern(fmt.Sprintf("insert into _vt\\.dt_state\\(dtid, state, time_created\\) values \\('aa', %d,.*", int(querypb.TransactionState_PREPARE)), &sqltypes.Result{})
- db.AddQueryPattern("insert into _vt\\.dt_participant\\(dtid, id, keyspace, shard\\) values \\('aa', 1,.*", &sqltypes.Result{})
+ db.AddQueryPattern(fmt.Sprintf("insert into _vt\\.dt_state\\(dtid, state, time_created\\) values \\(_binary'aa', %d,.*", int(querypb.TransactionState_PREPARE)), &sqltypes.Result{})
+ db.AddQueryPattern("insert into _vt\\.dt_participant\\(dtid, id, keyspace, shard\\) values \\(_binary'aa', 1,.*", &sqltypes.Result{})
err := tsv.CreateTransaction(ctx, &target, "aa", []*querypb.Target{{
Keyspace: "t1",
Shard: "0",
@@ -320,7 +320,7 @@ func TestTabletServerStartCommit(t *testing.T) {
defer closer()
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
- commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = 'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
+ commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
db.AddQuery(commitTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
err := tsv.StartCommit(ctx, &target, txid, "aa")
@@ -339,7 +339,7 @@ func TestTabletserverSetRollback(t *testing.T) {
defer closer()
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
- rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = 'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
+ rollbackTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_ROLLBACK), int(querypb.TransactionState_PREPARE))
db.AddQuery(rollbackTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
err := tsv.SetRollback(ctx, &target, "aa", txid)
@@ -358,7 +358,7 @@ func TestTabletServerReadTransaction(t *testing.T) {
defer closer()
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", &sqltypes.Result{})
got, err := tsv.ReadTransaction(ctx, &target, "aa")
require.NoError(t, err)
want := &querypb.TransactionMetadata{}
@@ -376,8 +376,8 @@ func TestTabletServerReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
- db.AddQuery("select keyspace, shard from _vt.dt_participant where dtid = 'aa'", &sqltypes.Result{
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
+ db.AddQuery("select keyspace, shard from _vt.dt_participant where dtid = _binary'aa'", &sqltypes.Result{
Fields: []*querypb.Field{
{Type: sqltypes.VarBinary},
{Type: sqltypes.VarBinary},
@@ -420,7 +420,7 @@ func TestTabletServerReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
want.State = querypb.TransactionState_COMMIT
got, err = tsv.ReadTransaction(ctx, &target, "aa")
require.NoError(t, err)
@@ -438,7 +438,7 @@ func TestTabletServerReadTransaction(t *testing.T) {
sqltypes.NewVarBinary("1"),
}},
}
- db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = 'aa'", txResult)
+ db.AddQuery("select dtid, state, time_created from _vt.dt_state where dtid = _binary'aa'", txResult)
want.State = querypb.TransactionState_ROLLBACK
got, err = tsv.ReadTransaction(ctx, &target, "aa")
require.NoError(t, err)
@@ -452,8 +452,8 @@ func TestTabletServerConcludeTransaction(t *testing.T) {
defer closer()
target := querypb.Target{TabletType: topodatapb.TabletType_PRIMARY}
- db.AddQuery("delete from _vt.dt_state where dtid = 'aa'", &sqltypes.Result{})
- db.AddQuery("delete from _vt.dt_participant where dtid = 'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.dt_state where dtid = _binary'aa'", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.dt_participant where dtid = _binary'aa'", &sqltypes.Result{})
err := tsv.ConcludeTransaction(ctx, &target, "aa")
require.NoError(t, err)
}
diff --git a/go/vt/vttablet/tabletserver/twopc.go b/go/vt/vttablet/tabletserver/twopc.go
index 5eff30ce07e..577c10e55de 100644
--- a/go/vt/vttablet/tabletserver/twopc.go
+++ b/go/vt/vttablet/tabletserver/twopc.go
@@ -171,7 +171,7 @@ func (tpc *TwoPC) Close() {
// SaveRedo saves the statements in the redo log using the supplied connection.
func (tpc *TwoPC) SaveRedo(ctx context.Context, conn *StatefulConnection, dtid string, queries []tx.Query) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
"state": sqltypes.Int64BindVariable(RedoStatePrepared),
"time_created": sqltypes.Int64BindVariable(time.Now().UnixNano()),
}
@@ -202,7 +202,7 @@ func (tpc *TwoPC) SaveRedo(ctx context.Context, conn *StatefulConnection, dtid s
// UpdateRedo changes the state of the redo log for the dtid.
func (tpc *TwoPC) UpdateRedo(ctx context.Context, conn *StatefulConnection, dtid string, state int, message string) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
"state": sqltypes.Int64BindVariable(int64(state)),
"message": sqltypes.StringBindVariable(message),
}
@@ -213,7 +213,7 @@ func (tpc *TwoPC) UpdateRedo(ctx context.Context, conn *StatefulConnection, dtid
// DeleteRedo deletes the redo log for the dtid.
func (tpc *TwoPC) DeleteRedo(ctx context.Context, conn *StatefulConnection, dtid string) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
}
_, err := tpc.exec(ctx, conn, tpc.deleteRedoTx, bindVars)
if err != nil {
@@ -291,7 +291,7 @@ func (tpc *TwoPC) CountUnresolvedRedo(ctx context.Context, unresolvedTime time.T
// CreateTransaction saves the metadata of a 2pc transaction as Prepared.
func (tpc *TwoPC) CreateTransaction(ctx context.Context, conn *StatefulConnection, dtid string, participants []*querypb.Target) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
"state": sqltypes.Int64BindVariable(int64(DTStatePrepare)),
"cur_time": sqltypes.Int64BindVariable(time.Now().UnixNano()),
}
@@ -324,7 +324,7 @@ func (tpc *TwoPC) CreateTransaction(ctx context.Context, conn *StatefulConnectio
// If the transaction is not a in the Prepare state, an error is returned.
func (tpc *TwoPC) Transition(ctx context.Context, conn *StatefulConnection, dtid string, state querypb.TransactionState) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
"state": sqltypes.Int64BindVariable(int64(state)),
"prepare": sqltypes.Int64BindVariable(int64(querypb.TransactionState_PREPARE)),
}
@@ -341,7 +341,7 @@ func (tpc *TwoPC) Transition(ctx context.Context, conn *StatefulConnection, dtid
// DeleteTransaction deletes the metadata for the specified transaction.
func (tpc *TwoPC) DeleteTransaction(ctx context.Context, conn *StatefulConnection, dtid string) error {
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
}
_, err := tpc.exec(ctx, conn, tpc.deleteTransaction, bindVars)
if err != nil {
@@ -361,7 +361,7 @@ func (tpc *TwoPC) ReadTransaction(ctx context.Context, dtid string) (*querypb.Tr
result := &querypb.TransactionMetadata{}
bindVars := map[string]*querypb.BindVariable{
- "dtid": sqltypes.StringBindVariable(dtid),
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
}
qr, err := tpc.read(ctx, conn.Conn, tpc.readTransaction, bindVars)
if err != nil {
diff --git a/go/vt/vttablet/tabletserver/tx_engine_test.go b/go/vt/vttablet/tabletserver/tx_engine_test.go
index 10af5974c34..f4dd0596691 100644
--- a/go/vt/vttablet/tabletserver/tx_engine_test.go
+++ b/go/vt/vttablet/tabletserver/tx_engine_test.go
@@ -625,43 +625,43 @@ func TestCheckReceivedError(t *testing.T) {
}{{
receivedErr: vterrors.New(vtrpcpb.Code_DEADLINE_EXCEEDED, "deadline exceeded"),
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = 'deadline exceeded' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = 'deadline exceeded' where dtid = _binary'aa'`,
}, {
receivedErr: vterrors.New(vtrpcpb.Code_INVALID_ARGUMENT, "invalid argument"),
retryable: false,
- expQuery: `update _vt.redo_state set state = 0, message = 'invalid argument' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 0, message = 'invalid argument' where dtid = _binary'aa'`,
}, {
receivedErr: sqlerror.NewSQLError(sqlerror.ERLockDeadlock, sqlerror.SSLockDeadlock, "Deadlock found when trying to get lock; try restarting transaction"),
retryable: false,
- expQuery: `update _vt.redo_state set state = 0, message = 'Deadlock found when trying to get lock; try restarting transaction (errno 1213) (sqlstate 40001)' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 0, message = 'Deadlock found when trying to get lock; try restarting transaction (errno 1213) (sqlstate 40001)' where dtid = _binary'aa'`,
}, {
receivedErr: context.DeadlineExceeded,
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = 'context deadline exceeded' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = 'context deadline exceeded' where dtid = _binary'aa'`,
}, {
receivedErr: context.Canceled,
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = 'context canceled' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = 'context canceled' where dtid = _binary'aa'`,
}, {
receivedErr: sqlerror.NewSQLError(sqlerror.CRServerLost, sqlerror.SSUnknownSQLState, "Lost connection to MySQL server during query"),
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = 'Lost connection to MySQL server during query (errno 2013) (sqlstate HY000)' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = 'Lost connection to MySQL server during query (errno 2013) (sqlstate HY000)' where dtid = _binary'aa'`,
}, {
receivedErr: sqlerror.NewSQLError(sqlerror.CRMalformedPacket, sqlerror.SSUnknownSQLState, "Malformed packet"),
retryable: false,
- expQuery: `update _vt.redo_state set state = 0, message = 'Malformed packet (errno 2027) (sqlstate HY000)' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 0, message = 'Malformed packet (errno 2027) (sqlstate HY000)' where dtid = _binary'aa'`,
}, {
receivedErr: sqlerror.NewSQLError(sqlerror.CRServerGone, sqlerror.SSUnknownSQLState, "Server has gone away"),
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = 'Server has gone away (errno 2006) (sqlstate HY000)' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = 'Server has gone away (errno 2006) (sqlstate HY000)' where dtid = _binary'aa'`,
}, {
receivedErr: vterrors.New(vtrpcpb.Code_ABORTED, "Row count exceeded"),
retryable: false,
- expQuery: `update _vt.redo_state set state = 0, message = 'Row count exceeded' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 0, message = 'Row count exceeded' where dtid = _binary'aa'`,
}, {
receivedErr: errors.New("(errno 2013) (sqlstate HY000) lost connection"),
retryable: true,
- expQuery: `update _vt.redo_state set state = 1, message = '(errno 2013) (sqlstate HY000) lost connection' where dtid = 'aa'`,
+ expQuery: `update _vt.redo_state set state = 1, message = '(errno 2013) (sqlstate HY000) lost connection' where dtid = _binary'aa'`,
}}
for _, tc := range tcases {
diff --git a/go/vt/vttablet/tabletserver/vstreamer/rowstreamer_test.go b/go/vt/vttablet/tabletserver/vstreamer/rowstreamer_test.go
index 2c75c4a73b0..47db5fb839a 100644
--- a/go/vt/vttablet/tabletserver/vstreamer/rowstreamer_test.go
+++ b/go/vt/vttablet/tabletserver/vstreamer/rowstreamer_test.go
@@ -202,7 +202,7 @@ func TestStreamRowsScan(t *testing.T) {
`fields:{name:"id" type:INT32 table:"t3" org_table:"t3" database:"vttest" org_name:"id" column_length:11 charset:63 column_type:"int(11)"} fields:{name:"val" type:VARBINARY table:"t3" org_table:"t3" database:"vttest" org_name:"val" column_length:128 charset:63 column_type:"varbinary(128)"} pkfields:{name:"id" type:INT32 charset:63} pkfields:{name:"val" type:VARBINARY charset:63}`,
`rows:{lengths:1 lengths:3 values:"2bbb"} lastpk:{lengths:1 lengths:3 values:"2bbb"}`,
}
- wantQuery = "select /*+ MAX_EXECUTION_TIME(3600000) */ id, val from t3 where (id = 1 and val > 'aaa') or (id > 1) order by id, val"
+ wantQuery = "select /*+ MAX_EXECUTION_TIME(3600000) */ id, val from t3 where (id = 1 and val > _binary'aaa') or (id > 1) order by id, val"
checkStream(t, "select * from t3", []sqltypes.Value{sqltypes.NewInt64(1), sqltypes.NewVarBinary("aaa")}, wantQuery, wantStream)
// t4: all rows
From 11a655ca06a7add5b9184a9830bc5dea1f987cb7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9s=20Taylor?=
Date: Wed, 23 Oct 2024 17:17:43 +0200
Subject: [PATCH 09/78] bugfix: treat EXPLAIN like SELECT (#17054)
Signed-off-by: Andres Taylor
---
go/vt/vttablet/endtoend/queries_test.go | 14 +++++++++++
.../vttablet/tabletserver/planbuilder/plan.go | 7 +++++-
.../planbuilder/testdata/exec_cases.txt | 23 +++++++++++--------
3 files changed, 33 insertions(+), 11 deletions(-)
diff --git a/go/vt/vttablet/endtoend/queries_test.go b/go/vt/vttablet/endtoend/queries_test.go
index 5a57f681a10..f67d3219010 100644
--- a/go/vt/vttablet/endtoend/queries_test.go
+++ b/go/vt/vttablet/endtoend/queries_test.go
@@ -121,6 +121,20 @@ var TestQueryCases = []framework.Testable{
},
RowsReturned: 1,
},
+ &framework.TestCase{
+ Name: "explain with bindvars",
+ Query: "explain select :__vtudvp as `@p` from dual",
+ BindVars: map[string]*querypb.BindVariable{
+ "__vtudvp": sqltypes.Int64BindVariable(1),
+ },
+ Result: [][]string{
+ {"1", "SIMPLE", "", "", "", "", "", "", "", "", "", "No tables used"},
+ },
+ Rewritten: []string{
+ "explain select 1 as `@p` from dual",
+ },
+ RowsReturned: 1,
+ },
&framework.TestCase{
Name: "limit",
Query: "select /* limit */ eid, id from vitess_a limit :a",
diff --git a/go/vt/vttablet/tabletserver/planbuilder/plan.go b/go/vt/vttablet/tabletserver/planbuilder/plan.go
index db17500ae19..5dbabcc8763 100644
--- a/go/vt/vttablet/tabletserver/planbuilder/plan.go
+++ b/go/vt/vttablet/tabletserver/planbuilder/plan.go
@@ -231,7 +231,12 @@ func Build(env *vtenv.Environment, statement sqlparser.Statement, tables map[str
case *sqlparser.Show:
plan, err = analyzeShow(stmt, dbName)
case *sqlparser.Analyze, sqlparser.Explain:
- plan = &Plan{PlanID: PlanOtherRead}
+ // Analyze and Explain are treated as read-only queries.
+ // We send down a string, and get a table result back.
+ plan = &Plan{
+ PlanID: PlanSelect,
+ FullQuery: GenerateFullQuery(stmt),
+ }
case *sqlparser.OtherAdmin:
plan = &Plan{PlanID: PlanOtherAdmin}
case *sqlparser.Savepoint:
diff --git a/go/vt/vttablet/tabletserver/planbuilder/testdata/exec_cases.txt b/go/vt/vttablet/tabletserver/planbuilder/testdata/exec_cases.txt
index cafbe43231d..f549f506ad3 100644
--- a/go/vt/vttablet/tabletserver/planbuilder/testdata/exec_cases.txt
+++ b/go/vt/vttablet/tabletserver/planbuilder/testdata/exec_cases.txt
@@ -763,14 +763,15 @@ options:PassthroughDMLs
# analyze
"analyze table a"
{
- "PlanID": "OtherRead",
+ "PlanID": "Select",
"TableName": "",
"Permissions": [
- {
- "TableName": "a",
- "Role": 1
- }
- ]
+ {
+ "TableName": "a",
+ "Role": 1
+ }
+ ],
+ "FullQuery": "analyze table a"
}
# show
@@ -783,15 +784,17 @@ options:PassthroughDMLs
# describe
"describe a"
{
- "PlanID": "OtherRead",
- "TableName": ""
+ "PlanID": "Select",
+ "TableName": "",
+ "FullQuery": "explain a"
}
# explain
"explain a"
{
- "PlanID": "OtherRead",
- "TableName": ""
+ "PlanID": "Select",
+ "TableName": "",
+ "FullQuery": "explain a"
}
# repair
From be0bca33f89b9212abede7d9479933fbc5db9cde Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Thu, 24 Oct 2024 07:03:02 +0530
Subject: [PATCH 10/78] Only run sidecardb change detection on serving primary
tablets (#17051)
Signed-off-by: Manan Gupta
---
.../endtoend/vreplication/sidecardb_test.go | 4 ++--
go/vt/vttablet/tabletserver/schema/engine.go | 7 ++++---
.../tabletserver/schema/engine_test.go | 18 +++++++++++++++++-
go/vt/vttablet/tabletserver/state_manager.go | 14 +++++++-------
.../tabletserver/state_manager_test.go | 2 +-
5 files changed, 31 insertions(+), 14 deletions(-)
diff --git a/go/test/endtoend/vreplication/sidecardb_test.go b/go/test/endtoend/vreplication/sidecardb_test.go
index 391f7d60246..be9ce67a626 100644
--- a/go/test/endtoend/vreplication/sidecardb_test.go
+++ b/go/test/endtoend/vreplication/sidecardb_test.go
@@ -91,7 +91,7 @@ func TestSidecarDB(t *testing.T) {
prs(t, keyspace, shard)
currentPrimary = tablet101
- expectedChanges100 += numChanges
+ expectedChanges101 += numChanges
validateSidecarDBTables(t, tablet100, sidecarDBTables)
validateSidecarDBTables(t, tablet101, sidecarDBTables)
require.Equal(t, expectedChanges100, getNumExecutedDDLQueries(t, tablet100Port))
@@ -100,7 +100,7 @@ func TestSidecarDB(t *testing.T) {
t.Run("modify schema, prs, and self heal on new primary", func(t *testing.T) {
numChanges := modifySidecarDBSchema(t, vc, currentPrimary, ddls1)
- expectedChanges101 += numChanges
+ expectedChanges100 += numChanges
prs(t, keyspace, shard)
// nolint
currentPrimary = tablet100
diff --git a/go/vt/vttablet/tabletserver/schema/engine.go b/go/vt/vttablet/tabletserver/schema/engine.go
index aadba5739c8..afb28080167 100644
--- a/go/vt/vttablet/tabletserver/schema/engine.go
+++ b/go/vt/vttablet/tabletserver/schema/engine.go
@@ -180,14 +180,15 @@ func (se *Engine) syncSidecarDB(ctx context.Context, conn *dbconnpool.DBConnecti
// EnsureConnectionAndDB ensures that we can connect to mysql.
// If tablet type is primary and there is no db, then the database is created.
// This function can be called before opening the Engine.
-func (se *Engine) EnsureConnectionAndDB(tabletType topodatapb.TabletType) error {
+func (se *Engine) EnsureConnectionAndDB(tabletType topodatapb.TabletType, serving bool) error {
ctx := tabletenv.LocalContext()
// We use AllPrivs since syncSidecarDB() might need to upgrade the schema
conn, err := dbconnpool.NewDBConnection(ctx, se.env.Config().DB.AllPrivsWithDB())
if err == nil {
se.dbCreationFailed = false
// upgrade sidecar db if required, for a tablet with an existing database
- if tabletType == topodatapb.TabletType_PRIMARY {
+ // only run DDL updates when a PRIMARY is transitioning to serving state.
+ if tabletType == topodatapb.TabletType_PRIMARY && serving {
if err := se.syncSidecarDB(ctx, conn); err != nil {
conn.Close()
return err
@@ -196,7 +197,7 @@ func (se *Engine) EnsureConnectionAndDB(tabletType topodatapb.TabletType) error
conn.Close()
return nil
}
- if tabletType != topodatapb.TabletType_PRIMARY {
+ if tabletType != topodatapb.TabletType_PRIMARY || !serving {
return err
}
if merr, isSQLErr := err.(*sqlerror.SQLError); !isSQLErr || merr.Num != sqlerror.ERBadDb {
diff --git a/go/vt/vttablet/tabletserver/schema/engine_test.go b/go/vt/vttablet/tabletserver/schema/engine_test.go
index 1c32b7acf73..caaf505779d 100644
--- a/go/vt/vttablet/tabletserver/schema/engine_test.go
+++ b/go/vt/vttablet/tabletserver/schema/engine_test.go
@@ -42,6 +42,7 @@ import (
"vitess.io/vitess/go/stats"
"vitess.io/vitess/go/test/utils"
"vitess.io/vitess/go/vt/dbconfigs"
+ topodatapb "vitess.io/vitess/go/vt/proto/topodata"
"vitess.io/vitess/go/vt/sqlparser"
"vitess.io/vitess/go/vt/vtenv"
"vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
@@ -95,6 +96,19 @@ func TestOpenAndReload(t *testing.T) {
assert.Equal(t, int64(0), se.tableFileSizeGauge.Counts()["msg"])
assert.Equal(t, int64(0), se.tableAllocatedSizeGauge.Counts()["msg"])
+ t.Run("EnsureConnectionAndDB", func(t *testing.T) {
+ // Verify that none of the following configurations run any schema change detection queries -
+ // 1. REPLICA serving
+ // 2. REPLICA non-serving
+ // 3. PRIMARY serving
+ err := se.EnsureConnectionAndDB(topodatapb.TabletType_REPLICA, true)
+ require.NoError(t, err)
+ err = se.EnsureConnectionAndDB(topodatapb.TabletType_PRIMARY, false)
+ require.NoError(t, err)
+ err = se.EnsureConnectionAndDB(topodatapb.TabletType_REPLICA, false)
+ require.NoError(t, err)
+ })
+
// Advance time some more.
db.AddQuery("select unix_timestamp()", sqltypes.MakeTestResult(sqltypes.MakeTestFields(
"t",
@@ -626,8 +640,10 @@ func newEngine(reloadTime time.Duration, idleTimeout time.Duration, schemaMaxAge
cfg.OlapReadPool.IdleTimeout = idleTimeout
cfg.TxPool.IdleTimeout = idleTimeout
cfg.SchemaVersionMaxAgeSeconds = schemaMaxAgeSeconds
+ dbConfigs := newDBConfigs(db)
+ cfg.DB = dbConfigs
se := NewEngine(tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "SchemaTest"))
- se.InitDBConfig(newDBConfigs(db).DbaWithDB())
+ se.InitDBConfig(dbConfigs.DbaWithDB())
return se
}
diff --git a/go/vt/vttablet/tabletserver/state_manager.go b/go/vt/vttablet/tabletserver/state_manager.go
index 3fe78457b60..cae6a237dc8 100644
--- a/go/vt/vttablet/tabletserver/state_manager.go
+++ b/go/vt/vttablet/tabletserver/state_manager.go
@@ -140,7 +140,7 @@ type stateManager struct {
type (
schemaEngine interface {
- EnsureConnectionAndDB(topodatapb.TabletType) error
+ EnsureConnectionAndDB(topodatapb.TabletType, bool) error
Open() error
MakeNonPrimary()
MakePrimary(bool)
@@ -447,7 +447,7 @@ func (sm *stateManager) verifyTargetLocked(ctx context.Context, target *querypb.
func (sm *stateManager) servePrimary() error {
sm.watcher.Close()
- if err := sm.connect(topodatapb.TabletType_PRIMARY); err != nil {
+ if err := sm.connect(topodatapb.TabletType_PRIMARY, true); err != nil {
return err
}
@@ -476,7 +476,7 @@ func (sm *stateManager) unservePrimary() error {
sm.watcher.Close()
- if err := sm.connect(topodatapb.TabletType_PRIMARY); err != nil {
+ if err := sm.connect(topodatapb.TabletType_PRIMARY, false); err != nil {
return err
}
@@ -500,7 +500,7 @@ func (sm *stateManager) serveNonPrimary(wantTabletType topodatapb.TabletType) er
sm.se.MakeNonPrimary()
sm.hs.MakeNonPrimary()
- if err := sm.connect(wantTabletType); err != nil {
+ if err := sm.connect(wantTabletType, true); err != nil {
return err
}
@@ -518,7 +518,7 @@ func (sm *stateManager) unserveNonPrimary(wantTabletType topodatapb.TabletType)
sm.se.MakeNonPrimary()
sm.hs.MakeNonPrimary()
- if err := sm.connect(wantTabletType); err != nil {
+ if err := sm.connect(wantTabletType, false); err != nil {
return err
}
@@ -528,8 +528,8 @@ func (sm *stateManager) unserveNonPrimary(wantTabletType topodatapb.TabletType)
return nil
}
-func (sm *stateManager) connect(tabletType topodatapb.TabletType) error {
- if err := sm.se.EnsureConnectionAndDB(tabletType); err != nil {
+func (sm *stateManager) connect(tabletType topodatapb.TabletType, serving bool) error {
+ if err := sm.se.EnsureConnectionAndDB(tabletType, serving); err != nil {
return err
}
if err := sm.se.Open(); err != nil {
diff --git a/go/vt/vttablet/tabletserver/state_manager_test.go b/go/vt/vttablet/tabletserver/state_manager_test.go
index f70e77de710..df819c6f05c 100644
--- a/go/vt/vttablet/tabletserver/state_manager_test.go
+++ b/go/vt/vttablet/tabletserver/state_manager_test.go
@@ -809,7 +809,7 @@ type testSchemaEngine struct {
failMySQL bool
}
-func (te *testSchemaEngine) EnsureConnectionAndDB(tabletType topodatapb.TabletType) error {
+func (te *testSchemaEngine) EnsureConnectionAndDB(topodatapb.TabletType, bool) error {
if te.failMySQL {
te.failMySQL = false
return errors.New("intentional error")
From 6ad9898793aee4bf67fdf19906f79949789036f4 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Fri, 25 Oct 2024 15:02:33 +0530
Subject: [PATCH 11/78] fix: flaky test on twopc transaction (#17068)
Signed-off-by: Harshit Gangal
---
.../endtoend/transaction/twopc/main_test.go | 36 +++++++++----------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/go/test/endtoend/transaction/twopc/main_test.go b/go/test/endtoend/transaction/twopc/main_test.go
index eaf835e678e..e7818e3088d 100644
--- a/go/test/endtoend/transaction/twopc/main_test.go
+++ b/go/test/endtoend/transaction/twopc/main_test.go
@@ -227,24 +227,21 @@ func getStatement(stmt string) string {
}
func runVStream(t *testing.T, ctx context.Context, ch chan *binlogdatapb.VEvent, vtgateConn *vtgateconn.VTGateConn) {
- vgtid := &binlogdatapb.VGtid{
- ShardGtids: []*binlogdatapb.ShardGtid{
- {Keyspace: keyspaceName, Shard: "-40", Gtid: "current"},
- {Keyspace: keyspaceName, Shard: "40-80", Gtid: "current"},
- {Keyspace: keyspaceName, Shard: "80-", Gtid: "current"},
- }}
- filter := &binlogdatapb.Filter{
- Rules: []*binlogdatapb.Rule{{
- Match: "/.*/",
- }},
+ shards := []string{"-40", "40-80", "80-"}
+ shardGtids := make([]*binlogdatapb.ShardGtid, 0, len(shards))
+ var seen = make(map[string]bool, len(shards))
+ var wg sync.WaitGroup
+ for _, shard := range shards {
+ shardGtids = append(shardGtids, &binlogdatapb.ShardGtid{Keyspace: keyspaceName, Shard: shard, Gtid: "current"})
+ seen[shard] = false
+ wg.Add(1)
}
+ vgtid := &binlogdatapb.VGtid{ShardGtids: shardGtids}
+ filter := &binlogdatapb.Filter{Rules: []*binlogdatapb.Rule{{Match: "/.*/"}}}
+
vReader, err := vtgateConn.VStream(ctx, topodatapb.TabletType_PRIMARY, vgtid, filter, nil)
require.NoError(t, err)
- // Use a channel to signal that the first VGTID event has been processed
- firstEventProcessed := make(chan struct{})
- var once sync.Once
-
go func() {
for {
evs, err := vReader.Recv()
@@ -254,9 +251,12 @@ func runVStream(t *testing.T, ctx context.Context, ch chan *binlogdatapb.VEvent,
require.NoError(t, err)
for _, ev := range evs {
- // Signal the first event has been processed using sync.Once
+ // Mark VGTID event from each shard seen.
if ev.Type == binlogdatapb.VEventType_VGTID {
- once.Do(func() { close(firstEventProcessed) })
+ if !seen[ev.Shard] {
+ seen[ev.Shard] = true
+ wg.Done()
+ }
}
if ev.Type == binlogdatapb.VEventType_ROW || ev.Type == binlogdatapb.VEventType_FIELD {
ch <- ev
@@ -265,8 +265,8 @@ func runVStream(t *testing.T, ctx context.Context, ch chan *binlogdatapb.VEvent,
}
}()
- // Wait for the first event to be processed
- <-firstEventProcessed
+ // Wait for VGTID event from all shards
+ wg.Wait()
}
func retrieveTransitions(t *testing.T, ch chan *binlogdatapb.VEvent, tableMap map[string][]*querypb.Field, dtMap map[string]string) map[string][]string {
From 4e385ced9cd0334acf8e5dd69b0ab86b080375d4 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Sun, 27 Oct 2024 09:39:17 +0200
Subject: [PATCH 12/78] Online DDL: better error messages in cut-over phase
(#17052)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/vttablet/onlineddl/executor.go | 74 +++++++++++++++-------------
1 file changed, 40 insertions(+), 34 deletions(-)
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index 22dd9447bb9..b430345bfac 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -785,7 +785,7 @@ func (e *Executor) killTableLockHoldersAndAccessors(ctx context.Context, tableNa
}
rs, err := conn.Conn.ExecuteFetch(query, -1, true)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "finding queries potentially operating on table")
}
log.Infof("killTableLockHoldersAndAccessors: found %v potential queries", len(rs.Rows))
@@ -841,7 +841,7 @@ func (e *Executor) killTableLockHoldersAndAccessors(ctx context.Context, tableNa
}
rs, err := conn.Conn.ExecuteFetch(query, -1, true)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "finding transactions locking table")
}
log.Infof("killTableLockHoldersAndAccessors: found %v locking transactions", len(rs.Rows))
for _, row := range rs.Named().Rows {
@@ -861,7 +861,7 @@ func (e *Executor) killTableLockHoldersAndAccessors(ctx context.Context, tableNa
// cutOverVReplMigration stops vreplication, then removes the _vt.vreplication entry for the given migration
func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, shouldForceCutOver bool) error {
if err := e.incrementCutoverAttempts(ctx, s.workflow); err != nil {
- return err
+ return vterrors.Wrapf(err, "cutover: failed incrementing cutover attempts")
}
tmClient := e.tabletManagerClient()
@@ -870,19 +870,19 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// sanity checks:
vreplTable, err := getVreplTable(s)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "cutover: failed getting vreplication table")
}
// get topology client & entities:
tablet, err := e.ts.GetTablet(ctx, e.tabletAlias)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "cutover: failed reading vreplication table")
}
// information about source tablet
onlineDDL, _, err := e.readMigration(ctx, s.workflow)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "cutover: failed reading migration")
}
isVreplicationTestSuite := onlineDDL.StrategySetting().IsVreplicationTestSuite()
e.updateMigrationStage(ctx, onlineDDL.UUID, "starting cut-over")
@@ -896,7 +896,10 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
defer cancel()
// Wait for target to reach the up-to-date pos
if err := tmClient.VReplicationWaitForPos(ctx, tablet.Tablet, s.id, replication.EncodePosition(pos)); err != nil {
- return err
+ if s, _ := e.readVReplStream(ctx, s.workflow, true); s != nil {
+ err = vterrors.Wrapf(err, "read vrepl position %v", s.pos)
+ }
+ return vterrors.Wrapf(err, "failed waiting for position %v", replication.EncodePosition(pos))
}
// Target is now in sync with source!
return nil
@@ -910,14 +913,14 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// in that place as possible.
sentryTableName, err = schema.GenerateGCTableName(schema.HoldTableGCState, newGCTableRetainTime())
if err != nil {
- return nil
+ return vterrors.Wrapf(err, "failed creating sentry table name")
}
// We create the sentry table before toggling writes, because this involves a WaitForPos, which takes some time. We
// don't want to overload the buffering time with this excessive wait.
if err := e.updateArtifacts(ctx, onlineDDL.UUID, sentryTableName); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed updating artifacts with sentry table name")
}
dropSentryTableQuery := sqlparser.BuildParsedQuery(sqlDropTableIfExists, sentryTableName)
@@ -941,30 +944,30 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}()
parsed := sqlparser.BuildParsedQuery(sqlCreateSentryTable, sentryTableName)
if _, err := e.execQuery(ctx, parsed.Query); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed creating sentry table")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "sentry table created: %s", sentryTableName)
postSentryPos, err := e.primaryPosition(ctx)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed getting primary pos after sentry creation")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-sentry pos: %v", replication.EncodePosition(postSentryPos))
if err := waitForPos(s, postSentryPos); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed waiting for pos after sentry creation")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "post-sentry pos reached")
}
lockConn, err := e.pool.Get(ctx, nil)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed getting locking connection")
}
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
// The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*migrationCutOverThreshold)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed setting lock_wait_timeout on locking connection")
}
defer lockConn.Recycle()
defer lockConnRestoreLockWaitTimeout()
@@ -974,13 +977,13 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
renameWasSuccessful := false
renameConn, err := e.pool.Get(ctx, nil)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed getting rename connection")
}
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
// The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
renameConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, renameConn.Conn, 5*migrationCutOverThreshold*4)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed setting lock_wait_timeout on rename connection")
}
defer renameConn.Recycle()
defer func() {
@@ -996,7 +999,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// See if backend MySQL server supports 'rename_table_preserve_foreign_key' variable
preserveFKSupported, err := e.isPreserveForeignKeySupported(ctx)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed checking for 'rename_table_preserve_foreign_key' support")
}
if preserveFKSupported {
// This code is only applicable when MySQL supports the 'rename_table_preserve_foreign_key' variable. This variable
@@ -1019,7 +1022,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
for {
renameProcessFound, err := e.doesConnectionInfoMatch(renameWaitCtx, renameConn.Conn.ID(), "rename")
if err != nil {
- return err
+ return vterrors.Wrapf(err, "searching for rename process")
}
if renameProcessFound {
return nil
@@ -1053,7 +1056,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
bufferingContextCancel()
// force re-read of tables
if err := tmClient.RefreshState(grpcCtx, tablet.Tablet); err != nil {
- return err
+ return vterrors.Wrapf(err, "refreshing table state")
}
}
log.Infof("toggled buffering: %t in migration %v", bufferQueries, onlineDDL.UUID)
@@ -1073,7 +1076,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
err = toggleBuffering(true)
defer reenableWritesOnce()
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed enabling buffering")
}
// Give a fraction of a second for a scenario where a query is in
// query executor, it passed the ACLs and is _about to_ execute. This will be nicer to those queries:
@@ -1086,10 +1089,10 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// We should only proceed with forceful cut over if there is no pending atomic transaction for the table.
// This will help in keeping the atomicity guarantee of a prepared transaction.
if err := e.checkOnPreparedPool(ctx, onlineDDL.Table, 100*time.Millisecond); err != nil {
- return err
+ return vterrors.Wrapf(err, "checking prepared pool for table")
}
if err := e.killTableLockHoldersAndAccessors(ctx, onlineDDL.Table); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed killing table lock holders and accessors")
}
}
@@ -1112,7 +1115,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
defer cancel()
lockTableQuery := sqlparser.BuildParsedQuery(sqlLockTwoTablesWrite, sentryTableName, onlineDDL.Table)
if _, err := lockConn.Conn.Exec(lockCtx, lockTableQuery.Query, 1, false); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed locking tables")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "renaming tables")
@@ -1124,7 +1127,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// the rename should block, because of the LOCK. Wait for it to show up.
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for RENAME to block")
if err := waitForRenameProcess(); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed waiting for rename process")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "RENAME found")
}
@@ -1132,7 +1135,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
e.updateMigrationStage(ctx, onlineDDL.UUID, "reading post-lock pos")
postWritesPos, err := e.primaryPosition(ctx)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed reading pos after locking")
}
// Right now: new queries are buffered, any existing query will have executed, and worst case scenario is
@@ -1144,19 +1147,19 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// Writes are now disabled on table. Read up-to-date vreplication info, specifically to get latest (and fixed) pos:
s, err = e.readVReplStream(ctx, s.workflow, false)
if err != nil {
- return err
+ return vterrors.Wrapf(err, "failed reading vreplication table after locking")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-lock pos: %v", replication.EncodePosition(postWritesPos))
if err := waitForPos(s, postWritesPos); err != nil {
e.updateMigrationStage(ctx, onlineDDL.UUID, "timeout while waiting for post-lock pos: %v", err)
- return err
+ return vterrors.Wrapf(err, "failed waiting for pos after locking")
}
go log.Infof("cutOverVReplMigration %v: done waiting for position %v", s.workflow, replication.EncodePosition(postWritesPos))
// Stop vreplication
e.updateMigrationStage(ctx, onlineDDL.UUID, "stopping vreplication")
if _, err := e.vreplicationExec(ctx, tablet.Tablet, binlogplayer.StopVReplication(s.id, "stopped for online DDL cutover")); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed stopping vreplication")
}
go log.Infof("cutOverVReplMigration %v: stopped vreplication", s.workflow)
@@ -1173,7 +1176,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
} else {
e.updateMigrationStage(ctx, onlineDDL.UUID, "validating rename is still in place")
if err := waitForRenameProcess(); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed waiting for rename process before dropping sentry table")
}
// Normal (non-testing) alter table
@@ -1184,7 +1187,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
defer cancel()
if _, err := lockConn.Conn.Exec(lockCtx, dropTableQuery.Query, 1, false); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed dropping sentry table")
}
}
{
@@ -1192,7 +1195,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
defer cancel()
e.updateMigrationStage(ctx, onlineDDL.UUID, "unlocking tables")
if _, err := lockConn.Conn.Exec(lockCtx, sqlUnlockTables, 1, false); err != nil {
- return err
+ return vterrors.Wrapf(err, "failed unlocking tables")
}
}
{
@@ -1200,7 +1203,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
defer cancel()
e.updateMigrationStage(lockCtx, onlineDDL.UUID, "waiting for RENAME to complete")
if err := <-renameCompleteChan; err != nil {
- return err
+ return vterrors.Wrapf(err, "failed waiting for rename to complete")
}
renameWasSuccessful = true
}
@@ -3784,8 +3787,10 @@ func (e *Executor) reviewRunningMigrations(ctx context.Context) (countRunnning i
if err := e.cutOverVReplMigration(ctx, s, shouldForceCutOver); err != nil {
_ = e.updateMigrationMessage(ctx, uuid, err.Error())
log.Errorf("cutOverVReplMigration failed: err=%v", err)
- if merr, ok := err.(*sqlerror.SQLError); ok {
- switch merr.Num {
+
+ if sqlErr, isSQLErr := sqlerror.NewSQLErrorFromError(err).(*sqlerror.SQLError); isSQLErr && sqlErr != nil {
+ // let's see if this error is actually acceptable
+ switch sqlErr.Num {
case sqlerror.ERTooLongIdent:
go e.CancelMigration(ctx, uuid, err.Error(), false)
}
@@ -5160,6 +5165,7 @@ func (e *Executor) OnSchemaMigrationStatus(ctx context.Context,
return e.onSchemaMigrationStatus(ctx, uuidParam, status, dryRun, progressPct, etaSeconds, rowsCopied, hint)
}
+// checkOnPreparedPool checks if there are any cross-shard prepared transactions on the given table
func (e *Executor) checkOnPreparedPool(ctx context.Context, table string, waitTime time.Duration) error {
if e.isPreparedPoolEmpty(table) {
return nil
From 6b3160537ede61532515442832fb814ec88b4a5c Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Mon, 28 Oct 2024 09:29:10 +0530
Subject: [PATCH 13/78] Improve errant GTID detection in ERS to handle more
cases. (#16926)
Signed-off-by: Manan Gupta
---
go/mysql/replication/replication_status.go | 28 +-
.../replication/replication_status_test.go | 30 +-
.../replication_manager/tablet_test.go | 10 +
go/vt/mysqlctl/reparent.go | 6 +
.../tabletmanagerdata/tabletmanagerdata.pb.go | 2372 +++++++++--------
.../tabletmanagerdata_vtproto.pb.go | 248 ++
.../tabletmanagerservice.pb.go | 538 ++--
.../tabletmanagerservice_grpc.pb.go | 38 +
go/vt/vtcombo/tablet_map.go | 5 +
.../testutil/test_tmclient.go | 15 +
.../reparentutil/emergency_reparenter.go | 174 +-
.../reparentutil/emergency_reparenter_test.go | 942 +++++++
go/vt/vtctl/reparentutil/replication.go | 53 +-
go/vt/vtctl/reparentutil/replication_test.go | 60 +-
go/vt/vttablet/faketmclient/fake_client.go | 5 +
go/vt/vttablet/grpctmclient/client.go | 14 +
go/vt/vttablet/grpctmserver/server.go | 11 +
go/vt/vttablet/tabletmanager/rpc_agent.go | 2 +
.../vttablet/tabletmanager/rpc_replication.go | 18 +
go/vt/vttablet/tmclient/rpc_client_api.go | 3 +
go/vt/vttablet/tmrpctest/test_tm_rpc.go | 21 +
proto/tabletmanagerdata.proto | 7 +
proto/tabletmanagerservice.proto | 3 +
web/vtadmin/src/proto/vtadmin.d.ts | 188 ++
web/vtadmin/src/proto/vtadmin.js | 378 +++
25 files changed, 3652 insertions(+), 1517 deletions(-)
diff --git a/go/mysql/replication/replication_status.go b/go/mysql/replication/replication_status.go
index 751eccb6633..b79ae3dc262 100644
--- a/go/mysql/replication/replication_status.go
+++ b/go/mysql/replication/replication_status.go
@@ -178,41 +178,33 @@ func ProtoToReplicationStatus(s *replicationdatapb.Status) ReplicationStatus {
}
// FindErrantGTIDs can be used to find errant GTIDs in the receiver's relay log, by comparing it against all known replicas,
-// provided as a list of ReplicationStatus's. This method only works if the flavor for all retrieved ReplicationStatus's is MySQL.
+// provided as a list of Positions. This method only works if the flavor for all retrieved Positions is MySQL.
// The result is returned as a Mysql56GTIDSet, each of whose elements is a found errant GTID.
// This function is best effort in nature. If it marks something as errant, then it is for sure errant. But there may be cases of errant GTIDs, which aren't caught by this function.
-func (s *ReplicationStatus) FindErrantGTIDs(otherReplicaStatuses []*ReplicationStatus) (Mysql56GTIDSet, error) {
- if len(otherReplicaStatuses) == 0 {
+func FindErrantGTIDs(position Position, sourceUUID SID, otherPositions []Position) (Mysql56GTIDSet, error) {
+ if len(otherPositions) == 0 {
// If there is nothing to compare this replica against, then we must assume that its GTID set is the correct one.
return nil, nil
}
- relayLogSet, ok := s.RelayLogPosition.GTIDSet.(Mysql56GTIDSet)
+ gtidSet, ok := position.GTIDSet.(Mysql56GTIDSet)
if !ok {
return nil, fmt.Errorf("errant GTIDs can only be computed on the MySQL flavor")
}
- otherSets := make([]Mysql56GTIDSet, 0, len(otherReplicaStatuses))
- for _, status := range otherReplicaStatuses {
- otherSet, ok := status.RelayLogPosition.GTIDSet.(Mysql56GTIDSet)
+ otherSets := make([]Mysql56GTIDSet, 0, len(otherPositions))
+ for _, pos := range otherPositions {
+ otherSet, ok := pos.GTIDSet.(Mysql56GTIDSet)
if !ok {
panic("The receiver ReplicationStatus contained a Mysql56GTIDSet in its relay log, but a replica's ReplicationStatus is of another flavor. This should never happen.")
}
otherSets = append(otherSets, otherSet)
}
- if len(otherSets) == 1 {
- // If there is only one replica to compare against, and one is a subset of the other, then we consider them not to be errant.
- // It simply means that one replica might be behind on replication.
- if relayLogSet.Contains(otherSets[0]) || otherSets[0].Contains(relayLogSet) {
- return nil, nil
- }
- }
-
// Copy set for final diffSet so we don't mutate receiver.
- diffSet := make(Mysql56GTIDSet, len(relayLogSet))
- for sid, intervals := range relayLogSet {
- if sid == s.SourceUUID {
+ diffSet := make(Mysql56GTIDSet, len(gtidSet))
+ for sid, intervals := range gtidSet {
+ if sid == sourceUUID {
continue
}
diffSet[sid] = intervals
diff --git a/go/mysql/replication/replication_status_test.go b/go/mysql/replication/replication_status_test.go
index 659da9f9273..8b458f76803 100644
--- a/go/mysql/replication/replication_status_test.go
+++ b/go/mysql/replication/replication_status_test.go
@@ -86,14 +86,14 @@ func TestFindErrantGTIDs(t *testing.T) {
}
testcases := []struct {
- mainRepStatus *ReplicationStatus
- otherRepStatuses []*ReplicationStatus
- want Mysql56GTIDSet
+ mainRepStatus *ReplicationStatus
+ otherPositions []Position
+ want Mysql56GTIDSet
}{{
mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set1}},
- otherRepStatuses: []*ReplicationStatus{
- {SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set2}},
- {SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set3}},
+ otherPositions: []Position{
+ {GTIDSet: set2},
+ {GTIDSet: set3},
},
want: Mysql56GTIDSet{
sid1: []interval{{39, 39}, {40, 49}, {71, 75}},
@@ -101,25 +101,27 @@ func TestFindErrantGTIDs(t *testing.T) {
sid4: []interval{{1, 30}},
},
}, {
- mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set1}},
- otherRepStatuses: []*ReplicationStatus{{SourceUUID: sid1, RelayLogPosition: Position{GTIDSet: set1}}},
+ mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set1}},
+ otherPositions: []Position{{GTIDSet: set1}},
// servers with the same GTID sets should not be diagnosed with errant GTIDs
want: nil,
}, {
- mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set2}},
- otherRepStatuses: []*ReplicationStatus{{SourceUUID: sid1, RelayLogPosition: Position{GTIDSet: set3}}},
+ mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set2}},
+ otherPositions: []Position{{GTIDSet: set3}},
// set2 is a strict subset of set3
want: nil,
}, {
- mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set3}},
- otherRepStatuses: []*ReplicationStatus{{SourceUUID: sid1, RelayLogPosition: Position{GTIDSet: set2}}},
+ mainRepStatus: &ReplicationStatus{SourceUUID: sourceSID, RelayLogPosition: Position{GTIDSet: set3}},
+ otherPositions: []Position{{GTIDSet: set2}},
// set3 is a strict superset of set2
- want: nil,
+ want: Mysql56GTIDSet{
+ sid1: []interval{{38, 38}, {61, 70}},
+ },
}}
for _, testcase := range testcases {
t.Run("", func(t *testing.T) {
- got, err := testcase.mainRepStatus.FindErrantGTIDs(testcase.otherRepStatuses)
+ got, err := FindErrantGTIDs(testcase.mainRepStatus.RelayLogPosition, testcase.mainRepStatus.SourceUUID, testcase.otherPositions)
require.NoError(t, err)
require.Equal(t, testcase.want, got)
})
diff --git a/go/test/endtoend/tabletmanager/replication_manager/tablet_test.go b/go/test/endtoend/tabletmanager/replication_manager/tablet_test.go
index 86b02244762..df8c1f26c4e 100644
--- a/go/test/endtoend/tabletmanager/replication_manager/tablet_test.go
+++ b/go/test/endtoend/tabletmanager/replication_manager/tablet_test.go
@@ -205,3 +205,13 @@ func TestReplicationRepairAfterPrimaryTabletChange(t *testing.T) {
// sidecardb should find the desired _vt schema and not apply any new creates or upgrades when the tablet comes up again
require.Equal(t, sidecarDDLCount, int64(0))
}
+
+func TestReparentJournalInfo(t *testing.T) {
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+ defer cancel()
+ for _, vttablet := range clusterInstance.Keyspaces[0].Shards[0].Vttablets {
+ length, err := tmClient.ReadReparentJournalInfo(ctx, getTablet(vttablet.GrpcPort))
+ require.NoError(t, err)
+ require.EqualValues(t, 1, length)
+ }
+}
diff --git a/go/vt/mysqlctl/reparent.go b/go/vt/mysqlctl/reparent.go
index 08326390f97..9c7e0f91361 100644
--- a/go/vt/mysqlctl/reparent.go
+++ b/go/vt/mysqlctl/reparent.go
@@ -22,6 +22,7 @@ This file contains the reparenting methods for mysqlctl.
import (
"context"
+ "fmt"
"time"
"vitess.io/vitess/go/constants/sidecar"
@@ -53,6 +54,11 @@ func PopulateReparentJournal(timeCreatedNS int64, actionName, primaryAlias strin
timeCreatedNS, actionName, primaryAlias, posStr).Query
}
+// ReadReparentJournalInfoQuery returns the query we use to read information required from Reparent Journal.
+func ReadReparentJournalInfoQuery() string {
+ return fmt.Sprintf("SELECT COUNT(*) FROM %s.reparent_journal", sidecar.GetIdentifier())
+}
+
// queryReparentJournal returns the SQL query to use to query the database
// for a reparent_journal row.
func queryReparentJournal(timeCreatedNS int64) string {
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
index d28bad7c508..13aeac113c4 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
@@ -4302,6 +4302,91 @@ func (*PopulateReparentJournalResponse) Descriptor() ([]byte, []int) {
return file_tabletmanagerdata_proto_rawDescGZIP(), []int{83}
}
+type ReadReparentJournalInfoRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ReadReparentJournalInfoRequest) Reset() {
+ *x = ReadReparentJournalInfoRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ReadReparentJournalInfoRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ReadReparentJournalInfoRequest) ProtoMessage() {}
+
+func (x *ReadReparentJournalInfoRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ReadReparentJournalInfoRequest.ProtoReflect.Descriptor instead.
+func (*ReadReparentJournalInfoRequest) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{84}
+}
+
+type ReadReparentJournalInfoResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Length int32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"`
+}
+
+func (x *ReadReparentJournalInfoResponse) Reset() {
+ *x = ReadReparentJournalInfoResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ReadReparentJournalInfoResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ReadReparentJournalInfoResponse) ProtoMessage() {}
+
+func (x *ReadReparentJournalInfoResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ReadReparentJournalInfoResponse.ProtoReflect.Descriptor instead.
+func (*ReadReparentJournalInfoResponse) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{85}
+}
+
+func (x *ReadReparentJournalInfoResponse) GetLength() int32 {
+ if x != nil {
+ return x.Length
+ }
+ return 0
+}
+
type InitReplicaRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -4316,7 +4401,7 @@ type InitReplicaRequest struct {
func (x *InitReplicaRequest) Reset() {
*x = InitReplicaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ mi := &file_tabletmanagerdata_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4329,7 +4414,7 @@ func (x *InitReplicaRequest) String() string {
func (*InitReplicaRequest) ProtoMessage() {}
func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ mi := &file_tabletmanagerdata_proto_msgTypes[86]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4342,7 +4427,7 @@ func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitReplicaRequest.ProtoReflect.Descriptor instead.
func (*InitReplicaRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{84}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{86}
}
func (x *InitReplicaRequest) GetParent() *topodata.TabletAlias {
@@ -4382,7 +4467,7 @@ type InitReplicaResponse struct {
func (x *InitReplicaResponse) Reset() {
*x = InitReplicaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ mi := &file_tabletmanagerdata_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4395,7 +4480,7 @@ func (x *InitReplicaResponse) String() string {
func (*InitReplicaResponse) ProtoMessage() {}
func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ mi := &file_tabletmanagerdata_proto_msgTypes[87]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4408,7 +4493,7 @@ func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitReplicaResponse.ProtoReflect.Descriptor instead.
func (*InitReplicaResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{85}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{87}
}
type DemotePrimaryRequest struct {
@@ -4420,7 +4505,7 @@ type DemotePrimaryRequest struct {
func (x *DemotePrimaryRequest) Reset() {
*x = DemotePrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[86]
+ mi := &file_tabletmanagerdata_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4433,7 +4518,7 @@ func (x *DemotePrimaryRequest) String() string {
func (*DemotePrimaryRequest) ProtoMessage() {}
func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[86]
+ mi := &file_tabletmanagerdata_proto_msgTypes[88]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4446,7 +4531,7 @@ func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DemotePrimaryRequest.ProtoReflect.Descriptor instead.
func (*DemotePrimaryRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{86}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{88}
}
type DemotePrimaryResponse struct {
@@ -4461,7 +4546,7 @@ type DemotePrimaryResponse struct {
func (x *DemotePrimaryResponse) Reset() {
*x = DemotePrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[87]
+ mi := &file_tabletmanagerdata_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4474,7 +4559,7 @@ func (x *DemotePrimaryResponse) String() string {
func (*DemotePrimaryResponse) ProtoMessage() {}
func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[87]
+ mi := &file_tabletmanagerdata_proto_msgTypes[89]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4487,7 +4572,7 @@ func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DemotePrimaryResponse.ProtoReflect.Descriptor instead.
func (*DemotePrimaryResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{87}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{89}
}
func (x *DemotePrimaryResponse) GetPrimaryStatus() *replicationdata.PrimaryStatus {
@@ -4508,7 +4593,7 @@ type UndoDemotePrimaryRequest struct {
func (x *UndoDemotePrimaryRequest) Reset() {
*x = UndoDemotePrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[88]
+ mi := &file_tabletmanagerdata_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4521,7 +4606,7 @@ func (x *UndoDemotePrimaryRequest) String() string {
func (*UndoDemotePrimaryRequest) ProtoMessage() {}
func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[88]
+ mi := &file_tabletmanagerdata_proto_msgTypes[90]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4534,7 +4619,7 @@ func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UndoDemotePrimaryRequest.ProtoReflect.Descriptor instead.
func (*UndoDemotePrimaryRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{88}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{90}
}
func (x *UndoDemotePrimaryRequest) GetSemiSync() bool {
@@ -4553,7 +4638,7 @@ type UndoDemotePrimaryResponse struct {
func (x *UndoDemotePrimaryResponse) Reset() {
*x = UndoDemotePrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[89]
+ mi := &file_tabletmanagerdata_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4566,7 +4651,7 @@ func (x *UndoDemotePrimaryResponse) String() string {
func (*UndoDemotePrimaryResponse) ProtoMessage() {}
func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[89]
+ mi := &file_tabletmanagerdata_proto_msgTypes[91]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4579,7 +4664,7 @@ func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UndoDemotePrimaryResponse.ProtoReflect.Descriptor instead.
func (*UndoDemotePrimaryResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{89}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{91}
}
type ReplicaWasPromotedRequest struct {
@@ -4591,7 +4676,7 @@ type ReplicaWasPromotedRequest struct {
func (x *ReplicaWasPromotedRequest) Reset() {
*x = ReplicaWasPromotedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[90]
+ mi := &file_tabletmanagerdata_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4604,7 +4689,7 @@ func (x *ReplicaWasPromotedRequest) String() string {
func (*ReplicaWasPromotedRequest) ProtoMessage() {}
func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[90]
+ mi := &file_tabletmanagerdata_proto_msgTypes[92]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4617,7 +4702,7 @@ func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasPromotedRequest.ProtoReflect.Descriptor instead.
func (*ReplicaWasPromotedRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{90}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{92}
}
type ReplicaWasPromotedResponse struct {
@@ -4629,7 +4714,7 @@ type ReplicaWasPromotedResponse struct {
func (x *ReplicaWasPromotedResponse) Reset() {
*x = ReplicaWasPromotedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[91]
+ mi := &file_tabletmanagerdata_proto_msgTypes[93]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4642,7 +4727,7 @@ func (x *ReplicaWasPromotedResponse) String() string {
func (*ReplicaWasPromotedResponse) ProtoMessage() {}
func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[91]
+ mi := &file_tabletmanagerdata_proto_msgTypes[93]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4655,7 +4740,7 @@ func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasPromotedResponse.ProtoReflect.Descriptor instead.
func (*ReplicaWasPromotedResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{91}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{93}
}
type ResetReplicationParametersRequest struct {
@@ -4667,7 +4752,7 @@ type ResetReplicationParametersRequest struct {
func (x *ResetReplicationParametersRequest) Reset() {
*x = ResetReplicationParametersRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[92]
+ mi := &file_tabletmanagerdata_proto_msgTypes[94]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4680,7 +4765,7 @@ func (x *ResetReplicationParametersRequest) String() string {
func (*ResetReplicationParametersRequest) ProtoMessage() {}
func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[92]
+ mi := &file_tabletmanagerdata_proto_msgTypes[94]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4693,7 +4778,7 @@ func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use ResetReplicationParametersRequest.ProtoReflect.Descriptor instead.
func (*ResetReplicationParametersRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{92}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{94}
}
type ResetReplicationParametersResponse struct {
@@ -4705,7 +4790,7 @@ type ResetReplicationParametersResponse struct {
func (x *ResetReplicationParametersResponse) Reset() {
*x = ResetReplicationParametersResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[93]
+ mi := &file_tabletmanagerdata_proto_msgTypes[95]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4718,7 +4803,7 @@ func (x *ResetReplicationParametersResponse) String() string {
func (*ResetReplicationParametersResponse) ProtoMessage() {}
func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[93]
+ mi := &file_tabletmanagerdata_proto_msgTypes[95]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4731,7 +4816,7 @@ func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ResetReplicationParametersResponse.ProtoReflect.Descriptor instead.
func (*ResetReplicationParametersResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{93}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{95}
}
type FullStatusRequest struct {
@@ -4743,7 +4828,7 @@ type FullStatusRequest struct {
func (x *FullStatusRequest) Reset() {
*x = FullStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[94]
+ mi := &file_tabletmanagerdata_proto_msgTypes[96]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4756,7 +4841,7 @@ func (x *FullStatusRequest) String() string {
func (*FullStatusRequest) ProtoMessage() {}
func (x *FullStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[94]
+ mi := &file_tabletmanagerdata_proto_msgTypes[96]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4769,7 +4854,7 @@ func (x *FullStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FullStatusRequest.ProtoReflect.Descriptor instead.
func (*FullStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{94}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{96}
}
type FullStatusResponse struct {
@@ -4783,7 +4868,7 @@ type FullStatusResponse struct {
func (x *FullStatusResponse) Reset() {
*x = FullStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[95]
+ mi := &file_tabletmanagerdata_proto_msgTypes[97]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4796,7 +4881,7 @@ func (x *FullStatusResponse) String() string {
func (*FullStatusResponse) ProtoMessage() {}
func (x *FullStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[95]
+ mi := &file_tabletmanagerdata_proto_msgTypes[97]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4809,7 +4894,7 @@ func (x *FullStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FullStatusResponse.ProtoReflect.Descriptor instead.
func (*FullStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{95}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{97}
}
func (x *FullStatusResponse) GetStatus() *replicationdata.FullStatus {
@@ -4835,7 +4920,7 @@ type SetReplicationSourceRequest struct {
func (x *SetReplicationSourceRequest) Reset() {
*x = SetReplicationSourceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[96]
+ mi := &file_tabletmanagerdata_proto_msgTypes[98]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4848,7 +4933,7 @@ func (x *SetReplicationSourceRequest) String() string {
func (*SetReplicationSourceRequest) ProtoMessage() {}
func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[96]
+ mi := &file_tabletmanagerdata_proto_msgTypes[98]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4861,7 +4946,7 @@ func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationSourceRequest.ProtoReflect.Descriptor instead.
func (*SetReplicationSourceRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{96}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{98}
}
func (x *SetReplicationSourceRequest) GetParent() *topodata.TabletAlias {
@@ -4915,7 +5000,7 @@ type SetReplicationSourceResponse struct {
func (x *SetReplicationSourceResponse) Reset() {
*x = SetReplicationSourceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[97]
+ mi := &file_tabletmanagerdata_proto_msgTypes[99]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4928,7 +5013,7 @@ func (x *SetReplicationSourceResponse) String() string {
func (*SetReplicationSourceResponse) ProtoMessage() {}
func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[97]
+ mi := &file_tabletmanagerdata_proto_msgTypes[99]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4941,7 +5026,7 @@ func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationSourceResponse.ProtoReflect.Descriptor instead.
func (*SetReplicationSourceResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{97}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{99}
}
type ReplicaWasRestartedRequest struct {
@@ -4956,7 +5041,7 @@ type ReplicaWasRestartedRequest struct {
func (x *ReplicaWasRestartedRequest) Reset() {
*x = ReplicaWasRestartedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[98]
+ mi := &file_tabletmanagerdata_proto_msgTypes[100]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4969,7 +5054,7 @@ func (x *ReplicaWasRestartedRequest) String() string {
func (*ReplicaWasRestartedRequest) ProtoMessage() {}
func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[98]
+ mi := &file_tabletmanagerdata_proto_msgTypes[100]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4982,7 +5067,7 @@ func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasRestartedRequest.ProtoReflect.Descriptor instead.
func (*ReplicaWasRestartedRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{98}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{100}
}
func (x *ReplicaWasRestartedRequest) GetParent() *topodata.TabletAlias {
@@ -5001,7 +5086,7 @@ type ReplicaWasRestartedResponse struct {
func (x *ReplicaWasRestartedResponse) Reset() {
*x = ReplicaWasRestartedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[99]
+ mi := &file_tabletmanagerdata_proto_msgTypes[101]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5014,7 +5099,7 @@ func (x *ReplicaWasRestartedResponse) String() string {
func (*ReplicaWasRestartedResponse) ProtoMessage() {}
func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[99]
+ mi := &file_tabletmanagerdata_proto_msgTypes[101]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5027,7 +5112,7 @@ func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasRestartedResponse.ProtoReflect.Descriptor instead.
func (*ReplicaWasRestartedResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{99}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{101}
}
type StopReplicationAndGetStatusRequest struct {
@@ -5041,7 +5126,7 @@ type StopReplicationAndGetStatusRequest struct {
func (x *StopReplicationAndGetStatusRequest) Reset() {
*x = StopReplicationAndGetStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[100]
+ mi := &file_tabletmanagerdata_proto_msgTypes[102]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5054,7 +5139,7 @@ func (x *StopReplicationAndGetStatusRequest) String() string {
func (*StopReplicationAndGetStatusRequest) ProtoMessage() {}
func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[100]
+ mi := &file_tabletmanagerdata_proto_msgTypes[102]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5067,7 +5152,7 @@ func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use StopReplicationAndGetStatusRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationAndGetStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{100}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{102}
}
func (x *StopReplicationAndGetStatusRequest) GetStopReplicationMode() replicationdata.StopReplicationMode {
@@ -5089,7 +5174,7 @@ type StopReplicationAndGetStatusResponse struct {
func (x *StopReplicationAndGetStatusResponse) Reset() {
*x = StopReplicationAndGetStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[101]
+ mi := &file_tabletmanagerdata_proto_msgTypes[103]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5102,7 +5187,7 @@ func (x *StopReplicationAndGetStatusResponse) String() string {
func (*StopReplicationAndGetStatusResponse) ProtoMessage() {}
func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[101]
+ mi := &file_tabletmanagerdata_proto_msgTypes[103]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5115,7 +5200,7 @@ func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use StopReplicationAndGetStatusResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationAndGetStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{101}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{103}
}
func (x *StopReplicationAndGetStatusResponse) GetStatus() *replicationdata.StopReplicationStatus {
@@ -5136,7 +5221,7 @@ type PromoteReplicaRequest struct {
func (x *PromoteReplicaRequest) Reset() {
*x = PromoteReplicaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[102]
+ mi := &file_tabletmanagerdata_proto_msgTypes[104]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5149,7 +5234,7 @@ func (x *PromoteReplicaRequest) String() string {
func (*PromoteReplicaRequest) ProtoMessage() {}
func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[102]
+ mi := &file_tabletmanagerdata_proto_msgTypes[104]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5162,7 +5247,7 @@ func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PromoteReplicaRequest.ProtoReflect.Descriptor instead.
func (*PromoteReplicaRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{102}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{104}
}
func (x *PromoteReplicaRequest) GetSemiSync() bool {
@@ -5183,7 +5268,7 @@ type PromoteReplicaResponse struct {
func (x *PromoteReplicaResponse) Reset() {
*x = PromoteReplicaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[103]
+ mi := &file_tabletmanagerdata_proto_msgTypes[105]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5196,7 +5281,7 @@ func (x *PromoteReplicaResponse) String() string {
func (*PromoteReplicaResponse) ProtoMessage() {}
func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[103]
+ mi := &file_tabletmanagerdata_proto_msgTypes[105]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5209,7 +5294,7 @@ func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PromoteReplicaResponse.ProtoReflect.Descriptor instead.
func (*PromoteReplicaResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{103}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{105}
}
func (x *PromoteReplicaResponse) GetPosition() string {
@@ -5239,7 +5324,7 @@ type BackupRequest struct {
func (x *BackupRequest) Reset() {
*x = BackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[104]
+ mi := &file_tabletmanagerdata_proto_msgTypes[106]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5252,7 +5337,7 @@ func (x *BackupRequest) String() string {
func (*BackupRequest) ProtoMessage() {}
func (x *BackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[104]
+ mi := &file_tabletmanagerdata_proto_msgTypes[106]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5265,7 +5350,7 @@ func (x *BackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use BackupRequest.ProtoReflect.Descriptor instead.
func (*BackupRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{104}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{106}
}
func (x *BackupRequest) GetConcurrency() int32 {
@@ -5314,7 +5399,7 @@ type BackupResponse struct {
func (x *BackupResponse) Reset() {
*x = BackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[105]
+ mi := &file_tabletmanagerdata_proto_msgTypes[107]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5327,7 +5412,7 @@ func (x *BackupResponse) String() string {
func (*BackupResponse) ProtoMessage() {}
func (x *BackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[105]
+ mi := &file_tabletmanagerdata_proto_msgTypes[107]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5340,7 +5425,7 @@ func (x *BackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use BackupResponse.ProtoReflect.Descriptor instead.
func (*BackupResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{105}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{107}
}
func (x *BackupResponse) GetEvent() *logutil.Event {
@@ -5372,7 +5457,7 @@ type RestoreFromBackupRequest struct {
func (x *RestoreFromBackupRequest) Reset() {
*x = RestoreFromBackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[106]
+ mi := &file_tabletmanagerdata_proto_msgTypes[108]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5385,7 +5470,7 @@ func (x *RestoreFromBackupRequest) String() string {
func (*RestoreFromBackupRequest) ProtoMessage() {}
func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[106]
+ mi := &file_tabletmanagerdata_proto_msgTypes[108]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5398,7 +5483,7 @@ func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupRequest.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{106}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{108}
}
func (x *RestoreFromBackupRequest) GetBackupTime() *vttime.Time {
@@ -5447,7 +5532,7 @@ type RestoreFromBackupResponse struct {
func (x *RestoreFromBackupResponse) Reset() {
*x = RestoreFromBackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[107]
+ mi := &file_tabletmanagerdata_proto_msgTypes[109]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5460,7 +5545,7 @@ func (x *RestoreFromBackupResponse) String() string {
func (*RestoreFromBackupResponse) ProtoMessage() {}
func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[107]
+ mi := &file_tabletmanagerdata_proto_msgTypes[109]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5473,7 +5558,7 @@ func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupResponse.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{107}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{109}
}
func (x *RestoreFromBackupResponse) GetEvent() *logutil.Event {
@@ -5510,7 +5595,7 @@ type CreateVReplicationWorkflowRequest struct {
func (x *CreateVReplicationWorkflowRequest) Reset() {
*x = CreateVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[108]
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5523,7 +5608,7 @@ func (x *CreateVReplicationWorkflowRequest) String() string {
func (*CreateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[108]
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5536,7 +5621,7 @@ func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use CreateVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*CreateVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{108}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
}
func (x *CreateVReplicationWorkflowRequest) GetWorkflow() string {
@@ -5627,7 +5712,7 @@ type CreateVReplicationWorkflowResponse struct {
func (x *CreateVReplicationWorkflowResponse) Reset() {
*x = CreateVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[109]
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5640,7 +5725,7 @@ func (x *CreateVReplicationWorkflowResponse) String() string {
func (*CreateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[109]
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5653,7 +5738,7 @@ func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use CreateVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*CreateVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{109}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
}
func (x *CreateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -5679,7 +5764,7 @@ type DeleteTableDataRequest struct {
func (x *DeleteTableDataRequest) Reset() {
*x = DeleteTableDataRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5692,7 +5777,7 @@ func (x *DeleteTableDataRequest) String() string {
func (*DeleteTableDataRequest) ProtoMessage() {}
func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5705,7 +5790,7 @@ func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteTableDataRequest.ProtoReflect.Descriptor instead.
func (*DeleteTableDataRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
}
func (x *DeleteTableDataRequest) GetTableFilters() map[string]string {
@@ -5731,7 +5816,7 @@ type DeleteTableDataResponse struct {
func (x *DeleteTableDataResponse) Reset() {
*x = DeleteTableDataResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5744,7 +5829,7 @@ func (x *DeleteTableDataResponse) String() string {
func (*DeleteTableDataResponse) ProtoMessage() {}
func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5757,7 +5842,7 @@ func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteTableDataResponse.ProtoReflect.Descriptor instead.
func (*DeleteTableDataResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
}
type DeleteVReplicationWorkflowRequest struct {
@@ -5771,7 +5856,7 @@ type DeleteVReplicationWorkflowRequest struct {
func (x *DeleteVReplicationWorkflowRequest) Reset() {
*x = DeleteVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5784,7 +5869,7 @@ func (x *DeleteVReplicationWorkflowRequest) String() string {
func (*DeleteVReplicationWorkflowRequest) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5797,7 +5882,7 @@ func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
}
func (x *DeleteVReplicationWorkflowRequest) GetWorkflow() string {
@@ -5818,7 +5903,7 @@ type DeleteVReplicationWorkflowResponse struct {
func (x *DeleteVReplicationWorkflowResponse) Reset() {
*x = DeleteVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5831,7 +5916,7 @@ func (x *DeleteVReplicationWorkflowResponse) String() string {
func (*DeleteVReplicationWorkflowResponse) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5844,7 +5929,7 @@ func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
}
func (x *DeleteVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -5863,7 +5948,7 @@ type HasVReplicationWorkflowsRequest struct {
func (x *HasVReplicationWorkflowsRequest) Reset() {
*x = HasVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5876,7 +5961,7 @@ func (x *HasVReplicationWorkflowsRequest) String() string {
func (*HasVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5889,7 +5974,7 @@ func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
}
type HasVReplicationWorkflowsResponse struct {
@@ -5903,7 +5988,7 @@ type HasVReplicationWorkflowsResponse struct {
func (x *HasVReplicationWorkflowsResponse) Reset() {
*x = HasVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5916,7 +6001,7 @@ func (x *HasVReplicationWorkflowsResponse) String() string {
func (*HasVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5929,7 +6014,7 @@ func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
}
func (x *HasVReplicationWorkflowsResponse) GetHas() bool {
@@ -5955,7 +6040,7 @@ type ReadVReplicationWorkflowsRequest struct {
func (x *ReadVReplicationWorkflowsRequest) Reset() {
*x = ReadVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5968,7 +6053,7 @@ func (x *ReadVReplicationWorkflowsRequest) String() string {
func (*ReadVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5981,7 +6066,7 @@ func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
}
func (x *ReadVReplicationWorkflowsRequest) GetIncludeIds() []int32 {
@@ -6037,7 +6122,7 @@ type ReadVReplicationWorkflowsResponse struct {
func (x *ReadVReplicationWorkflowsResponse) Reset() {
*x = ReadVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6050,7 +6135,7 @@ func (x *ReadVReplicationWorkflowsResponse) String() string {
func (*ReadVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6063,7 +6148,7 @@ func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ReadVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
}
func (x *ReadVReplicationWorkflowsResponse) GetWorkflows() []*ReadVReplicationWorkflowResponse {
@@ -6084,7 +6169,7 @@ type ReadVReplicationWorkflowRequest struct {
func (x *ReadVReplicationWorkflowRequest) Reset() {
*x = ReadVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6097,7 +6182,7 @@ func (x *ReadVReplicationWorkflowRequest) String() string {
func (*ReadVReplicationWorkflowRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6110,7 +6195,7 @@ func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
}
func (x *ReadVReplicationWorkflowRequest) GetWorkflow() string {
@@ -6142,7 +6227,7 @@ type ReadVReplicationWorkflowResponse struct {
func (x *ReadVReplicationWorkflowResponse) Reset() {
*x = ReadVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6155,7 +6240,7 @@ func (x *ReadVReplicationWorkflowResponse) String() string {
func (*ReadVReplicationWorkflowResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6168,7 +6253,7 @@ func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
}
func (x *ReadVReplicationWorkflowResponse) GetWorkflow() string {
@@ -6264,7 +6349,7 @@ type ValidateVReplicationPermissionsRequest struct {
func (x *ValidateVReplicationPermissionsRequest) Reset() {
*x = ValidateVReplicationPermissionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6277,7 +6362,7 @@ func (x *ValidateVReplicationPermissionsRequest) String() string {
func (*ValidateVReplicationPermissionsRequest) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6290,7 +6375,7 @@ func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Mes
// Deprecated: Use ValidateVReplicationPermissionsRequest.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
}
type ValidateVReplicationPermissionsResponse struct {
@@ -6308,7 +6393,7 @@ type ValidateVReplicationPermissionsResponse struct {
func (x *ValidateVReplicationPermissionsResponse) Reset() {
*x = ValidateVReplicationPermissionsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6321,7 +6406,7 @@ func (x *ValidateVReplicationPermissionsResponse) String() string {
func (*ValidateVReplicationPermissionsResponse) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6334,7 +6419,7 @@ func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Me
// Deprecated: Use ValidateVReplicationPermissionsResponse.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
}
func (x *ValidateVReplicationPermissionsResponse) GetUser() string {
@@ -6367,7 +6452,7 @@ type VDiffRequest struct {
func (x *VDiffRequest) Reset() {
*x = VDiffRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6380,7 +6465,7 @@ func (x *VDiffRequest) String() string {
func (*VDiffRequest) ProtoMessage() {}
func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6393,7 +6478,7 @@ func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffRequest.ProtoReflect.Descriptor instead.
func (*VDiffRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
}
func (x *VDiffRequest) GetKeyspace() string {
@@ -6451,7 +6536,7 @@ type VDiffResponse struct {
func (x *VDiffResponse) Reset() {
*x = VDiffResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6464,7 +6549,7 @@ func (x *VDiffResponse) String() string {
func (*VDiffResponse) ProtoMessage() {}
func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6477,7 +6562,7 @@ func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffResponse.ProtoReflect.Descriptor instead.
func (*VDiffResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
}
func (x *VDiffResponse) GetId() int64 {
@@ -6515,7 +6600,7 @@ type VDiffPickerOptions struct {
func (x *VDiffPickerOptions) Reset() {
*x = VDiffPickerOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6528,7 +6613,7 @@ func (x *VDiffPickerOptions) String() string {
func (*VDiffPickerOptions) ProtoMessage() {}
func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6541,7 +6626,7 @@ func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffPickerOptions.ProtoReflect.Descriptor instead.
func (*VDiffPickerOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
}
func (x *VDiffPickerOptions) GetTabletTypes() string {
@@ -6581,7 +6666,7 @@ type VDiffReportOptions struct {
func (x *VDiffReportOptions) Reset() {
*x = VDiffReportOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6594,7 +6679,7 @@ func (x *VDiffReportOptions) String() string {
func (*VDiffReportOptions) ProtoMessage() {}
func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6607,7 +6692,7 @@ func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffReportOptions.ProtoReflect.Descriptor instead.
func (*VDiffReportOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
}
func (x *VDiffReportOptions) GetOnlyPks() bool {
@@ -6665,7 +6750,7 @@ type VDiffCoreOptions struct {
func (x *VDiffCoreOptions) Reset() {
*x = VDiffCoreOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6678,7 +6763,7 @@ func (x *VDiffCoreOptions) String() string {
func (*VDiffCoreOptions) ProtoMessage() {}
func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6691,7 +6776,7 @@ func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCoreOptions.ProtoReflect.Descriptor instead.
func (*VDiffCoreOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
}
func (x *VDiffCoreOptions) GetTables() string {
@@ -6777,7 +6862,7 @@ type VDiffOptions struct {
func (x *VDiffOptions) Reset() {
*x = VDiffOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6790,7 +6875,7 @@ func (x *VDiffOptions) String() string {
func (*VDiffOptions) ProtoMessage() {}
func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6803,7 +6888,7 @@ func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffOptions.ProtoReflect.Descriptor instead.
func (*VDiffOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
}
func (x *VDiffOptions) GetPickerOptions() *VDiffPickerOptions {
@@ -6850,7 +6935,7 @@ type UpdateVReplicationWorkflowRequest struct {
func (x *UpdateVReplicationWorkflowRequest) Reset() {
*x = UpdateVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6863,7 +6948,7 @@ func (x *UpdateVReplicationWorkflowRequest) String() string {
func (*UpdateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6876,7 +6961,7 @@ func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
}
func (x *UpdateVReplicationWorkflowRequest) GetWorkflow() string {
@@ -6939,7 +7024,7 @@ type UpdateVReplicationWorkflowResponse struct {
func (x *UpdateVReplicationWorkflowResponse) Reset() {
*x = UpdateVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6952,7 +7037,7 @@ func (x *UpdateVReplicationWorkflowResponse) String() string {
func (*UpdateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6965,7 +7050,7 @@ func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
}
func (x *UpdateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -6997,7 +7082,7 @@ type UpdateVReplicationWorkflowsRequest struct {
func (x *UpdateVReplicationWorkflowsRequest) Reset() {
*x = UpdateVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7010,7 +7095,7 @@ func (x *UpdateVReplicationWorkflowsRequest) String() string {
func (*UpdateVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7023,7 +7108,7 @@ func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
}
func (x *UpdateVReplicationWorkflowsRequest) GetAllWorkflows() bool {
@@ -7079,7 +7164,7 @@ type UpdateVReplicationWorkflowsResponse struct {
func (x *UpdateVReplicationWorkflowsResponse) Reset() {
*x = UpdateVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7092,7 +7177,7 @@ func (x *UpdateVReplicationWorkflowsResponse) String() string {
func (*UpdateVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7105,7 +7190,7 @@ func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use UpdateVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
}
func (x *UpdateVReplicationWorkflowsResponse) GetResult() *query.QueryResult {
@@ -7126,7 +7211,7 @@ type ResetSequencesRequest struct {
func (x *ResetSequencesRequest) Reset() {
*x = ResetSequencesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7139,7 +7224,7 @@ func (x *ResetSequencesRequest) String() string {
func (*ResetSequencesRequest) ProtoMessage() {}
func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7152,7 +7237,7 @@ func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesRequest.ProtoReflect.Descriptor instead.
func (*ResetSequencesRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
}
func (x *ResetSequencesRequest) GetTables() []string {
@@ -7171,7 +7256,7 @@ type ResetSequencesResponse struct {
func (x *ResetSequencesResponse) Reset() {
*x = ResetSequencesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7184,7 +7269,7 @@ func (x *ResetSequencesResponse) String() string {
func (*ResetSequencesResponse) ProtoMessage() {}
func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7197,7 +7282,7 @@ func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesResponse.ProtoReflect.Descriptor instead.
func (*ResetSequencesResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
}
type CheckThrottlerRequest struct {
@@ -7219,7 +7304,7 @@ type CheckThrottlerRequest struct {
func (x *CheckThrottlerRequest) Reset() {
*x = CheckThrottlerRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7232,7 +7317,7 @@ func (x *CheckThrottlerRequest) String() string {
func (*CheckThrottlerRequest) ProtoMessage() {}
func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7245,7 +7330,7 @@ func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerRequest.ProtoReflect.Descriptor instead.
func (*CheckThrottlerRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
}
func (x *CheckThrottlerRequest) GetAppName() string {
@@ -7315,7 +7400,7 @@ type CheckThrottlerResponse struct {
func (x *CheckThrottlerResponse) Reset() {
*x = CheckThrottlerResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7328,7 +7413,7 @@ func (x *CheckThrottlerResponse) String() string {
func (*CheckThrottlerResponse) ProtoMessage() {}
func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7341,7 +7426,7 @@ func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
}
func (x *CheckThrottlerResponse) GetStatusCode() int32 {
@@ -7423,7 +7508,7 @@ type GetThrottlerStatusRequest struct {
func (x *GetThrottlerStatusRequest) Reset() {
*x = GetThrottlerStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7436,7 +7521,7 @@ func (x *GetThrottlerStatusRequest) String() string {
func (*GetThrottlerStatusRequest) ProtoMessage() {}
func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7449,7 +7534,7 @@ func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusRequest.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{138}
}
type GetThrottlerStatusResponse struct {
@@ -7498,7 +7583,7 @@ type GetThrottlerStatusResponse struct {
func (x *GetThrottlerStatusResponse) Reset() {
*x = GetThrottlerStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7511,7 +7596,7 @@ func (x *GetThrottlerStatusResponse) String() string {
func (*GetThrottlerStatusResponse) ProtoMessage() {}
func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7524,7 +7609,7 @@ func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusResponse.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139}
}
func (x *GetThrottlerStatusResponse) GetTabletAlias() string {
@@ -7665,7 +7750,7 @@ type ChangeTagsRequest struct {
func (x *ChangeTagsRequest) Reset() {
*x = ChangeTagsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[138]
+ mi := &file_tabletmanagerdata_proto_msgTypes[140]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7678,7 +7763,7 @@ func (x *ChangeTagsRequest) String() string {
func (*ChangeTagsRequest) ProtoMessage() {}
func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[138]
+ mi := &file_tabletmanagerdata_proto_msgTypes[140]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7691,7 +7776,7 @@ func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsRequest.ProtoReflect.Descriptor instead.
func (*ChangeTagsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{138}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{140}
}
func (x *ChangeTagsRequest) GetTags() map[string]string {
@@ -7719,7 +7804,7 @@ type ChangeTagsResponse struct {
func (x *ChangeTagsResponse) Reset() {
*x = ChangeTagsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[139]
+ mi := &file_tabletmanagerdata_proto_msgTypes[141]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7732,7 +7817,7 @@ func (x *ChangeTagsResponse) String() string {
func (*ChangeTagsResponse) ProtoMessage() {}
func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[139]
+ mi := &file_tabletmanagerdata_proto_msgTypes[141]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7745,7 +7830,7 @@ func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsResponse.ProtoReflect.Descriptor instead.
func (*ChangeTagsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141}
}
func (x *ChangeTagsResponse) GetTags() map[string]string {
@@ -7779,7 +7864,7 @@ type ReadVReplicationWorkflowResponse_Stream struct {
func (x *ReadVReplicationWorkflowResponse_Stream) Reset() {
*x = ReadVReplicationWorkflowResponse_Stream{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[145]
+ mi := &file_tabletmanagerdata_proto_msgTypes[147]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7792,7 +7877,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) String() string {
func (*ReadVReplicationWorkflowResponse_Stream) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[145]
+ mi := &file_tabletmanagerdata_proto_msgTypes[147]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7805,7 +7890,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Me
// Deprecated: Use ReadVReplicationWorkflowResponse_Stream.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse_Stream) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121, 0}
}
func (x *ReadVReplicationWorkflowResponse_Stream) GetId() int32 {
@@ -7932,7 +8017,7 @@ type CheckThrottlerResponse_Metric struct {
func (x *CheckThrottlerResponse_Metric) Reset() {
*x = CheckThrottlerResponse_Metric{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[148]
+ mi := &file_tabletmanagerdata_proto_msgTypes[150]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7945,7 +8030,7 @@ func (x *CheckThrottlerResponse_Metric) String() string {
func (*CheckThrottlerResponse_Metric) ProtoMessage() {}
func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[148]
+ mi := &file_tabletmanagerdata_proto_msgTypes[150]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7958,7 +8043,7 @@ func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse_Metric.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse_Metric) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 0}
}
func (x *CheckThrottlerResponse_Metric) GetName() string {
@@ -8029,7 +8114,7 @@ type GetThrottlerStatusResponse_MetricResult struct {
func (x *GetThrottlerStatusResponse_MetricResult) Reset() {
*x = GetThrottlerStatusResponse_MetricResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[152]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8042,7 +8127,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) String() string {
func (*GetThrottlerStatusResponse_MetricResult) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[152]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8055,7 +8140,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricResult.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricResult) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 0}
}
func (x *GetThrottlerStatusResponse_MetricResult) GetValue() float64 {
@@ -8084,7 +8169,7 @@ type GetThrottlerStatusResponse_MetricHealth struct {
func (x *GetThrottlerStatusResponse_MetricHealth) Reset() {
*x = GetThrottlerStatusResponse_MetricHealth{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[153]
+ mi := &file_tabletmanagerdata_proto_msgTypes[155]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8097,7 +8182,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) String() string {
func (*GetThrottlerStatusResponse_MetricHealth) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[153]
+ mi := &file_tabletmanagerdata_proto_msgTypes[155]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8110,7 +8195,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricHealth.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricHealth) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 3}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 3}
}
func (x *GetThrottlerStatusResponse_MetricHealth) GetLastHealthyAt() *vttime.Time {
@@ -8141,7 +8226,7 @@ type GetThrottlerStatusResponse_RecentApp struct {
func (x *GetThrottlerStatusResponse_RecentApp) Reset() {
*x = GetThrottlerStatusResponse_RecentApp{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[157]
+ mi := &file_tabletmanagerdata_proto_msgTypes[159]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8154,7 +8239,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) String() string {
func (*GetThrottlerStatusResponse_RecentApp) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[157]
+ mi := &file_tabletmanagerdata_proto_msgTypes[159]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8167,7 +8252,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Messa
// Deprecated: Use GetThrottlerStatusResponse_RecentApp.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_RecentApp) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 7}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 7}
}
func (x *GetThrottlerStatusResponse_RecentApp) GetCheckedAt() *vttime.Time {
@@ -8627,728 +8712,733 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x50, 0x6f,
0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f,
- 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01,
- 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a,
- 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e,
- 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d,
- 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22,
- 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44,
- 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57,
- 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
- 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
- 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75,
- 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
- 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53,
- 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70,
- 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
- 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d,
- 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e,
- 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
- 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69,
- 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
- 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65,
- 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
+ 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a,
+ 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75,
+ 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+ 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a,
+ 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01, 0x0a, 0x12, 0x49,
+ 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
+ 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69,
+ 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16,
+ 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x18,
+ 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69,
+ 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69,
+ 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c,
+ 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d,
+ 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x6c, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x12,
+ 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73,
- 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f,
- 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65,
- 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01,
- 0x10, 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
- 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01,
- 0x0a, 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
- 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61,
- 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72,
- 0x61, 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
- 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69,
- 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
- 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75,
- 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65,
- 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74,
- 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22,
- 0xfe, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b,
- 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52,
- 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f,
- 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65,
- 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
- 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54,
- 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c,
- 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67,
- 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f,
- 0x77, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73,
- 0x22, 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a,
- 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c,
- 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62,
- 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
- 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e,
- 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65,
- 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
- 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66,
- 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65,
- 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
- 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
- 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
- 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x12, 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b,
- 0x65, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61,
- 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72,
- 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f,
- 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06,
- 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c,
- 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69,
- 0x7a, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f,
- 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22,
- 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52,
- 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73,
- 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a,
- 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65,
- 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e,
- 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
- 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
- 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a,
- 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
- 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
- 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65,
- 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
- 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
- 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
- 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x36,
+ 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77,
+ 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
+ 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x70,
+ 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73,
+ 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f,
+ 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22,
+ 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69,
+ 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69,
+ 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
+ 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a, 0x0d, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b,
+ 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23,
+ 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
+ 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72,
+ 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
+ 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x70, 0x67,
+ 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b,
+ 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48,
+ 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x88,
+ 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e,
+ 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfe, 0x01, 0x0a,
+ 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b,
+ 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x61, 0x63,
+ 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
+ 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x62, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74,
+ 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f, 0x73, 0x12, 0x17,
+ 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54,
+ 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
+ 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
+ 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
+ 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x41, 0x0a,
+ 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b,
+ 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75,
+ 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69, 0x6e, 0x6c,
+ 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e,
+ 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73,
+ 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x49,
+ 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61,
- 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64,
- 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
- 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30,
+ 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72,
+ 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65,
+ 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
+ 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f,
+ 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x41, 0x66,
+ 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x60,
+ 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x1a,
+ 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44,
+ 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x21, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x22,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21,
+ 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a,
+ 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x69, 0x6e,
+ 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75,
+ 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e,
+ 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66,
+ 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x21, 0x52, 0x65,
+ 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07,
- 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72,
- 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
- 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69,
- 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c,
- 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a,
- 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12,
- 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61,
- 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78,
- 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
- 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
- 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12,
- 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65,
- 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74,
- 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76,
- 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
- 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
- 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14,
+ 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65,
+ 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72,
+ 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,
+ 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x0d,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14,
+ 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f,
+ 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x66, 0x65,
+ 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x54,
+ 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x73,
+ 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
+ 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61,
+ 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28,
- 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66,
- 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69,
- 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
- 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a,
- 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
- 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69,
- 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
- 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65,
- 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66,
- 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72,
- 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
- 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,
- 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72,
- 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74,
- 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54,
- 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
- 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72,
- 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f,
- 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77,
- 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73,
- 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a,
- 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74,
- 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63,
- 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72,
- 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72,
- 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c,
- 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73,
- 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10,
- 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53,
- 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75,
- 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61,
- 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69,
- 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b,
- 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65,
- 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65,
- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69,
- 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
- 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed,
- 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12,
- 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
- 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88,
- 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f,
- 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52,
- 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
- 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a,
- 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
- 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
- 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08,
- 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50,
+ 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69,
+ 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a,
+ 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69,
+ 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x19, 0x0a, 0x08,
+ 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x74,
+ 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x70, 0x73,
+ 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d,
+ 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67,
+ 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x14,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
+ 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0e,
+ 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69,
+ 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+ 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x26, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+ 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
+ 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x16, 0x0a,
+ 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75,
+ 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55,
+ 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a,
+ 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12,
+ 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x76,
+ 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x12, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x65,
+ 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63,
+ 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08,
+ 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
+ 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67,
+ 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65,
+ 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d,
+ 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+ 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72,
+ 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x61,
+ 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x6f, 0x77, 0x5f,
+ 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x72, 0x75, 0x6e,
+ 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x72,
+ 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x72, 0x75, 0x6e,
+ 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x72,
+ 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74,
+ 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a,
+ 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6d,
+ 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65,
+ 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
+ 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x72,
+ 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f,
+ 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
+ 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78,
+ 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
+ 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x75, 0x74, 0x6f,
+ 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, 0x63, 0x6b, 0x65,
+ 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a,
+ 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x72, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, 0x04, 0x0a, 0x21,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a,
+ 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65,
+ 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x1b,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48,
+ 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12,
+ 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6e, 0x44,
+ 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x6e, 0x44, 0x64,
+ 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
+ 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0x42, 0x0a, 0x14,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, 0x0a, 0x22, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd6, 0x02,
0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
- 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11,
- 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02,
- 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
- 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70,
- 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15,
- 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a,
- 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
- 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f,
- 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b,
- 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69,
- 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
- 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72,
- 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68,
- 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a,
- 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b,
- 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73,
+ 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08,
+ 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a,
+ 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x52, 0x65, 0x73,
+ 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65,
+ 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
+ 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
+ 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12,
+ 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
+ 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, 0x5f, 0x69, 0x66,
+ 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73,
+ 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68,
+ 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73,
+ 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79,
+ 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
+ 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12,
+ 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52,
- 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02,
- 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
- 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74,
+ 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
+ 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
+ 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, 0x0a, 0x06, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14,
+ 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
+ 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68,
+ 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69,
+ 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6c, 0x65,
+ 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4c, 0x65,
+ 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6c,
+ 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f,
+ 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01,
+ 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
+ 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e,
+ 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74,
+ 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x67, 0x67, 0x72,
+ 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
+ 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
+ 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72,
+ 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x70,
+ 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
+ 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x61, 0x70, 0x70,
+ 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68,
0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
- 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73,
- 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69,
- 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70,
- 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e,
- 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
- 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28,
- 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74,
- 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65,
- 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
- 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66,
- 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
- 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x70,
+ 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
+ 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63,
+ 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0b, 0x72, 0x65,
+ 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41,
- 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
- 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
- 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52,
+ 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a,
+ 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65,
+ 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13,
- 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81,
+ 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12,
+ 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f,
+ 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
+ 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e,
+ 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c,
0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
- 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63,
- 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65,
- 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a,
- 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a,
- 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67,
- 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74,
- 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
- 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f,
- 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65,
- 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65,
- 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70,
- 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41,
- 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65,
- 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
- 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
- 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
- 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
- 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
- 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61,
- 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70,
- 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c,
- 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
- 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a,
- 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07,
- 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44,
- 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
- 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65,
- 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12,
- 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53,
- 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12,
- 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12,
- 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49,
- 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73,
- 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
- 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x52,
+ 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44,
+ 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41,
+ 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70,
+ 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70,
+ 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a,
+ 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
+ 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x43, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x3e,
+ 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41,
+ 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10,
+ 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x83,
+ 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
+ 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a,
+ 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02,
+ 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c,
+ 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a,
+ 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e,
+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10, 0x04,
+ 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52,
+ 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69,
+ 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -9364,7 +9454,7 @@ func file_tabletmanagerdata_proto_rawDescGZIP() []byte {
}
var file_tabletmanagerdata_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 161)
+var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 163)
var file_tabletmanagerdata_proto_goTypes = []any{
(TabletSelectionPreference)(0), // 0: tabletmanagerdata.TabletSelectionPreference
(CheckThrottlerResponseCode)(0), // 1: tabletmanagerdata.CheckThrottlerResponseCode
@@ -9452,202 +9542,204 @@ var file_tabletmanagerdata_proto_goTypes = []any{
(*InitPrimaryResponse)(nil), // 83: tabletmanagerdata.InitPrimaryResponse
(*PopulateReparentJournalRequest)(nil), // 84: tabletmanagerdata.PopulateReparentJournalRequest
(*PopulateReparentJournalResponse)(nil), // 85: tabletmanagerdata.PopulateReparentJournalResponse
- (*InitReplicaRequest)(nil), // 86: tabletmanagerdata.InitReplicaRequest
- (*InitReplicaResponse)(nil), // 87: tabletmanagerdata.InitReplicaResponse
- (*DemotePrimaryRequest)(nil), // 88: tabletmanagerdata.DemotePrimaryRequest
- (*DemotePrimaryResponse)(nil), // 89: tabletmanagerdata.DemotePrimaryResponse
- (*UndoDemotePrimaryRequest)(nil), // 90: tabletmanagerdata.UndoDemotePrimaryRequest
- (*UndoDemotePrimaryResponse)(nil), // 91: tabletmanagerdata.UndoDemotePrimaryResponse
- (*ReplicaWasPromotedRequest)(nil), // 92: tabletmanagerdata.ReplicaWasPromotedRequest
- (*ReplicaWasPromotedResponse)(nil), // 93: tabletmanagerdata.ReplicaWasPromotedResponse
- (*ResetReplicationParametersRequest)(nil), // 94: tabletmanagerdata.ResetReplicationParametersRequest
- (*ResetReplicationParametersResponse)(nil), // 95: tabletmanagerdata.ResetReplicationParametersResponse
- (*FullStatusRequest)(nil), // 96: tabletmanagerdata.FullStatusRequest
- (*FullStatusResponse)(nil), // 97: tabletmanagerdata.FullStatusResponse
- (*SetReplicationSourceRequest)(nil), // 98: tabletmanagerdata.SetReplicationSourceRequest
- (*SetReplicationSourceResponse)(nil), // 99: tabletmanagerdata.SetReplicationSourceResponse
- (*ReplicaWasRestartedRequest)(nil), // 100: tabletmanagerdata.ReplicaWasRestartedRequest
- (*ReplicaWasRestartedResponse)(nil), // 101: tabletmanagerdata.ReplicaWasRestartedResponse
- (*StopReplicationAndGetStatusRequest)(nil), // 102: tabletmanagerdata.StopReplicationAndGetStatusRequest
- (*StopReplicationAndGetStatusResponse)(nil), // 103: tabletmanagerdata.StopReplicationAndGetStatusResponse
- (*PromoteReplicaRequest)(nil), // 104: tabletmanagerdata.PromoteReplicaRequest
- (*PromoteReplicaResponse)(nil), // 105: tabletmanagerdata.PromoteReplicaResponse
- (*BackupRequest)(nil), // 106: tabletmanagerdata.BackupRequest
- (*BackupResponse)(nil), // 107: tabletmanagerdata.BackupResponse
- (*RestoreFromBackupRequest)(nil), // 108: tabletmanagerdata.RestoreFromBackupRequest
- (*RestoreFromBackupResponse)(nil), // 109: tabletmanagerdata.RestoreFromBackupResponse
- (*CreateVReplicationWorkflowRequest)(nil), // 110: tabletmanagerdata.CreateVReplicationWorkflowRequest
- (*CreateVReplicationWorkflowResponse)(nil), // 111: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*DeleteTableDataRequest)(nil), // 112: tabletmanagerdata.DeleteTableDataRequest
- (*DeleteTableDataResponse)(nil), // 113: tabletmanagerdata.DeleteTableDataResponse
- (*DeleteVReplicationWorkflowRequest)(nil), // 114: tabletmanagerdata.DeleteVReplicationWorkflowRequest
- (*DeleteVReplicationWorkflowResponse)(nil), // 115: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*HasVReplicationWorkflowsRequest)(nil), // 116: tabletmanagerdata.HasVReplicationWorkflowsRequest
- (*HasVReplicationWorkflowsResponse)(nil), // 117: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowsRequest)(nil), // 118: tabletmanagerdata.ReadVReplicationWorkflowsRequest
- (*ReadVReplicationWorkflowsResponse)(nil), // 119: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowRequest)(nil), // 120: tabletmanagerdata.ReadVReplicationWorkflowRequest
- (*ReadVReplicationWorkflowResponse)(nil), // 121: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*ValidateVReplicationPermissionsRequest)(nil), // 122: tabletmanagerdata.ValidateVReplicationPermissionsRequest
- (*ValidateVReplicationPermissionsResponse)(nil), // 123: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*VDiffRequest)(nil), // 124: tabletmanagerdata.VDiffRequest
- (*VDiffResponse)(nil), // 125: tabletmanagerdata.VDiffResponse
- (*VDiffPickerOptions)(nil), // 126: tabletmanagerdata.VDiffPickerOptions
- (*VDiffReportOptions)(nil), // 127: tabletmanagerdata.VDiffReportOptions
- (*VDiffCoreOptions)(nil), // 128: tabletmanagerdata.VDiffCoreOptions
- (*VDiffOptions)(nil), // 129: tabletmanagerdata.VDiffOptions
- (*UpdateVReplicationWorkflowRequest)(nil), // 130: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*UpdateVReplicationWorkflowResponse)(nil), // 131: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*UpdateVReplicationWorkflowsRequest)(nil), // 132: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- (*UpdateVReplicationWorkflowsResponse)(nil), // 133: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*ResetSequencesRequest)(nil), // 134: tabletmanagerdata.ResetSequencesRequest
- (*ResetSequencesResponse)(nil), // 135: tabletmanagerdata.ResetSequencesResponse
- (*CheckThrottlerRequest)(nil), // 136: tabletmanagerdata.CheckThrottlerRequest
- (*CheckThrottlerResponse)(nil), // 137: tabletmanagerdata.CheckThrottlerResponse
- (*GetThrottlerStatusRequest)(nil), // 138: tabletmanagerdata.GetThrottlerStatusRequest
- (*GetThrottlerStatusResponse)(nil), // 139: tabletmanagerdata.GetThrottlerStatusResponse
- (*ChangeTagsRequest)(nil), // 140: tabletmanagerdata.ChangeTagsRequest
- (*ChangeTagsResponse)(nil), // 141: tabletmanagerdata.ChangeTagsResponse
- nil, // 142: tabletmanagerdata.UserPermission.PrivilegesEntry
- nil, // 143: tabletmanagerdata.DbPermission.PrivilegesEntry
- nil, // 144: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
- nil, // 145: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- nil, // 146: tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
- (*ReadVReplicationWorkflowResponse_Stream)(nil), // 147: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- nil, // 148: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- nil, // 149: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- (*CheckThrottlerResponse_Metric)(nil), // 150: tabletmanagerdata.CheckThrottlerResponse.Metric
- nil, // 151: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
- (*GetThrottlerStatusResponse_MetricResult)(nil), // 152: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- nil, // 153: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- nil, // 154: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- (*GetThrottlerStatusResponse_MetricHealth)(nil), // 155: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- nil, // 156: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- nil, // 157: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- nil, // 158: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- (*GetThrottlerStatusResponse_RecentApp)(nil), // 159: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
- nil, // 160: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- nil, // 161: tabletmanagerdata.ChangeTagsRequest.TagsEntry
- nil, // 162: tabletmanagerdata.ChangeTagsResponse.TagsEntry
- (*query.Field)(nil), // 163: query.Field
- (topodata.TabletType)(0), // 164: topodata.TabletType
- (*vtrpc.CallerID)(nil), // 165: vtrpc.CallerID
- (*query.QueryResult)(nil), // 166: query.QueryResult
- (*query.TransactionMetadata)(nil), // 167: query.TransactionMetadata
- (*mysqlctl.HostMetricsResponse)(nil), // 168: mysqlctl.HostMetricsResponse
- (*replicationdata.Status)(nil), // 169: replicationdata.Status
- (*replicationdata.PrimaryStatus)(nil), // 170: replicationdata.PrimaryStatus
- (*topodata.TabletAlias)(nil), // 171: topodata.TabletAlias
- (*replicationdata.FullStatus)(nil), // 172: replicationdata.FullStatus
- (replicationdata.StopReplicationMode)(0), // 173: replicationdata.StopReplicationMode
- (*replicationdata.StopReplicationStatus)(nil), // 174: replicationdata.StopReplicationStatus
- (*logutil.Event)(nil), // 175: logutil.Event
- (*vttime.Time)(nil), // 176: vttime.Time
- (*binlogdata.BinlogSource)(nil), // 177: binlogdata.BinlogSource
- (binlogdata.VReplicationWorkflowType)(0), // 178: binlogdata.VReplicationWorkflowType
- (binlogdata.VReplicationWorkflowSubType)(0), // 179: binlogdata.VReplicationWorkflowSubType
- (binlogdata.VReplicationWorkflowState)(0), // 180: binlogdata.VReplicationWorkflowState
- (binlogdata.OnDDLAction)(0), // 181: binlogdata.OnDDLAction
- (*topodata.ThrottledAppRule)(nil), // 182: topodata.ThrottledAppRule
+ (*ReadReparentJournalInfoRequest)(nil), // 86: tabletmanagerdata.ReadReparentJournalInfoRequest
+ (*ReadReparentJournalInfoResponse)(nil), // 87: tabletmanagerdata.ReadReparentJournalInfoResponse
+ (*InitReplicaRequest)(nil), // 88: tabletmanagerdata.InitReplicaRequest
+ (*InitReplicaResponse)(nil), // 89: tabletmanagerdata.InitReplicaResponse
+ (*DemotePrimaryRequest)(nil), // 90: tabletmanagerdata.DemotePrimaryRequest
+ (*DemotePrimaryResponse)(nil), // 91: tabletmanagerdata.DemotePrimaryResponse
+ (*UndoDemotePrimaryRequest)(nil), // 92: tabletmanagerdata.UndoDemotePrimaryRequest
+ (*UndoDemotePrimaryResponse)(nil), // 93: tabletmanagerdata.UndoDemotePrimaryResponse
+ (*ReplicaWasPromotedRequest)(nil), // 94: tabletmanagerdata.ReplicaWasPromotedRequest
+ (*ReplicaWasPromotedResponse)(nil), // 95: tabletmanagerdata.ReplicaWasPromotedResponse
+ (*ResetReplicationParametersRequest)(nil), // 96: tabletmanagerdata.ResetReplicationParametersRequest
+ (*ResetReplicationParametersResponse)(nil), // 97: tabletmanagerdata.ResetReplicationParametersResponse
+ (*FullStatusRequest)(nil), // 98: tabletmanagerdata.FullStatusRequest
+ (*FullStatusResponse)(nil), // 99: tabletmanagerdata.FullStatusResponse
+ (*SetReplicationSourceRequest)(nil), // 100: tabletmanagerdata.SetReplicationSourceRequest
+ (*SetReplicationSourceResponse)(nil), // 101: tabletmanagerdata.SetReplicationSourceResponse
+ (*ReplicaWasRestartedRequest)(nil), // 102: tabletmanagerdata.ReplicaWasRestartedRequest
+ (*ReplicaWasRestartedResponse)(nil), // 103: tabletmanagerdata.ReplicaWasRestartedResponse
+ (*StopReplicationAndGetStatusRequest)(nil), // 104: tabletmanagerdata.StopReplicationAndGetStatusRequest
+ (*StopReplicationAndGetStatusResponse)(nil), // 105: tabletmanagerdata.StopReplicationAndGetStatusResponse
+ (*PromoteReplicaRequest)(nil), // 106: tabletmanagerdata.PromoteReplicaRequest
+ (*PromoteReplicaResponse)(nil), // 107: tabletmanagerdata.PromoteReplicaResponse
+ (*BackupRequest)(nil), // 108: tabletmanagerdata.BackupRequest
+ (*BackupResponse)(nil), // 109: tabletmanagerdata.BackupResponse
+ (*RestoreFromBackupRequest)(nil), // 110: tabletmanagerdata.RestoreFromBackupRequest
+ (*RestoreFromBackupResponse)(nil), // 111: tabletmanagerdata.RestoreFromBackupResponse
+ (*CreateVReplicationWorkflowRequest)(nil), // 112: tabletmanagerdata.CreateVReplicationWorkflowRequest
+ (*CreateVReplicationWorkflowResponse)(nil), // 113: tabletmanagerdata.CreateVReplicationWorkflowResponse
+ (*DeleteTableDataRequest)(nil), // 114: tabletmanagerdata.DeleteTableDataRequest
+ (*DeleteTableDataResponse)(nil), // 115: tabletmanagerdata.DeleteTableDataResponse
+ (*DeleteVReplicationWorkflowRequest)(nil), // 116: tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ (*DeleteVReplicationWorkflowResponse)(nil), // 117: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*HasVReplicationWorkflowsRequest)(nil), // 118: tabletmanagerdata.HasVReplicationWorkflowsRequest
+ (*HasVReplicationWorkflowsResponse)(nil), // 119: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowsRequest)(nil), // 120: tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ (*ReadVReplicationWorkflowsResponse)(nil), // 121: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowRequest)(nil), // 122: tabletmanagerdata.ReadVReplicationWorkflowRequest
+ (*ReadVReplicationWorkflowResponse)(nil), // 123: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*ValidateVReplicationPermissionsRequest)(nil), // 124: tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ (*ValidateVReplicationPermissionsResponse)(nil), // 125: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*VDiffRequest)(nil), // 126: tabletmanagerdata.VDiffRequest
+ (*VDiffResponse)(nil), // 127: tabletmanagerdata.VDiffResponse
+ (*VDiffPickerOptions)(nil), // 128: tabletmanagerdata.VDiffPickerOptions
+ (*VDiffReportOptions)(nil), // 129: tabletmanagerdata.VDiffReportOptions
+ (*VDiffCoreOptions)(nil), // 130: tabletmanagerdata.VDiffCoreOptions
+ (*VDiffOptions)(nil), // 131: tabletmanagerdata.VDiffOptions
+ (*UpdateVReplicationWorkflowRequest)(nil), // 132: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*UpdateVReplicationWorkflowResponse)(nil), // 133: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*UpdateVReplicationWorkflowsRequest)(nil), // 134: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ (*UpdateVReplicationWorkflowsResponse)(nil), // 135: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*ResetSequencesRequest)(nil), // 136: tabletmanagerdata.ResetSequencesRequest
+ (*ResetSequencesResponse)(nil), // 137: tabletmanagerdata.ResetSequencesResponse
+ (*CheckThrottlerRequest)(nil), // 138: tabletmanagerdata.CheckThrottlerRequest
+ (*CheckThrottlerResponse)(nil), // 139: tabletmanagerdata.CheckThrottlerResponse
+ (*GetThrottlerStatusRequest)(nil), // 140: tabletmanagerdata.GetThrottlerStatusRequest
+ (*GetThrottlerStatusResponse)(nil), // 141: tabletmanagerdata.GetThrottlerStatusResponse
+ (*ChangeTagsRequest)(nil), // 142: tabletmanagerdata.ChangeTagsRequest
+ (*ChangeTagsResponse)(nil), // 143: tabletmanagerdata.ChangeTagsResponse
+ nil, // 144: tabletmanagerdata.UserPermission.PrivilegesEntry
+ nil, // 145: tabletmanagerdata.DbPermission.PrivilegesEntry
+ nil, // 146: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ nil, // 147: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ nil, // 148: tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ (*ReadVReplicationWorkflowResponse_Stream)(nil), // 149: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ nil, // 150: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ nil, // 151: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ (*CheckThrottlerResponse_Metric)(nil), // 152: tabletmanagerdata.CheckThrottlerResponse.Metric
+ nil, // 153: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ (*GetThrottlerStatusResponse_MetricResult)(nil), // 154: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ nil, // 155: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ nil, // 156: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ (*GetThrottlerStatusResponse_MetricHealth)(nil), // 157: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ nil, // 158: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ nil, // 159: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ nil, // 160: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ (*GetThrottlerStatusResponse_RecentApp)(nil), // 161: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ nil, // 162: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ nil, // 163: tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ nil, // 164: tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ (*query.Field)(nil), // 165: query.Field
+ (topodata.TabletType)(0), // 166: topodata.TabletType
+ (*vtrpc.CallerID)(nil), // 167: vtrpc.CallerID
+ (*query.QueryResult)(nil), // 168: query.QueryResult
+ (*query.TransactionMetadata)(nil), // 169: query.TransactionMetadata
+ (*mysqlctl.HostMetricsResponse)(nil), // 170: mysqlctl.HostMetricsResponse
+ (*replicationdata.Status)(nil), // 171: replicationdata.Status
+ (*replicationdata.PrimaryStatus)(nil), // 172: replicationdata.PrimaryStatus
+ (*topodata.TabletAlias)(nil), // 173: topodata.TabletAlias
+ (*replicationdata.FullStatus)(nil), // 174: replicationdata.FullStatus
+ (replicationdata.StopReplicationMode)(0), // 175: replicationdata.StopReplicationMode
+ (*replicationdata.StopReplicationStatus)(nil), // 176: replicationdata.StopReplicationStatus
+ (*logutil.Event)(nil), // 177: logutil.Event
+ (*vttime.Time)(nil), // 178: vttime.Time
+ (*binlogdata.BinlogSource)(nil), // 179: binlogdata.BinlogSource
+ (binlogdata.VReplicationWorkflowType)(0), // 180: binlogdata.VReplicationWorkflowType
+ (binlogdata.VReplicationWorkflowSubType)(0), // 181: binlogdata.VReplicationWorkflowSubType
+ (binlogdata.VReplicationWorkflowState)(0), // 182: binlogdata.VReplicationWorkflowState
+ (binlogdata.OnDDLAction)(0), // 183: binlogdata.OnDDLAction
+ (*topodata.ThrottledAppRule)(nil), // 184: topodata.ThrottledAppRule
}
var file_tabletmanagerdata_proto_depIdxs = []int32{
- 163, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
+ 165, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
2, // 1: tabletmanagerdata.SchemaDefinition.table_definitions:type_name -> tabletmanagerdata.TableDefinition
3, // 2: tabletmanagerdata.SchemaChangeResult.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 3: tabletmanagerdata.SchemaChangeResult.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 142, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
- 143, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
+ 144, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
+ 145, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
5, // 6: tabletmanagerdata.Permissions.user_permissions:type_name -> tabletmanagerdata.UserPermission
6, // 7: tabletmanagerdata.Permissions.db_permissions:type_name -> tabletmanagerdata.DbPermission
- 144, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ 146, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
3, // 9: tabletmanagerdata.GetSchemaResponse.schema_definition:type_name -> tabletmanagerdata.SchemaDefinition
7, // 10: tabletmanagerdata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions
- 145, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- 164, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
+ 147, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ 166, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
4, // 13: tabletmanagerdata.PreflightSchemaResponse.change_results:type_name -> tabletmanagerdata.SchemaChangeResult
3, // 14: tabletmanagerdata.ApplySchemaRequest.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 15: tabletmanagerdata.ApplySchemaRequest.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 16: tabletmanagerdata.ApplySchemaResponse.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 17: tabletmanagerdata.ApplySchemaResponse.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 165, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
- 166, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
- 166, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
- 166, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
- 166, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
- 166, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
- 167, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
- 167, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
- 168, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
- 169, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
- 170, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
- 166, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
- 171, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
- 171, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
- 170, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
- 172, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
- 171, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
- 171, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
- 173, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
- 174, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
- 175, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
- 176, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
- 176, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
- 175, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
- 177, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
- 164, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 167, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
+ 168, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
+ 168, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
+ 168, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
+ 168, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
+ 168, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
+ 169, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
+ 169, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
+ 170, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
+ 171, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
+ 172, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
+ 168, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
+ 173, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
+ 173, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
+ 172, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
+ 174, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
+ 173, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
+ 173, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
+ 175, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
+ 176, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
+ 177, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
+ 178, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
+ 178, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
+ 177, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
+ 179, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
+ 166, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
0, // 44: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 178, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 179, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 166, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 146, // 48: tabletmanagerdata.DeleteTableDataRequest.table_filters:type_name -> tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
- 166, // 49: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 180, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
- 180, // 51: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
- 121, // 52: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 164, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
+ 180, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 181, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 168, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 148, // 48: tabletmanagerdata.DeleteTableDataRequest.table_filters:type_name -> tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ 168, // 49: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 182, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
+ 182, // 51: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
+ 123, // 52: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 166, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
0, // 54: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 178, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 179, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 147, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- 148, // 58: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- 129, // 59: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
- 166, // 60: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
- 126, // 61: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
- 128, // 62: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
- 127, // 63: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
- 164, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 180, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 181, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 149, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ 150, // 58: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ 131, // 59: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
+ 168, // 60: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
+ 128, // 61: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
+ 130, // 62: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
+ 129, // 63: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
+ 166, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
0, // 65: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 181, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
- 180, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 149, // 68: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- 166, // 69: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 180, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 166, // 71: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
- 151, // 72: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ 183, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
+ 182, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 151, // 68: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ 168, // 69: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 182, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 168, // 71: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
+ 153, // 72: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
1, // 73: tabletmanagerdata.CheckThrottlerResponse.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 153, // 74: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- 154, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- 156, // 76: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- 157, // 77: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- 158, // 78: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- 160, // 79: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- 161, // 80: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
- 162, // 81: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
- 177, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
- 176, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
- 176, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
- 180, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
- 176, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
- 176, // 87: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
+ 155, // 74: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ 156, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ 158, // 76: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ 159, // 77: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ 160, // 78: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ 162, // 79: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ 163, // 80: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ 164, // 81: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ 179, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
+ 178, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
+ 178, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
+ 182, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
+ 178, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
+ 178, // 87: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
1, // 88: tabletmanagerdata.CheckThrottlerResponse.Metric.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 150, // 89: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
- 152, // 90: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- 176, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
- 155, // 92: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- 182, // 93: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
- 176, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
+ 152, // 89: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
+ 154, // 90: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ 178, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
+ 157, // 92: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ 184, // 93: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
+ 178, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
1, // 95: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 159, // 96: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ 161, // 96: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
97, // [97:97] is the sub-list for method output_type
97, // [97:97] is the sub-list for method input_type
97, // [97:97] is the sub-list for extension type_name
@@ -10670,7 +10762,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaRequest); i {
+ switch v := v.(*ReadReparentJournalInfoRequest); i {
case 0:
return &v.state
case 1:
@@ -10682,7 +10774,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaResponse); i {
+ switch v := v.(*ReadReparentJournalInfoResponse); i {
case 0:
return &v.state
case 1:
@@ -10694,7 +10786,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryRequest); i {
+ switch v := v.(*InitReplicaRequest); i {
case 0:
return &v.state
case 1:
@@ -10706,7 +10798,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryResponse); i {
+ switch v := v.(*InitReplicaResponse); i {
case 0:
return &v.state
case 1:
@@ -10718,7 +10810,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryRequest); i {
+ switch v := v.(*DemotePrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -10730,7 +10822,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryResponse); i {
+ switch v := v.(*DemotePrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -10742,7 +10834,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedRequest); i {
+ switch v := v.(*UndoDemotePrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -10754,7 +10846,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedResponse); i {
+ switch v := v.(*UndoDemotePrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -10766,7 +10858,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersRequest); i {
+ switch v := v.(*ReplicaWasPromotedRequest); i {
case 0:
return &v.state
case 1:
@@ -10778,7 +10870,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersResponse); i {
+ switch v := v.(*ReplicaWasPromotedResponse); i {
case 0:
return &v.state
case 1:
@@ -10790,7 +10882,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusRequest); i {
+ switch v := v.(*ResetReplicationParametersRequest); i {
case 0:
return &v.state
case 1:
@@ -10802,7 +10894,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusResponse); i {
+ switch v := v.(*ResetReplicationParametersResponse); i {
case 0:
return &v.state
case 1:
@@ -10814,7 +10906,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceRequest); i {
+ switch v := v.(*FullStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10826,7 +10918,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceResponse); i {
+ switch v := v.(*FullStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -10838,7 +10930,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedRequest); i {
+ switch v := v.(*SetReplicationSourceRequest); i {
case 0:
return &v.state
case 1:
@@ -10850,7 +10942,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedResponse); i {
+ switch v := v.(*SetReplicationSourceResponse); i {
case 0:
return &v.state
case 1:
@@ -10862,7 +10954,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusRequest); i {
+ switch v := v.(*ReplicaWasRestartedRequest); i {
case 0:
return &v.state
case 1:
@@ -10874,7 +10966,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusResponse); i {
+ switch v := v.(*ReplicaWasRestartedResponse); i {
case 0:
return &v.state
case 1:
@@ -10886,7 +10978,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaRequest); i {
+ switch v := v.(*StopReplicationAndGetStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10898,7 +10990,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaResponse); i {
+ switch v := v.(*StopReplicationAndGetStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -10910,7 +11002,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*BackupRequest); i {
+ switch v := v.(*PromoteReplicaRequest); i {
case 0:
return &v.state
case 1:
@@ -10922,7 +11014,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*BackupResponse); i {
+ switch v := v.(*PromoteReplicaResponse); i {
case 0:
return &v.state
case 1:
@@ -10934,7 +11026,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupRequest); i {
+ switch v := v.(*BackupRequest); i {
case 0:
return &v.state
case 1:
@@ -10946,7 +11038,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupResponse); i {
+ switch v := v.(*BackupResponse); i {
case 0:
return &v.state
case 1:
@@ -10958,7 +11050,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowRequest); i {
+ switch v := v.(*RestoreFromBackupRequest); i {
case 0:
return &v.state
case 1:
@@ -10970,7 +11062,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowResponse); i {
+ switch v := v.(*RestoreFromBackupResponse); i {
case 0:
return &v.state
case 1:
@@ -10982,7 +11074,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataRequest); i {
+ switch v := v.(*CreateVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10994,7 +11086,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataResponse); i {
+ switch v := v.(*CreateVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11006,7 +11098,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowRequest); i {
+ switch v := v.(*DeleteTableDataRequest); i {
case 0:
return &v.state
case 1:
@@ -11018,7 +11110,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowResponse); i {
+ switch v := v.(*DeleteTableDataResponse); i {
case 0:
return &v.state
case 1:
@@ -11030,7 +11122,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsRequest); i {
+ switch v := v.(*DeleteVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11042,7 +11134,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsResponse); i {
+ switch v := v.(*DeleteVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11054,7 +11146,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsRequest); i {
+ switch v := v.(*HasVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11066,7 +11158,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsResponse); i {
+ switch v := v.(*HasVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11078,7 +11170,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11090,7 +11182,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11102,7 +11194,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11114,7 +11206,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11126,7 +11218,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffRequest); i {
+ switch v := v.(*ValidateVReplicationPermissionsRequest); i {
case 0:
return &v.state
case 1:
@@ -11138,7 +11230,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResponse); i {
+ switch v := v.(*ValidateVReplicationPermissionsResponse); i {
case 0:
return &v.state
case 1:
@@ -11150,7 +11242,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffPickerOptions); i {
+ switch v := v.(*VDiffRequest); i {
case 0:
return &v.state
case 1:
@@ -11162,7 +11254,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffReportOptions); i {
+ switch v := v.(*VDiffResponse); i {
case 0:
return &v.state
case 1:
@@ -11174,7 +11266,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCoreOptions); i {
+ switch v := v.(*VDiffPickerOptions); i {
case 0:
return &v.state
case 1:
@@ -11186,7 +11278,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffOptions); i {
+ switch v := v.(*VDiffReportOptions); i {
case 0:
return &v.state
case 1:
@@ -11198,7 +11290,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowRequest); i {
+ switch v := v.(*VDiffCoreOptions); i {
case 0:
return &v.state
case 1:
@@ -11210,7 +11302,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowResponse); i {
+ switch v := v.(*VDiffOptions); i {
case 0:
return &v.state
case 1:
@@ -11222,7 +11314,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11234,7 +11326,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11246,7 +11338,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11258,7 +11350,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[133].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11270,7 +11362,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[134].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerRequest); i {
+ switch v := v.(*ResetSequencesRequest); i {
case 0:
return &v.state
case 1:
@@ -11282,7 +11374,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse); i {
+ switch v := v.(*ResetSequencesResponse); i {
case 0:
return &v.state
case 1:
@@ -11294,7 +11386,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusRequest); i {
+ switch v := v.(*CheckThrottlerRequest); i {
case 0:
return &v.state
case 1:
@@ -11306,7 +11398,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[137].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse); i {
+ switch v := v.(*CheckThrottlerResponse); i {
case 0:
return &v.state
case 1:
@@ -11318,7 +11410,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[138].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTagsRequest); i {
+ switch v := v.(*GetThrottlerStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -11330,6 +11422,30 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[139].Exporter = func(v any, i int) any {
+ switch v := v.(*GetThrottlerStatusResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[140].Exporter = func(v any, i int) any {
+ switch v := v.(*ChangeTagsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[141].Exporter = func(v any, i int) any {
switch v := v.(*ChangeTagsResponse); i {
case 0:
return &v.state
@@ -11341,7 +11457,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[145].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[147].Exporter = func(v any, i int) any {
switch v := v.(*ReadVReplicationWorkflowResponse_Stream); i {
case 0:
return &v.state
@@ -11353,7 +11469,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[148].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[150].Exporter = func(v any, i int) any {
switch v := v.(*CheckThrottlerResponse_Metric); i {
case 0:
return &v.state
@@ -11365,7 +11481,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[150].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[152].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricResult); i {
case 0:
return &v.state
@@ -11377,7 +11493,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[153].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[155].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricHealth); i {
case 0:
return &v.state
@@ -11389,7 +11505,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[157].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[159].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_RecentApp); i {
case 0:
return &v.state
@@ -11402,17 +11518,17 @@ func file_tabletmanagerdata_proto_init() {
}
}
}
- file_tabletmanagerdata_proto_msgTypes[104].OneofWrappers = []any{}
- file_tabletmanagerdata_proto_msgTypes[126].OneofWrappers = []any{}
+ file_tabletmanagerdata_proto_msgTypes[106].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[128].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[130].OneofWrappers = []any{}
+ file_tabletmanagerdata_proto_msgTypes[132].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tabletmanagerdata_proto_rawDesc,
NumEnums: 2,
- NumMessages: 161,
+ NumMessages: 163,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
index 185255208fa..d4ffe4ad655 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
@@ -1600,6 +1600,39 @@ func (m *PopulateReparentJournalResponse) CloneMessageVT() proto.Message {
return m.CloneVT()
}
+func (m *ReadReparentJournalInfoRequest) CloneVT() *ReadReparentJournalInfoRequest {
+ if m == nil {
+ return (*ReadReparentJournalInfoRequest)(nil)
+ }
+ r := new(ReadReparentJournalInfoRequest)
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ReadReparentJournalInfoRequest) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ReadReparentJournalInfoResponse) CloneVT() *ReadReparentJournalInfoResponse {
+ if m == nil {
+ return (*ReadReparentJournalInfoResponse)(nil)
+ }
+ r := new(ReadReparentJournalInfoResponse)
+ r.Length = m.Length
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ReadReparentJournalInfoResponse) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
func (m *InitReplicaRequest) CloneVT() *InitReplicaRequest {
if m == nil {
return (*InitReplicaRequest)(nil)
@@ -6631,6 +6664,77 @@ func (m *PopulateReparentJournalResponse) MarshalToSizedBufferVT(dAtA []byte) (i
return len(dAtA) - i, nil
}
+func (m *ReadReparentJournalInfoRequest) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ReadReparentJournalInfoRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ReadReparentJournalInfoRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ReadReparentJournalInfoResponse) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ReadReparentJournalInfoResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ReadReparentJournalInfoResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Length != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Length))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *InitReplicaRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@@ -11569,6 +11673,29 @@ func (m *PopulateReparentJournalResponse) SizeVT() (n int) {
return n
}
+func (m *ReadReparentJournalInfoRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ReadReparentJournalInfoResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Length != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Length))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
func (m *InitReplicaRequest) SizeVT() (n int) {
if m == nil {
return 0
@@ -20777,6 +20904,127 @@ func (m *PopulateReparentJournalResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
+func (m *ReadReparentJournalInfoRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ReadReparentJournalInfoRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ReadReparentJournalInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *ReadReparentJournalInfoResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ReadReparentJournalInfoResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ReadReparentJournalInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Length", wireType)
+ }
+ m.Length = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Length |= int32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *InitReplicaRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
index 58d4065c26f..564c6f2e0ba 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
@@ -45,7 +45,7 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x1a, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa0, 0x39, 0x0a, 0x0d,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa5, 0x3a, 0x0a, 0x0d,
0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x49, 0x0a,
0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65,
@@ -405,109 +405,117 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49,
- 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
- 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x55, 0x6e,
- 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12,
- 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
- 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
- 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
- 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,
- 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69,
+ 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69,
+ 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44,
+ 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x70, 0x0a, 0x11, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+ 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74,
0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x14,
- 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x2d,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74,
- 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
- 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x06, 0x42, 0x61, 0x63,
- 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11,
- 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75,
- 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f,
- 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61,
- 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01,
- 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
- 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f,
- 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
- 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33,
- 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65,
- 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76,
- 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
+ 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c,
+ 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x79, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65,
+ 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65,
+ 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
+ 0x74, 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57,
+ 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
+ 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41,
+ 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d,
+ 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51,
+ 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63,
+ 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
+ 0x01, 0x12, 0x72, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d,
+ 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f,
+ 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46,
+ 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73,
+ 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f,
+ 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var file_tabletmanagerservice_proto_goTypes = []any{
@@ -562,85 +570,87 @@ var file_tabletmanagerservice_proto_goTypes = []any{
(*tabletmanagerdata.ResetReplicationRequest)(nil), // 48: tabletmanagerdata.ResetReplicationRequest
(*tabletmanagerdata.InitPrimaryRequest)(nil), // 49: tabletmanagerdata.InitPrimaryRequest
(*tabletmanagerdata.PopulateReparentJournalRequest)(nil), // 50: tabletmanagerdata.PopulateReparentJournalRequest
- (*tabletmanagerdata.InitReplicaRequest)(nil), // 51: tabletmanagerdata.InitReplicaRequest
- (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 52: tabletmanagerdata.DemotePrimaryRequest
- (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 53: tabletmanagerdata.UndoDemotePrimaryRequest
- (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 54: tabletmanagerdata.ReplicaWasPromotedRequest
- (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 55: tabletmanagerdata.ResetReplicationParametersRequest
- (*tabletmanagerdata.FullStatusRequest)(nil), // 56: tabletmanagerdata.FullStatusRequest
- (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 57: tabletmanagerdata.SetReplicationSourceRequest
- (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 58: tabletmanagerdata.ReplicaWasRestartedRequest
- (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 59: tabletmanagerdata.StopReplicationAndGetStatusRequest
- (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 60: tabletmanagerdata.PromoteReplicaRequest
- (*tabletmanagerdata.BackupRequest)(nil), // 61: tabletmanagerdata.BackupRequest
- (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 62: tabletmanagerdata.RestoreFromBackupRequest
- (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 63: tabletmanagerdata.CheckThrottlerRequest
- (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 64: tabletmanagerdata.GetThrottlerStatusRequest
- (*tabletmanagerdata.PingResponse)(nil), // 65: tabletmanagerdata.PingResponse
- (*tabletmanagerdata.SleepResponse)(nil), // 66: tabletmanagerdata.SleepResponse
- (*tabletmanagerdata.ExecuteHookResponse)(nil), // 67: tabletmanagerdata.ExecuteHookResponse
- (*tabletmanagerdata.GetSchemaResponse)(nil), // 68: tabletmanagerdata.GetSchemaResponse
- (*tabletmanagerdata.GetPermissionsResponse)(nil), // 69: tabletmanagerdata.GetPermissionsResponse
- (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 70: tabletmanagerdata.GetGlobalStatusVarsResponse
- (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 71: tabletmanagerdata.SetReadOnlyResponse
- (*tabletmanagerdata.SetReadWriteResponse)(nil), // 72: tabletmanagerdata.SetReadWriteResponse
- (*tabletmanagerdata.ChangeTagsResponse)(nil), // 73: tabletmanagerdata.ChangeTagsResponse
- (*tabletmanagerdata.ChangeTypeResponse)(nil), // 74: tabletmanagerdata.ChangeTypeResponse
- (*tabletmanagerdata.RefreshStateResponse)(nil), // 75: tabletmanagerdata.RefreshStateResponse
- (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 76: tabletmanagerdata.RunHealthCheckResponse
- (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 77: tabletmanagerdata.ReloadSchemaResponse
- (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 78: tabletmanagerdata.PreflightSchemaResponse
- (*tabletmanagerdata.ApplySchemaResponse)(nil), // 79: tabletmanagerdata.ApplySchemaResponse
- (*tabletmanagerdata.ResetSequencesResponse)(nil), // 80: tabletmanagerdata.ResetSequencesResponse
- (*tabletmanagerdata.LockTablesResponse)(nil), // 81: tabletmanagerdata.LockTablesResponse
- (*tabletmanagerdata.UnlockTablesResponse)(nil), // 82: tabletmanagerdata.UnlockTablesResponse
- (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 83: tabletmanagerdata.ExecuteQueryResponse
- (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 84: tabletmanagerdata.ExecuteFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 85: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 86: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 87: tabletmanagerdata.ExecuteFetchAsAppResponse
- (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 88: tabletmanagerdata.GetUnresolvedTransactionsResponse
- (*tabletmanagerdata.ReadTransactionResponse)(nil), // 89: tabletmanagerdata.ReadTransactionResponse
- (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 90: tabletmanagerdata.ConcludeTransactionResponse
- (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 91: tabletmanagerdata.MysqlHostMetricsResponse
- (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 92: tabletmanagerdata.ReplicationStatusResponse
- (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 93: tabletmanagerdata.PrimaryStatusResponse
- (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 94: tabletmanagerdata.PrimaryPositionResponse
- (*tabletmanagerdata.WaitForPositionResponse)(nil), // 95: tabletmanagerdata.WaitForPositionResponse
- (*tabletmanagerdata.StopReplicationResponse)(nil), // 96: tabletmanagerdata.StopReplicationResponse
- (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 97: tabletmanagerdata.StopReplicationMinimumResponse
- (*tabletmanagerdata.StartReplicationResponse)(nil), // 98: tabletmanagerdata.StartReplicationResponse
- (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 99: tabletmanagerdata.StartReplicationUntilAfterResponse
- (*tabletmanagerdata.GetReplicasResponse)(nil), // 100: tabletmanagerdata.GetReplicasResponse
- (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 101: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*tabletmanagerdata.DeleteTableDataResponse)(nil), // 102: tabletmanagerdata.DeleteTableDataResponse
- (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 103: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 104: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 105: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 106: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 107: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 108: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 109: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*tabletmanagerdata.VReplicationExecResponse)(nil), // 110: tabletmanagerdata.VReplicationExecResponse
- (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 111: tabletmanagerdata.VReplicationWaitForPosResponse
- (*tabletmanagerdata.VDiffResponse)(nil), // 112: tabletmanagerdata.VDiffResponse
- (*tabletmanagerdata.ResetReplicationResponse)(nil), // 113: tabletmanagerdata.ResetReplicationResponse
- (*tabletmanagerdata.InitPrimaryResponse)(nil), // 114: tabletmanagerdata.InitPrimaryResponse
- (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 115: tabletmanagerdata.PopulateReparentJournalResponse
- (*tabletmanagerdata.InitReplicaResponse)(nil), // 116: tabletmanagerdata.InitReplicaResponse
- (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 117: tabletmanagerdata.DemotePrimaryResponse
- (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 118: tabletmanagerdata.UndoDemotePrimaryResponse
- (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 119: tabletmanagerdata.ReplicaWasPromotedResponse
- (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 120: tabletmanagerdata.ResetReplicationParametersResponse
- (*tabletmanagerdata.FullStatusResponse)(nil), // 121: tabletmanagerdata.FullStatusResponse
- (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 122: tabletmanagerdata.SetReplicationSourceResponse
- (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 123: tabletmanagerdata.ReplicaWasRestartedResponse
- (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 124: tabletmanagerdata.StopReplicationAndGetStatusResponse
- (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 125: tabletmanagerdata.PromoteReplicaResponse
- (*tabletmanagerdata.BackupResponse)(nil), // 126: tabletmanagerdata.BackupResponse
- (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 127: tabletmanagerdata.RestoreFromBackupResponse
- (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 128: tabletmanagerdata.CheckThrottlerResponse
- (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 129: tabletmanagerdata.GetThrottlerStatusResponse
+ (*tabletmanagerdata.ReadReparentJournalInfoRequest)(nil), // 51: tabletmanagerdata.ReadReparentJournalInfoRequest
+ (*tabletmanagerdata.InitReplicaRequest)(nil), // 52: tabletmanagerdata.InitReplicaRequest
+ (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 53: tabletmanagerdata.DemotePrimaryRequest
+ (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 54: tabletmanagerdata.UndoDemotePrimaryRequest
+ (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 55: tabletmanagerdata.ReplicaWasPromotedRequest
+ (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 56: tabletmanagerdata.ResetReplicationParametersRequest
+ (*tabletmanagerdata.FullStatusRequest)(nil), // 57: tabletmanagerdata.FullStatusRequest
+ (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 58: tabletmanagerdata.SetReplicationSourceRequest
+ (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 59: tabletmanagerdata.ReplicaWasRestartedRequest
+ (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 60: tabletmanagerdata.StopReplicationAndGetStatusRequest
+ (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 61: tabletmanagerdata.PromoteReplicaRequest
+ (*tabletmanagerdata.BackupRequest)(nil), // 62: tabletmanagerdata.BackupRequest
+ (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 63: tabletmanagerdata.RestoreFromBackupRequest
+ (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 64: tabletmanagerdata.CheckThrottlerRequest
+ (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 65: tabletmanagerdata.GetThrottlerStatusRequest
+ (*tabletmanagerdata.PingResponse)(nil), // 66: tabletmanagerdata.PingResponse
+ (*tabletmanagerdata.SleepResponse)(nil), // 67: tabletmanagerdata.SleepResponse
+ (*tabletmanagerdata.ExecuteHookResponse)(nil), // 68: tabletmanagerdata.ExecuteHookResponse
+ (*tabletmanagerdata.GetSchemaResponse)(nil), // 69: tabletmanagerdata.GetSchemaResponse
+ (*tabletmanagerdata.GetPermissionsResponse)(nil), // 70: tabletmanagerdata.GetPermissionsResponse
+ (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 71: tabletmanagerdata.GetGlobalStatusVarsResponse
+ (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 72: tabletmanagerdata.SetReadOnlyResponse
+ (*tabletmanagerdata.SetReadWriteResponse)(nil), // 73: tabletmanagerdata.SetReadWriteResponse
+ (*tabletmanagerdata.ChangeTagsResponse)(nil), // 74: tabletmanagerdata.ChangeTagsResponse
+ (*tabletmanagerdata.ChangeTypeResponse)(nil), // 75: tabletmanagerdata.ChangeTypeResponse
+ (*tabletmanagerdata.RefreshStateResponse)(nil), // 76: tabletmanagerdata.RefreshStateResponse
+ (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 77: tabletmanagerdata.RunHealthCheckResponse
+ (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 78: tabletmanagerdata.ReloadSchemaResponse
+ (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 79: tabletmanagerdata.PreflightSchemaResponse
+ (*tabletmanagerdata.ApplySchemaResponse)(nil), // 80: tabletmanagerdata.ApplySchemaResponse
+ (*tabletmanagerdata.ResetSequencesResponse)(nil), // 81: tabletmanagerdata.ResetSequencesResponse
+ (*tabletmanagerdata.LockTablesResponse)(nil), // 82: tabletmanagerdata.LockTablesResponse
+ (*tabletmanagerdata.UnlockTablesResponse)(nil), // 83: tabletmanagerdata.UnlockTablesResponse
+ (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 84: tabletmanagerdata.ExecuteQueryResponse
+ (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 85: tabletmanagerdata.ExecuteFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 86: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 87: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 88: tabletmanagerdata.ExecuteFetchAsAppResponse
+ (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 89: tabletmanagerdata.GetUnresolvedTransactionsResponse
+ (*tabletmanagerdata.ReadTransactionResponse)(nil), // 90: tabletmanagerdata.ReadTransactionResponse
+ (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 91: tabletmanagerdata.ConcludeTransactionResponse
+ (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 92: tabletmanagerdata.MysqlHostMetricsResponse
+ (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 93: tabletmanagerdata.ReplicationStatusResponse
+ (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 94: tabletmanagerdata.PrimaryStatusResponse
+ (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 95: tabletmanagerdata.PrimaryPositionResponse
+ (*tabletmanagerdata.WaitForPositionResponse)(nil), // 96: tabletmanagerdata.WaitForPositionResponse
+ (*tabletmanagerdata.StopReplicationResponse)(nil), // 97: tabletmanagerdata.StopReplicationResponse
+ (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 98: tabletmanagerdata.StopReplicationMinimumResponse
+ (*tabletmanagerdata.StartReplicationResponse)(nil), // 99: tabletmanagerdata.StartReplicationResponse
+ (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 100: tabletmanagerdata.StartReplicationUntilAfterResponse
+ (*tabletmanagerdata.GetReplicasResponse)(nil), // 101: tabletmanagerdata.GetReplicasResponse
+ (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 102: tabletmanagerdata.CreateVReplicationWorkflowResponse
+ (*tabletmanagerdata.DeleteTableDataResponse)(nil), // 103: tabletmanagerdata.DeleteTableDataResponse
+ (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 104: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 105: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 106: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 107: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 108: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 109: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 110: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*tabletmanagerdata.VReplicationExecResponse)(nil), // 111: tabletmanagerdata.VReplicationExecResponse
+ (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 112: tabletmanagerdata.VReplicationWaitForPosResponse
+ (*tabletmanagerdata.VDiffResponse)(nil), // 113: tabletmanagerdata.VDiffResponse
+ (*tabletmanagerdata.ResetReplicationResponse)(nil), // 114: tabletmanagerdata.ResetReplicationResponse
+ (*tabletmanagerdata.InitPrimaryResponse)(nil), // 115: tabletmanagerdata.InitPrimaryResponse
+ (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 116: tabletmanagerdata.PopulateReparentJournalResponse
+ (*tabletmanagerdata.ReadReparentJournalInfoResponse)(nil), // 117: tabletmanagerdata.ReadReparentJournalInfoResponse
+ (*tabletmanagerdata.InitReplicaResponse)(nil), // 118: tabletmanagerdata.InitReplicaResponse
+ (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 119: tabletmanagerdata.DemotePrimaryResponse
+ (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 120: tabletmanagerdata.UndoDemotePrimaryResponse
+ (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 121: tabletmanagerdata.ReplicaWasPromotedResponse
+ (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 122: tabletmanagerdata.ResetReplicationParametersResponse
+ (*tabletmanagerdata.FullStatusResponse)(nil), // 123: tabletmanagerdata.FullStatusResponse
+ (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 124: tabletmanagerdata.SetReplicationSourceResponse
+ (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 125: tabletmanagerdata.ReplicaWasRestartedResponse
+ (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 126: tabletmanagerdata.StopReplicationAndGetStatusResponse
+ (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 127: tabletmanagerdata.PromoteReplicaResponse
+ (*tabletmanagerdata.BackupResponse)(nil), // 128: tabletmanagerdata.BackupResponse
+ (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 129: tabletmanagerdata.RestoreFromBackupResponse
+ (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 130: tabletmanagerdata.CheckThrottlerResponse
+ (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 131: tabletmanagerdata.GetThrottlerStatusResponse
}
var file_tabletmanagerservice_proto_depIdxs = []int32{
0, // 0: tabletmanagerservice.TabletManager.Ping:input_type -> tabletmanagerdata.PingRequest
@@ -694,87 +704,89 @@ var file_tabletmanagerservice_proto_depIdxs = []int32{
48, // 48: tabletmanagerservice.TabletManager.ResetReplication:input_type -> tabletmanagerdata.ResetReplicationRequest
49, // 49: tabletmanagerservice.TabletManager.InitPrimary:input_type -> tabletmanagerdata.InitPrimaryRequest
50, // 50: tabletmanagerservice.TabletManager.PopulateReparentJournal:input_type -> tabletmanagerdata.PopulateReparentJournalRequest
- 51, // 51: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
- 52, // 52: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
- 53, // 53: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
- 54, // 54: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
- 55, // 55: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
- 56, // 56: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
- 57, // 57: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
- 58, // 58: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
- 59, // 59: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
- 60, // 60: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
- 61, // 61: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
- 62, // 62: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
- 63, // 63: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
- 64, // 64: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
- 65, // 65: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
- 66, // 66: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
- 67, // 67: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
- 68, // 68: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
- 69, // 69: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
- 70, // 70: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
- 71, // 71: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
- 72, // 72: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
- 73, // 73: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
- 74, // 74: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
- 75, // 75: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
- 76, // 76: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
- 77, // 77: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
- 78, // 78: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
- 79, // 79: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
- 80, // 80: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
- 81, // 81: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
- 82, // 82: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
- 83, // 83: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
- 84, // 84: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
- 85, // 85: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- 86, // 86: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- 87, // 87: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
- 88, // 88: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
- 89, // 89: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
- 90, // 90: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
- 91, // 91: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
- 92, // 92: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
- 93, // 93: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
- 94, // 94: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
- 95, // 95: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
- 96, // 96: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
- 97, // 97: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
- 98, // 98: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
- 99, // 99: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
- 100, // 100: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
- 101, // 101: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
- 102, // 102: tabletmanagerservice.TabletManager.DeleteTableData:output_type -> tabletmanagerdata.DeleteTableDataResponse
- 103, // 103: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
- 104, // 104: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
- 105, // 105: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 106, // 106: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
- 107, // 107: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
- 108, // 108: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- 109, // 109: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
- 110, // 110: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
- 111, // 111: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
- 112, // 112: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
- 113, // 113: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
- 114, // 114: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
- 115, // 115: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
- 116, // 116: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
- 117, // 117: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
- 118, // 118: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
- 119, // 119: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
- 120, // 120: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
- 121, // 121: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
- 122, // 122: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
- 123, // 123: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
- 124, // 124: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
- 125, // 125: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
- 126, // 126: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
- 127, // 127: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
- 128, // 128: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
- 129, // 129: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
- 65, // [65:130] is the sub-list for method output_type
- 0, // [0:65] is the sub-list for method input_type
+ 51, // 51: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:input_type -> tabletmanagerdata.ReadReparentJournalInfoRequest
+ 52, // 52: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
+ 53, // 53: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
+ 54, // 54: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
+ 55, // 55: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
+ 56, // 56: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
+ 57, // 57: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
+ 58, // 58: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
+ 59, // 59: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
+ 60, // 60: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
+ 61, // 61: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
+ 62, // 62: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
+ 63, // 63: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
+ 64, // 64: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
+ 65, // 65: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
+ 66, // 66: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
+ 67, // 67: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
+ 68, // 68: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
+ 69, // 69: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
+ 70, // 70: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
+ 71, // 71: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
+ 72, // 72: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
+ 73, // 73: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
+ 74, // 74: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
+ 75, // 75: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
+ 76, // 76: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
+ 77, // 77: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
+ 78, // 78: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
+ 79, // 79: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
+ 80, // 80: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
+ 81, // 81: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
+ 82, // 82: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
+ 83, // 83: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
+ 84, // 84: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
+ 85, // 85: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
+ 86, // 86: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ 87, // 87: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ 88, // 88: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
+ 89, // 89: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
+ 90, // 90: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
+ 91, // 91: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
+ 92, // 92: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
+ 93, // 93: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
+ 94, // 94: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
+ 95, // 95: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
+ 96, // 96: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
+ 97, // 97: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
+ 98, // 98: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
+ 99, // 99: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
+ 100, // 100: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
+ 101, // 101: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
+ 102, // 102: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
+ 103, // 103: tabletmanagerservice.TabletManager.DeleteTableData:output_type -> tabletmanagerdata.DeleteTableDataResponse
+ 104, // 104: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ 105, // 105: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
+ 106, // 106: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 107, // 107: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ 108, // 108: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ 109, // 109: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ 110, // 110: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ 111, // 111: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
+ 112, // 112: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
+ 113, // 113: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
+ 114, // 114: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
+ 115, // 115: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
+ 116, // 116: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
+ 117, // 117: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:output_type -> tabletmanagerdata.ReadReparentJournalInfoResponse
+ 118, // 118: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
+ 119, // 119: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
+ 120, // 120: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
+ 121, // 121: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
+ 122, // 122: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
+ 123, // 123: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
+ 124, // 124: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
+ 125, // 125: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
+ 126, // 126: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
+ 127, // 127: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
+ 128, // 128: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
+ 129, // 129: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
+ 130, // 130: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
+ 131, // 131: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
+ 66, // [66:132] is the sub-list for method output_type
+ 0, // [0:66] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
index 14ef8cc26bf..5899f24cd42 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
@@ -100,6 +100,8 @@ type TabletManagerClient interface {
// PopulateReparentJournal tells the tablet to add an entry to its
// reparent journal
PopulateReparentJournal(ctx context.Context, in *tabletmanagerdata.PopulateReparentJournalRequest, opts ...grpc.CallOption) (*tabletmanagerdata.PopulateReparentJournalResponse, error)
+ // ReadReparentJournalInfo reads the information from reparent journal
+ ReadReparentJournalInfo(ctx context.Context, in *tabletmanagerdata.ReadReparentJournalInfoRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ReadReparentJournalInfoResponse, error)
// InitReplica tells the tablet to reparent to the primary unconditionally
InitReplica(ctx context.Context, in *tabletmanagerdata.InitReplicaRequest, opts ...grpc.CallOption) (*tabletmanagerdata.InitReplicaResponse, error)
// DemotePrimary tells the soon-to-be-former primary it's gonna change
@@ -597,6 +599,15 @@ func (c *tabletManagerClient) PopulateReparentJournal(ctx context.Context, in *t
return out, nil
}
+func (c *tabletManagerClient) ReadReparentJournalInfo(ctx context.Context, in *tabletmanagerdata.ReadReparentJournalInfoRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ReadReparentJournalInfoResponse, error) {
+ out := new(tabletmanagerdata.ReadReparentJournalInfoResponse)
+ err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/ReadReparentJournalInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *tabletManagerClient) InitReplica(ctx context.Context, in *tabletmanagerdata.InitReplicaRequest, opts ...grpc.CallOption) (*tabletmanagerdata.InitReplicaResponse, error) {
out := new(tabletmanagerdata.InitReplicaResponse)
err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/InitReplica", in, out, opts...)
@@ -850,6 +861,8 @@ type TabletManagerServer interface {
// PopulateReparentJournal tells the tablet to add an entry to its
// reparent journal
PopulateReparentJournal(context.Context, *tabletmanagerdata.PopulateReparentJournalRequest) (*tabletmanagerdata.PopulateReparentJournalResponse, error)
+ // ReadReparentJournalInfo reads the information from reparent journal
+ ReadReparentJournalInfo(context.Context, *tabletmanagerdata.ReadReparentJournalInfoRequest) (*tabletmanagerdata.ReadReparentJournalInfoResponse, error)
// InitReplica tells the tablet to reparent to the primary unconditionally
InitReplica(context.Context, *tabletmanagerdata.InitReplicaRequest) (*tabletmanagerdata.InitReplicaResponse, error)
// DemotePrimary tells the soon-to-be-former primary it's gonna change
@@ -1038,6 +1051,9 @@ func (UnimplementedTabletManagerServer) InitPrimary(context.Context, *tabletmana
func (UnimplementedTabletManagerServer) PopulateReparentJournal(context.Context, *tabletmanagerdata.PopulateReparentJournalRequest) (*tabletmanagerdata.PopulateReparentJournalResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method PopulateReparentJournal not implemented")
}
+func (UnimplementedTabletManagerServer) ReadReparentJournalInfo(context.Context, *tabletmanagerdata.ReadReparentJournalInfoRequest) (*tabletmanagerdata.ReadReparentJournalInfoResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ReadReparentJournalInfo not implemented")
+}
func (UnimplementedTabletManagerServer) InitReplica(context.Context, *tabletmanagerdata.InitReplicaRequest) (*tabletmanagerdata.InitReplicaResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method InitReplica not implemented")
}
@@ -2011,6 +2027,24 @@ func _TabletManager_PopulateReparentJournal_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
+func _TabletManager_ReadReparentJournalInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(tabletmanagerdata.ReadReparentJournalInfoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TabletManagerServer).ReadReparentJournalInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/tabletmanagerservice.TabletManager/ReadReparentJournalInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TabletManagerServer).ReadReparentJournalInfo(ctx, req.(*tabletmanagerdata.ReadReparentJournalInfoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _TabletManager_InitReplica_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(tabletmanagerdata.InitReplicaRequest)
if err := dec(in); err != nil {
@@ -2480,6 +2514,10 @@ var TabletManager_ServiceDesc = grpc.ServiceDesc{
MethodName: "PopulateReparentJournal",
Handler: _TabletManager_PopulateReparentJournal_Handler,
},
+ {
+ MethodName: "ReadReparentJournalInfo",
+ Handler: _TabletManager_ReadReparentJournalInfo_Handler,
+ },
{
MethodName: "InitReplica",
Handler: _TabletManager_InitReplica_Handler,
diff --git a/go/vt/vtcombo/tablet_map.go b/go/vt/vtcombo/tablet_map.go
index 81b157704b6..34ec957ebe5 100644
--- a/go/vt/vtcombo/tablet_map.go
+++ b/go/vt/vtcombo/tablet_map.go
@@ -996,6 +996,11 @@ func (itmc *internalTabletManagerClient) PopulateReparentJournal(context.Context
return fmt.Errorf("not implemented in vtcombo")
}
+// ReadReparentJournalInfo is part of the tmclient.TabletManagerClient interface.
+func (itmc *internalTabletManagerClient) ReadReparentJournalInfo(ctx context.Context, tablet *topodatapb.Tablet) (int, error) {
+ return 0, fmt.Errorf("not implemented in vtcombo")
+}
+
func (itmc *internalTabletManagerClient) DemotePrimary(context.Context, *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error) {
return nil, fmt.Errorf("not implemented in vtcombo")
}
diff --git a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
index bcb1991c9e6..0a2a271d77e 100644
--- a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
+++ b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
@@ -291,6 +291,8 @@ type TabletManagerClient struct {
PopulateReparentJournalDelays map[string]time.Duration
// keyed by tablet alias
PopulateReparentJournalResults map[string]error
+ // keyed by tablet alias
+ ReadReparentJournalInfoResults map[string]int
// keyed by tablet alias.
PromoteReplicaDelays map[string]time.Duration
// keyed by tablet alias. injects a sleep to the end of the function
@@ -956,6 +958,19 @@ func (fake *TabletManagerClient) PopulateReparentJournal(ctx context.Context, ta
return assert.AnError
}
+// ReadReparentJournalInfo is part of the tmclient.TabletManagerClient interface.
+func (fake *TabletManagerClient) ReadReparentJournalInfo(ctx context.Context, tablet *topodatapb.Tablet) (int, error) {
+ if fake.ReadReparentJournalInfoResults == nil {
+ return 1, nil
+ }
+ key := topoproto.TabletAliasString(tablet.Alias)
+ if result, ok := fake.ReadReparentJournalInfoResults[key]; ok {
+ return result, nil
+ }
+
+ return 0, assert.AnError
+}
+
// PromoteReplica is part of the tmclient.TabletManagerClient interface.
func (fake *TabletManagerClient) PromoteReplica(ctx context.Context, tablet *topodatapb.Tablet, semiSync bool) (string, error) {
if fake.PromoteReplicaResults == nil {
diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter.go b/go/vt/vtctl/reparentutil/emergency_reparenter.go
index b2ac75380f0..ef30f48e8ac 100644
--- a/go/vt/vtctl/reparentutil/emergency_reparenter.go
+++ b/go/vt/vtctl/reparentutil/emergency_reparenter.go
@@ -23,6 +23,7 @@ import (
"time"
"vitess.io/vitess/go/mysql/replication"
+ "vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/event"
"vitess.io/vitess/go/sets"
@@ -158,6 +159,7 @@ func (erp *EmergencyReparenter) reparentShardLocked(ctx context.Context, ev *eve
validReplacementCandidates []*topodatapb.Tablet
betterCandidate *topodatapb.Tablet
isIdeal bool
+ isGTIDBased bool
)
shardInfo, err = erp.ts.GetShard(ctx, keyspace, shard)
@@ -213,9 +215,8 @@ func (erp *EmergencyReparenter) reparentShardLocked(ctx context.Context, ev *eve
return vterrors.Wrap(err, lostTopologyLockMsg)
}
- // find the valid candidates for becoming the primary
- // this is where we check for errant GTIDs and remove the tablets that have them from consideration
- validCandidates, err = FindValidEmergencyReparentCandidates(stoppedReplicationSnapshot.statusMap, stoppedReplicationSnapshot.primaryStatusMap)
+ // find the positions of all the valid candidates.
+ validCandidates, isGTIDBased, err = FindPositionsOfAllCandidates(stoppedReplicationSnapshot.statusMap, stoppedReplicationSnapshot.primaryStatusMap)
if err != nil {
return err
}
@@ -232,6 +233,14 @@ func (erp *EmergencyReparenter) reparentShardLocked(ctx context.Context, ev *eve
return err
}
+ // For GTID based replication, we will run errant GTID detection.
+ if isGTIDBased {
+ validCandidates, err = erp.findErrantGTIDs(ctx, validCandidates, stoppedReplicationSnapshot.statusMap, tabletMap, opts.WaitReplicasTimeout)
+ if err != nil {
+ return err
+ }
+ }
+
// Find the intermediate source for replication that we want other tablets to replicate from.
// This step chooses the most advanced tablet. Further ties are broken by using the promotion rule.
// In case the user has specified a tablet specifically, then it is selected, as long as it is the most advanced.
@@ -761,3 +770,162 @@ func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb
}
return restrictedValidTablets, nil
}
+
+// findErrantGTIDs tries to find errant GTIDs for the valid candidates and returns the updated list of valid candidates.
+// This function does not actually return the identities of errant GTID tablets, if any. It only returns the identities of non-errant GTID tablets, which are eligible for promotion.
+// The caller of this function (ERS) will then choose from among the list of candidate tablets, based on higher-level criteria.
+func (erp *EmergencyReparenter) findErrantGTIDs(
+ ctx context.Context,
+ validCandidates map[string]replication.Position,
+ statusMap map[string]*replicationdatapb.StopReplicationStatus,
+ tabletMap map[string]*topo.TabletInfo,
+ waitReplicasTimeout time.Duration,
+) (map[string]replication.Position, error) {
+ // First we need to collect the reparent journal length for all the candidates.
+ // This will tell us, which of the tablets are severly lagged, and haven't even seen all the primary promotions.
+ // Such severely lagging tablets cannot be used to find errant GTIDs in other tablets, seeing that they themselves don't have enough information.
+ reparentJournalLen, err := erp.gatherReparenJournalInfo(ctx, validCandidates, tabletMap, waitReplicasTimeout)
+ if err != nil {
+ return nil, err
+ }
+
+ // Find the maximum length of the reparent journal among all the candidates.
+ var maxLen int
+ for _, length := range reparentJournalLen {
+ maxLen = max(maxLen, length)
+ }
+
+ // Find the candidates with the maximum length of the reparent journal.
+ var maxLenCandidates []string
+ for alias, length := range reparentJournalLen {
+ if length == maxLen {
+ maxLenCandidates = append(maxLenCandidates, alias)
+ }
+ }
+
+ // We use all the candidates with the maximum length of the reparent journal to find the errant GTIDs amongst them.
+ var maxLenPositions []replication.Position
+ updatedValidCandidates := make(map[string]replication.Position)
+ for _, candidate := range maxLenCandidates {
+ status, ok := statusMap[candidate]
+ if !ok {
+ // If the tablet is not in the status map, and has the maximum length of the reparent journal,
+ // then it should be the latest primary and we don't need to run any errant GTID detection on it!
+ // There is a very unlikely niche case that can happen where we see two tablets report themselves as having
+ // the maximum reparent journal length and also be primaries. Here is the outline of it -
+ // 1. Tablet A is the primary and reparent journal length is 3.
+ // 2. It gets network partitioned, and we promote tablet B as the new primary.
+ // 3. tablet B gets network partitioned before it has written to the reparent journal, and a new ERS call ensues.
+ // 4. During this ERS call, both A and B are seen online. They would both report being primary tablets with the same reparent journal length.
+ // Even in this case, the best we can do is not run errant GTID detection on either, and let the split brain detection code
+ // deal with it, if A in fact has errant GTIDs.
+ maxLenPositions = append(maxLenPositions, validCandidates[candidate])
+ updatedValidCandidates[candidate] = validCandidates[candidate]
+ continue
+ }
+ // Store all the other candidate's positions so that we can run errant GTID detection using them.
+ otherPositions := make([]replication.Position, 0, len(maxLenCandidates)-1)
+ for _, otherCandidate := range maxLenCandidates {
+ if otherCandidate == candidate {
+ continue
+ }
+ otherPositions = append(otherPositions, validCandidates[otherCandidate])
+ }
+ // Run errant GTID detection and throw away any tablet that has errant GTIDs.
+ afterStatus := replication.ProtoToReplicationStatus(status.After)
+ errantGTIDs, err := replication.FindErrantGTIDs(afterStatus.RelayLogPosition, afterStatus.SourceUUID, otherPositions)
+ if err != nil {
+ return nil, err
+ }
+ if errantGTIDs != nil {
+ log.Errorf("skipping %v with GTIDSet:%v because we detected errant GTIDs - %v", candidate, afterStatus.RelayLogPosition.GTIDSet, errantGTIDs)
+ continue
+ }
+ maxLenPositions = append(maxLenPositions, validCandidates[candidate])
+ updatedValidCandidates[candidate] = validCandidates[candidate]
+ }
+
+ // For all the other tablets, that are lagged enough that they haven't seen all the reparent journal entries,
+ // we run errant GTID detection by using the tablets with the maximum length of the reparent journal.
+ // We throw away any tablet that has errant GTIDs.
+ for alias, length := range reparentJournalLen {
+ if length == maxLen {
+ continue
+ }
+ // Here we don't want to send the source UUID. The reason is that all of these tablets are lagged,
+ // so we don't need to use the source UUID to discount any GTIDs.
+ // To explain this point further, let me use an example. Consider the following situation -
+ // 1. Tablet A is the primary and B is a rdonly replica.
+ // 2. They both get network partitioned, and then a new ERS call ensues, and we promote tablet C.
+ // 3. Tablet C also fails, and we run a new ERS call.
+ // 4. During this ERS, B comes back online and is visible. Since it hasn't seen the last reparent journal entry
+ // it will be considered lagged.
+ // 5. If it has an errant GTID that was written by A, then we want to find that errant GTID. Since B hasn't reparented to a
+ // different tablet, it would still be replicating from A. This means its server UUID would be A.
+ // 6. Because we don't want to discount the writes from tablet A, when we're doing the errant GTID detection on B, we
+ // choose not to pass in the server UUID.
+ // This exact scenario outlined above, can be found in the test for this function, subtest `Case 5a`.
+ // The idea is that if the tablet is lagged, then even the server UUID that it is replicating from
+ // should not be considered a valid source of writes that no other tablet has.
+ errantGTIDs, err := replication.FindErrantGTIDs(validCandidates[alias], replication.SID{}, maxLenPositions)
+ if err != nil {
+ return nil, err
+ }
+ if errantGTIDs != nil {
+ log.Errorf("skipping %v with GTIDSet:%v because we detected errant GTIDs - %v", alias, validCandidates[alias], errantGTIDs)
+ continue
+ }
+ updatedValidCandidates[alias] = validCandidates[alias]
+ }
+
+ return updatedValidCandidates, nil
+}
+
+// gatherReparenJournalInfo reads the reparent journal information from all the tablets in the valid candidates list.
+func (erp *EmergencyReparenter) gatherReparenJournalInfo(
+ ctx context.Context,
+ validCandidates map[string]replication.Position,
+ tabletMap map[string]*topo.TabletInfo,
+ waitReplicasTimeout time.Duration,
+) (map[string]int, error) {
+ reparentJournalLen := make(map[string]int)
+ var mu sync.Mutex
+ errCh := make(chan concurrency.Error)
+ defer close(errCh)
+
+ groupCtx, groupCancel := context.WithTimeout(ctx, waitReplicasTimeout)
+ defer groupCancel()
+
+ waiterCount := 0
+
+ for candidate := range validCandidates {
+ go func(alias string) {
+ var err error
+ var length int
+ defer func() {
+ errCh <- concurrency.Error{
+ Err: err,
+ }
+ }()
+ length, err = erp.tmc.ReadReparentJournalInfo(groupCtx, tabletMap[alias].Tablet)
+ mu.Lock()
+ defer mu.Unlock()
+ reparentJournalLen[alias] = length
+ }(candidate)
+
+ waiterCount++
+ }
+
+ errgroup := concurrency.ErrorGroup{
+ NumGoroutines: waiterCount,
+ NumRequiredSuccesses: waiterCount,
+ NumAllowedErrors: 0,
+ }
+ rec := errgroup.Wait(groupCancel, errCh)
+
+ if len(rec.Errors) != 0 {
+ return nil, vterrors.Wrapf(rec.Error(), "could not read reparent journal information within the provided waitReplicasTimeout (%s): %v", waitReplicasTimeout, rec.Error())
+ }
+
+ return reparentJournalLen, nil
+}
diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
index 356e28ba202..ea6e768d036 100644
--- a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
+++ b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
@@ -19,6 +19,7 @@ package reparentutil
import (
"context"
"fmt"
+ "slices"
"testing"
"time"
@@ -26,6 +27,8 @@ import (
"github.com/stretchr/testify/require"
"vitess.io/vitess/go/mysql/replication"
+ logutilpb "vitess.io/vitess/go/vt/proto/logutil"
+ "vitess.io/vitess/go/vt/vttablet/tmclient"
"vitess.io/vitess/go/mysql"
"vitess.io/vitess/go/sets"
@@ -4559,3 +4562,942 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) {
})
}
}
+
+// getRelayLogPosition is a helper function that prints out the relay log positions.
+func getRelayLogPosition(gtidSets ...string) string {
+ u1 := "00000000-0000-0000-0000-000000000001"
+ u2 := "00000000-0000-0000-0000-000000000002"
+ u3 := "00000000-0000-0000-0000-000000000003"
+ u4 := "00000000-0000-0000-0000-000000000004"
+ uuids := []string{u1, u2, u3, u4}
+
+ res := "MySQL56/"
+ first := true
+ for idx, set := range gtidSets {
+ if set == "" {
+ continue
+ }
+ if !first {
+ res += ","
+ }
+ first = false
+ res += fmt.Sprintf("%s:%s", uuids[idx], set)
+ }
+ return res
+}
+
+// TestEmergencyReparenterFindErrantGTIDs tests that ERS can find the most advanced replica after marking tablets as errant.
+func TestEmergencyReparenterFindErrantGTIDs(t *testing.T) {
+ u1 := "00000000-0000-0000-0000-000000000001"
+ u2 := "00000000-0000-0000-0000-000000000002"
+ tests := []struct {
+ name string
+ tmc tmclient.TabletManagerClient
+ statusMap map[string]*replicationdatapb.StopReplicationStatus
+ primaryStatusMap map[string]*replicationdatapb.PrimaryStatus
+ tabletMap map[string]*topo.TabletInfo
+ wantedCandidates []string
+ wantMostAdvancedPossible []string
+ wantErr string
+ }{
+ {
+ name: "Case 1a: No Errant GTIDs. This is the first reparent. A replica is the most advanced.",
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 1,
+ "zone1-0000000103": 1,
+ "zone1-0000000104": 1,
+ },
+ },
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-99"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000102"},
+ },
+ {
+ name: "Case 1b: No Errant GTIDs. This is not the first reparent. A replica is the most advanced.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 2,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-99", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000102"},
+ },
+ {
+ name: "Case 1c: No Errant GTIDs. This is not the first reparent. A rdonly is the most advanced.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 2,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-99", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-101", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000104"},
+ },
+ {
+ name: "Case 2: Only 1 tablet is recent and all others are severely lagged",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 3,
+ "zone1-0000000103": 2,
+ "zone1-0000000104": 1,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-100"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000102"},
+ },
+ {
+ name: "Case 3: All replicas severely lagged (Primary tablet dies with t1: u1-100, u2:1-30, u3:1-100)",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 2,
+ "zone1-0000000104": 1,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-30"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000102", "zone1-0000000103"},
+ },
+ {
+ name: "Case 4: Primary dies and comes back, has an extra UUID, right at the point when a new ERS has started.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 3,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-90", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{
+ "zone1-0000000102": {
+ Position: getRelayLogPosition("", "1-31", "1-50"),
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Case 5a: Old Primary and a rdonly have errant GTID. Old primary is permanently lost and comes up from backup and ronly comes up during ERS",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-20", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-31", "1-50"),
+ SourceUuid: u2,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000102", "zone1-0000000103"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Case 5b: Old Primary and a rdonly have errant GTID. Both come up during ERS",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-31", "1-50"),
+ SourceUuid: u2,
+ },
+ },
+ },
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{
+ "zone1-0000000102": {
+ Position: getRelayLogPosition("", "1-31", "1-50"),
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Case 6a: Errant GTID introduced on a replica server by a write that shouldn't happen. The replica with errant GTID is not the most advanced.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 3,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 3,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-99", "1-31", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103", "zone1-0000000104"},
+ },
+ {
+ name: "Case 6b: Errant GTID introduced on a replica server by a write that shouldn't happen. The replica with errant GTID is the most advanced.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 3,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-101", "1-31", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103", "zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Case 6c: Errant GTID introduced on a replica server by a write that shouldn't happen. Only 2 tablets exist.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 3,
+ "zone1-0000000103": 3,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-31", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Case 7: Both replicas with errant GTIDs",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 3,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 3,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000102": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-31", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-51"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-90", "1-30", "1-50"),
+ SourceUuid: u1,
+ },
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000104"},
+ wantMostAdvancedPossible: []string{"zone1-0000000104"},
+ },
+ {
+ name: "Case 8a: Old primary and rdonly have errant GTID and come up during ERS and replica has an errant GTID introduced by the user.",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{
+ "zone1-0000000102": 2,
+ "zone1-0000000103": 3,
+ "zone1-0000000104": 2,
+ },
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-51"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-31", "1-50"),
+ SourceUuid: u2,
+ },
+ },
+ },
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{
+ "zone1-0000000102": {
+ Position: getRelayLogPosition("", "1-31", "1-50"),
+ },
+ },
+ wantedCandidates: []string{"zone1-0000000103"},
+ wantMostAdvancedPossible: []string{"zone1-0000000103"},
+ },
+ {
+ name: "Reading reparent journal fails",
+ tabletMap: map[string]*topo.TabletInfo{
+ "zone1-0000000102": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000102",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "zone1-0000000103": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000103",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 103,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "zone1-0000000104": {
+ Tablet: &topodatapb.Tablet{
+ Hostname: "zone1-0000000104",
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 104,
+ },
+ Type: topodatapb.TabletType_RDONLY,
+ },
+ },
+ },
+ tmc: &testutil.TabletManagerClient{
+ ReadReparentJournalInfoResults: map[string]int{},
+ },
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{
+ "zone1-0000000103": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("1-100", "1-30", "1-51"),
+ SourceUuid: u1,
+ },
+ },
+ "zone1-0000000104": {
+ After: &replicationdatapb.Status{
+ RelayLogPosition: getRelayLogPosition("", "1-31", "1-50"),
+ SourceUuid: u2,
+ },
+ },
+ },
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{
+ "zone1-0000000102": {
+ Position: getRelayLogPosition("", "1-31", "1-50"),
+ },
+ },
+ wantErr: "could not read reparent journal information",
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ erp := &EmergencyReparenter{
+ tmc: tt.tmc,
+ }
+ validCandidates, isGtid, err := FindPositionsOfAllCandidates(tt.statusMap, tt.primaryStatusMap)
+ require.NoError(t, err)
+ require.True(t, isGtid)
+ candidates, err := erp.findErrantGTIDs(context.Background(), validCandidates, tt.statusMap, tt.tabletMap, 10*time.Second)
+ if tt.wantErr != "" {
+ require.ErrorContains(t, err, tt.wantErr)
+ return
+ }
+ require.NoError(t, err)
+ keys := make([]string, 0, len(candidates))
+ for key := range candidates {
+ keys = append(keys, key)
+ }
+ slices.Sort(keys)
+ require.ElementsMatch(t, tt.wantedCandidates, keys)
+
+ dp, err := GetDurabilityPolicy("semi_sync")
+ require.NoError(t, err)
+ ers := EmergencyReparenter{logger: logutil.NewCallbackLogger(func(*logutilpb.Event) {})}
+ winningPrimary, _, err := ers.findMostAdvanced(candidates, tt.tabletMap, EmergencyReparentOptions{durability: dp})
+ require.NoError(t, err)
+ require.True(t, slices.Contains(tt.wantMostAdvancedPossible, winningPrimary.Hostname), winningPrimary.Hostname)
+ })
+ }
+}
diff --git a/go/vt/vtctl/reparentutil/replication.go b/go/vt/vtctl/reparentutil/replication.go
index d04a1992d2e..8642de84fc7 100644
--- a/go/vt/vtctl/reparentutil/replication.go
+++ b/go/vt/vtctl/reparentutil/replication.go
@@ -39,13 +39,13 @@ import (
"vitess.io/vitess/go/vt/vttablet/tmclient"
)
-// FindValidEmergencyReparentCandidates will find candidates for an emergency
+// FindPositionsOfAllCandidates will find candidates for an emergency
// reparent, and, if successful, return a mapping of those tablet aliases (as
// raw strings) to their replication positions for later comparison.
-func FindValidEmergencyReparentCandidates(
+func FindPositionsOfAllCandidates(
statusMap map[string]*replicationdatapb.StopReplicationStatus,
primaryStatusMap map[string]*replicationdatapb.PrimaryStatus,
-) (map[string]replication.Position, error) {
+) (map[string]replication.Position, bool, error) {
replicationStatusMap := make(map[string]*replication.ReplicationStatus, len(statusMap))
positionMap := make(map[string]replication.Position)
@@ -79,68 +79,33 @@ func FindValidEmergencyReparentCandidates(
}
if isGTIDBased && emptyRelayPosErrorRecorder.HasErrors() {
- return nil, emptyRelayPosErrorRecorder.Error()
+ return nil, false, emptyRelayPosErrorRecorder.Error()
}
if isGTIDBased && isNonGTIDBased {
- return nil, vterrors.Errorf(vtrpc.Code_FAILED_PRECONDITION, "encountered mix of GTID-based and non GTID-based relay logs")
+ return nil, false, vterrors.Errorf(vtrpc.Code_FAILED_PRECONDITION, "encountered mix of GTID-based and non GTID-based relay logs")
}
- // Create relevant position list of errant GTID-based positions for later
- // comparison.
+ // Store the final positions in the map.
for alias, status := range replicationStatusMap {
- // If we're not GTID-based, no need to search for errant GTIDs, so just
- // add the position to the map and continue.
if !isGTIDBased {
positionMap[alias] = status.Position
continue
}
-
- // This condition should really never happen, since we did the same cast
- // in the earlier loop, but let's be doubly sure.
- relayLogGTIDSet, ok := status.RelayLogPosition.GTIDSet.(replication.Mysql56GTIDSet)
- if !ok {
- return nil, vterrors.Errorf(vtrpc.Code_FAILED_PRECONDITION, "we got a filled-in relay log position, but it's not of type Mysql56GTIDSet, even though we've determined we need to use GTID based assesment")
- }
-
- // We need to remove this alias's status from the list, otherwise the
- // GTID diff will always be empty.
- statusList := make([]*replication.ReplicationStatus, 0, len(replicationStatusMap)-1)
-
- for a, s := range replicationStatusMap {
- if a != alias {
- statusList = append(statusList, s)
- }
- }
-
- errantGTIDs, err := status.FindErrantGTIDs(statusList)
- switch {
- case err != nil:
- // Could not look up GTIDs to determine if we have any. It's not
- // safe to continue.
- return nil, err
- case len(errantGTIDs) != 0:
- // This tablet has errant GTIDs. It's not a valid candidate for
- // reparent, so don't insert it into the final mapping.
- log.Errorf("skipping %v with GTIDSet:%v because we detected errant GTIDs - %v", alias, relayLogGTIDSet, errantGTIDs)
- continue
- }
-
- pos := replication.Position{GTIDSet: relayLogGTIDSet}
- positionMap[alias] = pos
+ positionMap[alias] = status.RelayLogPosition
}
for alias, primaryStatus := range primaryStatusMap {
executedPosition, err := replication.DecodePosition(primaryStatus.Position)
if err != nil {
- return nil, vterrors.Wrapf(err, "could not decode a primary status executed position for tablet %v: %v", alias, err)
+ return nil, false, vterrors.Wrapf(err, "could not decode a primary status executed position for tablet %v: %v", alias, err)
}
positionMap[alias] = executedPosition
}
- return positionMap, nil
+ return positionMap, isGTIDBased, nil
}
// ReplicaWasRunning returns true if a StopReplicationStatus indicates that the
diff --git a/go/vt/vtctl/reparentutil/replication_test.go b/go/vt/vtctl/reparentutil/replication_test.go
index 666b41859cf..4a449b1189c 100644
--- a/go/vt/vtctl/reparentutil/replication_test.go
+++ b/go/vt/vtctl/reparentutil/replication_test.go
@@ -46,7 +46,7 @@ func TestMain(m *testing.M) {
os.Exit(m.Run())
}
-func TestFindValidEmergencyReparentCandidates(t *testing.T) {
+func TestFindPositionsOfAllCandidates(t *testing.T) {
t.Parallel()
tests := []struct {
@@ -64,8 +64,9 @@ func TestFindValidEmergencyReparentCandidates(t *testing.T) {
// point is, the combination of (1) whether the test should error and
// (2) the set of keys we expect in the map is enough to fully assert on
// the correctness of the behavior of this functional unit.
- expected []string
- shouldErr bool
+ expected []string
+ expectedGTIDBased bool
+ shouldErr bool
}{
{
name: "success",
@@ -88,8 +89,9 @@ func TestFindValidEmergencyReparentCandidates(t *testing.T) {
Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
},
},
- expected: []string{"r1", "r2", "p1"},
- shouldErr: false,
+ expected: []string{"r1", "r2", "p1"},
+ expectedGTIDBased: true,
+ shouldErr: false,
}, {
name: "success for single tablet",
statusMap: map[string]*replicationdatapb.StopReplicationStatus{
@@ -100,9 +102,10 @@ func TestFindValidEmergencyReparentCandidates(t *testing.T) {
},
},
},
- primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{},
- expected: []string{"r1"},
- shouldErr: false,
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{},
+ expected: []string{"r1"},
+ expectedGTIDBased: true,
+ shouldErr: false,
},
{
name: "mixed replication modes",
@@ -160,44 +163,6 @@ func TestFindValidEmergencyReparentCandidates(t *testing.T) {
expected: []string{"r1", "r2"},
shouldErr: false,
},
- {
- name: "tablet with superset GTIDs is included",
- statusMap: map[string]*replicationdatapb.StopReplicationStatus{
- "r1": {
- After: &replicationdatapb.Status{
- SourceUuid: "3E11FA47-71CA-11E1-9E33-C80AA9429562",
- RelayLogPosition: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
- },
- },
- "r2": {
- After: &replicationdatapb.Status{
- SourceUuid: "3E11FA47-71CA-11E1-9E33-C80AA9429562",
- RelayLogPosition: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5,AAAAAAAA-71CA-11E1-9E33-C80AA9429562:1",
- },
- },
- },
- expected: []string{"r1", "r2"},
- shouldErr: false,
- },
- {
- name: "tablets with errant GTIDs are excluded",
- statusMap: map[string]*replicationdatapb.StopReplicationStatus{
- "r1": {
- After: &replicationdatapb.Status{
- SourceUuid: "3E11FA47-71CA-11E1-9E33-C80AA9429562",
- RelayLogPosition: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5,AAAAAAAA-71CA-11E1-9E33-C80AA9429562:1",
- },
- },
- "r2": {
- After: &replicationdatapb.Status{
- SourceUuid: "3E11FA47-71CA-11E1-9E33-C80AA9429562",
- RelayLogPosition: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5,AAAAAAAA-71CA-11E1-9E33-C80AA9429562:2-3",
- },
- },
- },
- expected: []string{},
- shouldErr: false,
- },
{
name: "bad primary position fails the call",
statusMap: map[string]*replicationdatapb.StopReplicationStatus{
@@ -222,7 +187,8 @@ func TestFindValidEmergencyReparentCandidates(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
- actual, err := FindValidEmergencyReparentCandidates(tt.statusMap, tt.primaryStatusMap)
+ actual, isGTIDBased, err := FindPositionsOfAllCandidates(tt.statusMap, tt.primaryStatusMap)
+ require.EqualValues(t, tt.expectedGTIDBased, isGTIDBased)
if tt.shouldErr {
assert.Error(t, err)
return
diff --git a/go/vt/vttablet/faketmclient/fake_client.go b/go/vt/vttablet/faketmclient/fake_client.go
index 6ce22310ce9..16d8585efe3 100644
--- a/go/vt/vttablet/faketmclient/fake_client.go
+++ b/go/vt/vttablet/faketmclient/fake_client.go
@@ -353,6 +353,11 @@ func (client *FakeTabletManagerClient) PopulateReparentJournal(ctx context.Conte
return nil
}
+// ReadReparentJournalInfo is part of the tmclient.TabletManagerClient interface.
+func (client *FakeTabletManagerClient) ReadReparentJournalInfo(ctx context.Context, tablet *topodatapb.Tablet) (int, error) {
+ return 10, nil
+}
+
// DemotePrimary is part of the tmclient.TabletManagerClient interface.
func (client *FakeTabletManagerClient) DemotePrimary(ctx context.Context, tablet *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error) {
return nil, nil
diff --git a/go/vt/vttablet/grpctmclient/client.go b/go/vt/vttablet/grpctmclient/client.go
index d3fe6055b19..469daba8375 100644
--- a/go/vt/vttablet/grpctmclient/client.go
+++ b/go/vt/vttablet/grpctmclient/client.go
@@ -1104,6 +1104,20 @@ func (client *Client) PopulateReparentJournal(ctx context.Context, tablet *topod
return err
}
+// ReadReparentJournalInfo is part of the tmclient.TabletManagerClient interface.
+func (client *Client) ReadReparentJournalInfo(ctx context.Context, tablet *topodatapb.Tablet) (int, error) {
+ c, closer, err := client.dialer.dial(ctx, tablet)
+ if err != nil {
+ return 0, err
+ }
+ defer closer.Close()
+ resp, err := c.ReadReparentJournalInfo(ctx, &tabletmanagerdatapb.ReadReparentJournalInfoRequest{})
+ if err != nil {
+ return 0, err
+ }
+ return int(resp.Length), nil
+}
+
// InitReplica is part of the tmclient.TabletManagerClient interface.
func (client *Client) InitReplica(ctx context.Context, tablet *topodatapb.Tablet, parent *topodatapb.TabletAlias, replicationPosition string, timeCreatedNS int64, semiSync bool) error {
c, closer, err := client.dialer.dial(ctx, tablet)
diff --git a/go/vt/vttablet/grpctmserver/server.go b/go/vt/vttablet/grpctmserver/server.go
index f7e0cce9642..20db9e6223b 100644
--- a/go/vt/vttablet/grpctmserver/server.go
+++ b/go/vt/vttablet/grpctmserver/server.go
@@ -552,6 +552,17 @@ func (s *server) PopulateReparentJournal(ctx context.Context, request *tabletman
return response, s.tm.PopulateReparentJournal(ctx, request.TimeCreatedNs, request.ActionName, request.PrimaryAlias, request.ReplicationPosition)
}
+func (s *server) ReadReparentJournalInfo(ctx context.Context, request *tabletmanagerdatapb.ReadReparentJournalInfoRequest) (response *tabletmanagerdatapb.ReadReparentJournalInfoResponse, err error) {
+ defer s.tm.HandleRPCPanic(ctx, "ReadReparentJournalInfo", request, response, true /*verbose*/, &err)
+ ctx = callinfo.GRPCCallInfo(ctx)
+ response = &tabletmanagerdatapb.ReadReparentJournalInfoResponse{}
+ length, err := s.tm.ReadReparentJournalInfo(ctx)
+ if err == nil {
+ response.Length = int32(length)
+ }
+ return response, err
+}
+
func (s *server) InitReplica(ctx context.Context, request *tabletmanagerdatapb.InitReplicaRequest) (response *tabletmanagerdatapb.InitReplicaResponse, err error) {
defer s.tm.HandleRPCPanic(ctx, "InitReplica", request, response, true /*verbose*/, &err)
ctx = callinfo.GRPCCallInfo(ctx)
diff --git a/go/vt/vttablet/tabletmanager/rpc_agent.go b/go/vt/vttablet/tabletmanager/rpc_agent.go
index 41eb2bf8fde..c6242689358 100644
--- a/go/vt/vttablet/tabletmanager/rpc_agent.go
+++ b/go/vt/vttablet/tabletmanager/rpc_agent.go
@@ -138,6 +138,8 @@ type RPCTM interface {
PopulateReparentJournal(ctx context.Context, timeCreatedNS int64, actionName string, tabletAlias *topodatapb.TabletAlias, pos string) error
+ ReadReparentJournalInfo(ctx context.Context) (int, error)
+
InitReplica(ctx context.Context, parent *topodatapb.TabletAlias, replicationPosition string, timeCreatedNS int64, semiSync bool) error
DemotePrimary(ctx context.Context) (*replicationdatapb.PrimaryStatus, error)
diff --git a/go/vt/vttablet/tabletmanager/rpc_replication.go b/go/vt/vttablet/tabletmanager/rpc_replication.go
index e76f857853c..90e4d835a79 100644
--- a/go/vt/vttablet/tabletmanager/rpc_replication.go
+++ b/go/vt/vttablet/tabletmanager/rpc_replication.go
@@ -411,6 +411,24 @@ func (tm *TabletManager) PopulateReparentJournal(ctx context.Context, timeCreate
return tm.MysqlDaemon.ExecuteSuperQueryList(ctx, cmds)
}
+// ReadReparentJournalInfo reads the information from reparent journal.
+func (tm *TabletManager) ReadReparentJournalInfo(ctx context.Context) (int, error) {
+ log.Infof("ReadReparentJournalInfo")
+ if err := tm.waitForGrantsToHaveApplied(ctx); err != nil {
+ return 0, err
+ }
+
+ query := mysqlctl.ReadReparentJournalInfoQuery()
+ res, err := tm.MysqlDaemon.FetchSuperQuery(ctx, query)
+ if err != nil {
+ return 0, err
+ }
+ if len(res.Rows) != 1 {
+ return 0, vterrors.Errorf(vtrpc.Code_INTERNAL, "unexpected rows when reading reparent journal, got %v", len(res.Rows))
+ }
+ return res.Rows[0][0].ToInt()
+}
+
// InitReplica sets replication primary and position, and waits for the
// reparent_journal table entry up to context timeout
func (tm *TabletManager) InitReplica(ctx context.Context, parent *topodatapb.TabletAlias, position string, timeCreatedNS int64, semiSync bool) error {
diff --git a/go/vt/vttablet/tmclient/rpc_client_api.go b/go/vt/vttablet/tmclient/rpc_client_api.go
index 2dfe20d8658..0cc1f9ec979 100644
--- a/go/vt/vttablet/tmclient/rpc_client_api.go
+++ b/go/vt/vttablet/tmclient/rpc_client_api.go
@@ -236,6 +236,9 @@ type TabletManagerClient interface {
// its reparent_journal table.
PopulateReparentJournal(ctx context.Context, tablet *topodatapb.Tablet, timeCreatedNS int64, actionName string, tabletAlias *topodatapb.TabletAlias, pos string) error
+ // ReadReparentJournalInfo reads the information from reparent journal
+ ReadReparentJournalInfo(ctx context.Context, tablet *topodatapb.Tablet) (int, error)
+
// InitReplica tells a tablet to start replicating from the
// passed in primary tablet alias, and wait for the row in the
// reparent_journal table.
diff --git a/go/vt/vttablet/tmrpctest/test_tm_rpc.go b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
index 1d8b5cb10ee..08dbb78ba64 100644
--- a/go/vt/vttablet/tmrpctest/test_tm_rpc.go
+++ b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
@@ -1162,6 +1162,15 @@ func (fra *fakeRPCTM) PopulateReparentJournal(ctx context.Context, timeCreatedNS
return nil
}
+var testReparentJournalLen = 10
+
+func (fra *fakeRPCTM) ReadReparentJournalInfo(context.Context) (int, error) {
+ if fra.panics {
+ panic(fmt.Errorf("test-triggered panic"))
+ }
+ return testReparentJournalLen, nil
+}
+
func tmRPCTestPopulateReparentJournal(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
err := client.PopulateReparentJournal(ctx, tablet, testTimeCreatedNS, testActionName, testPrimaryAlias, testReplicationPosition)
compareError(t, "PopulateReparentJournal", err, true, testPopulateReparentJournalCalled)
@@ -1172,6 +1181,16 @@ func tmRPCTestPopulateReparentJournalPanic(ctx context.Context, t *testing.T, cl
expectHandleRPCPanic(t, "PopulateReparentJournal", true /*verbose*/, err)
}
+func tmRPCTestReadReparentJournalInfo(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
+ length, err := client.ReadReparentJournalInfo(ctx, tablet)
+ compareError(t, "ReadReparentJournalInfo", err, length, testReparentJournalLen)
+}
+
+func tmRPCTestReadReparentJournalInfoPanic(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
+ _, err := client.ReadReparentJournalInfo(ctx, tablet)
+ expectHandleRPCPanic(t, "ReadReparentJournalInfo", true /*verbose*/, err)
+}
+
func tmRPCTestWaitForPositionPanic(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
err := client.WaitForPosition(ctx, tablet, testReplicationPosition)
expectHandleRPCPanic(t, "WaitForPosition", true /*verbose*/, err)
@@ -1540,6 +1559,7 @@ func Run(t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.T
tmRPCTestResetReplication(ctx, t, client, tablet)
tmRPCTestInitPrimary(ctx, t, client, tablet)
tmRPCTestPopulateReparentJournal(ctx, t, client, tablet)
+ tmRPCTestReadReparentJournalInfo(ctx, t, client, tablet)
tmRPCTestDemotePrimary(ctx, t, client, tablet)
tmRPCTestUndoDemotePrimary(ctx, t, client, tablet)
tmRPCTestSetReplicationSource(ctx, t, client, tablet)
@@ -1599,6 +1619,7 @@ func Run(t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.T
tmRPCTestResetReplicationPanic(ctx, t, client, tablet)
tmRPCTestInitPrimaryPanic(ctx, t, client, tablet)
tmRPCTestPopulateReparentJournalPanic(ctx, t, client, tablet)
+ tmRPCTestReadReparentJournalInfoPanic(ctx, t, client, tablet)
tmRPCTestWaitForPositionPanic(ctx, t, client, tablet)
tmRPCTestDemotePrimaryPanic(ctx, t, client, tablet)
tmRPCTestUndoDemotePrimaryPanic(ctx, t, client, tablet)
diff --git a/proto/tabletmanagerdata.proto b/proto/tabletmanagerdata.proto
index 1c2d785c21c..7a7f9f8cfcd 100644
--- a/proto/tabletmanagerdata.proto
+++ b/proto/tabletmanagerdata.proto
@@ -448,6 +448,13 @@ message PopulateReparentJournalRequest {
message PopulateReparentJournalResponse {
}
+message ReadReparentJournalInfoRequest {
+}
+
+message ReadReparentJournalInfoResponse {
+ int32 length = 1;
+}
+
message InitReplicaRequest {
topodata.TabletAlias parent = 1;
string replication_position = 2;
diff --git a/proto/tabletmanagerservice.proto b/proto/tabletmanagerservice.proto
index 56ae6dde0dc..0c26ea2d568 100644
--- a/proto/tabletmanagerservice.proto
+++ b/proto/tabletmanagerservice.proto
@@ -164,6 +164,9 @@ service TabletManager {
// reparent journal
rpc PopulateReparentJournal(tabletmanagerdata.PopulateReparentJournalRequest) returns (tabletmanagerdata.PopulateReparentJournalResponse) {};
+ // ReadReparentJournalInfo reads the information from reparent journal
+ rpc ReadReparentJournalInfo(tabletmanagerdata.ReadReparentJournalInfoRequest) returns (tabletmanagerdata.ReadReparentJournalInfoResponse) {};
+
// InitReplica tells the tablet to reparent to the primary unconditionally
rpc InitReplica(tabletmanagerdata.InitReplicaRequest) returns (tabletmanagerdata.InitReplicaResponse) {};
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index d891794968d..615214cc81a 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -28820,6 +28820,194 @@ export namespace tabletmanagerdata {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** Properties of a ReadReparentJournalInfoRequest. */
+ interface IReadReparentJournalInfoRequest {
+ }
+
+ /** Represents a ReadReparentJournalInfoRequest. */
+ class ReadReparentJournalInfoRequest implements IReadReparentJournalInfoRequest {
+
+ /**
+ * Constructs a new ReadReparentJournalInfoRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IReadReparentJournalInfoRequest);
+
+ /**
+ * Creates a new ReadReparentJournalInfoRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ReadReparentJournalInfoRequest instance
+ */
+ public static create(properties?: tabletmanagerdata.IReadReparentJournalInfoRequest): tabletmanagerdata.ReadReparentJournalInfoRequest;
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoRequest message. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoRequest.verify|verify} messages.
+ * @param message ReadReparentJournalInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IReadReparentJournalInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoRequest.verify|verify} messages.
+ * @param message ReadReparentJournalInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IReadReparentJournalInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ReadReparentJournalInfoRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ReadReparentJournalInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.ReadReparentJournalInfoRequest;
+
+ /**
+ * Decodes a ReadReparentJournalInfoRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ReadReparentJournalInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.ReadReparentJournalInfoRequest;
+
+ /**
+ * Verifies a ReadReparentJournalInfoRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ReadReparentJournalInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ReadReparentJournalInfoRequest
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.ReadReparentJournalInfoRequest;
+
+ /**
+ * Creates a plain object from a ReadReparentJournalInfoRequest message. Also converts values to other types if specified.
+ * @param message ReadReparentJournalInfoRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.ReadReparentJournalInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ReadReparentJournalInfoRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ReadReparentJournalInfoRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a ReadReparentJournalInfoResponse. */
+ interface IReadReparentJournalInfoResponse {
+
+ /** ReadReparentJournalInfoResponse length */
+ length?: (number|null);
+ }
+
+ /** Represents a ReadReparentJournalInfoResponse. */
+ class ReadReparentJournalInfoResponse implements IReadReparentJournalInfoResponse {
+
+ /**
+ * Constructs a new ReadReparentJournalInfoResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IReadReparentJournalInfoResponse);
+
+ /** ReadReparentJournalInfoResponse length. */
+ public length: number;
+
+ /**
+ * Creates a new ReadReparentJournalInfoResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ReadReparentJournalInfoResponse instance
+ */
+ public static create(properties?: tabletmanagerdata.IReadReparentJournalInfoResponse): tabletmanagerdata.ReadReparentJournalInfoResponse;
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoResponse message. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoResponse.verify|verify} messages.
+ * @param message ReadReparentJournalInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IReadReparentJournalInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoResponse.verify|verify} messages.
+ * @param message ReadReparentJournalInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IReadReparentJournalInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ReadReparentJournalInfoResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ReadReparentJournalInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.ReadReparentJournalInfoResponse;
+
+ /**
+ * Decodes a ReadReparentJournalInfoResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ReadReparentJournalInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.ReadReparentJournalInfoResponse;
+
+ /**
+ * Verifies a ReadReparentJournalInfoResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ReadReparentJournalInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ReadReparentJournalInfoResponse
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.ReadReparentJournalInfoResponse;
+
+ /**
+ * Creates a plain object from a ReadReparentJournalInfoResponse message. Also converts values to other types if specified.
+ * @param message ReadReparentJournalInfoResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.ReadReparentJournalInfoResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ReadReparentJournalInfoResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ReadReparentJournalInfoResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
/** Properties of an InitReplicaRequest. */
interface IInitReplicaRequest {
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 945a0fdab1a..3649e9e2c67 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -65932,6 +65932,384 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
return PopulateReparentJournalResponse;
})();
+ tabletmanagerdata.ReadReparentJournalInfoRequest = (function() {
+
+ /**
+ * Properties of a ReadReparentJournalInfoRequest.
+ * @memberof tabletmanagerdata
+ * @interface IReadReparentJournalInfoRequest
+ */
+
+ /**
+ * Constructs a new ReadReparentJournalInfoRequest.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a ReadReparentJournalInfoRequest.
+ * @implements IReadReparentJournalInfoRequest
+ * @constructor
+ * @param {tabletmanagerdata.IReadReparentJournalInfoRequest=} [properties] Properties to set
+ */
+ function ReadReparentJournalInfoRequest(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Creates a new ReadReparentJournalInfoRequest instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoRequest=} [properties] Properties to set
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoRequest} ReadReparentJournalInfoRequest instance
+ */
+ ReadReparentJournalInfoRequest.create = function create(properties) {
+ return new ReadReparentJournalInfoRequest(properties);
+ };
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoRequest message. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoRequest.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoRequest} message ReadReparentJournalInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadReparentJournalInfoRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoRequest} message ReadReparentJournalInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadReparentJournalInfoRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ReadReparentJournalInfoRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoRequest} ReadReparentJournalInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadReparentJournalInfoRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.ReadReparentJournalInfoRequest();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ReadReparentJournalInfoRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoRequest} ReadReparentJournalInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadReparentJournalInfoRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ReadReparentJournalInfoRequest message.
+ * @function verify
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ReadReparentJournalInfoRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ return null;
+ };
+
+ /**
+ * Creates a ReadReparentJournalInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoRequest} ReadReparentJournalInfoRequest
+ */
+ ReadReparentJournalInfoRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.ReadReparentJournalInfoRequest)
+ return object;
+ return new $root.tabletmanagerdata.ReadReparentJournalInfoRequest();
+ };
+
+ /**
+ * Creates a plain object from a ReadReparentJournalInfoRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {tabletmanagerdata.ReadReparentJournalInfoRequest} message ReadReparentJournalInfoRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ReadReparentJournalInfoRequest.toObject = function toObject() {
+ return {};
+ };
+
+ /**
+ * Converts this ReadReparentJournalInfoRequest to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ReadReparentJournalInfoRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ReadReparentJournalInfoRequest
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ReadReparentJournalInfoRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.ReadReparentJournalInfoRequest";
+ };
+
+ return ReadReparentJournalInfoRequest;
+ })();
+
+ tabletmanagerdata.ReadReparentJournalInfoResponse = (function() {
+
+ /**
+ * Properties of a ReadReparentJournalInfoResponse.
+ * @memberof tabletmanagerdata
+ * @interface IReadReparentJournalInfoResponse
+ * @property {number|null} [length] ReadReparentJournalInfoResponse length
+ */
+
+ /**
+ * Constructs a new ReadReparentJournalInfoResponse.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a ReadReparentJournalInfoResponse.
+ * @implements IReadReparentJournalInfoResponse
+ * @constructor
+ * @param {tabletmanagerdata.IReadReparentJournalInfoResponse=} [properties] Properties to set
+ */
+ function ReadReparentJournalInfoResponse(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ReadReparentJournalInfoResponse length.
+ * @member {number} length
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @instance
+ */
+ ReadReparentJournalInfoResponse.prototype.length = 0;
+
+ /**
+ * Creates a new ReadReparentJournalInfoResponse instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoResponse=} [properties] Properties to set
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoResponse} ReadReparentJournalInfoResponse instance
+ */
+ ReadReparentJournalInfoResponse.create = function create(properties) {
+ return new ReadReparentJournalInfoResponse(properties);
+ };
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoResponse message. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoResponse.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoResponse} message ReadReparentJournalInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadReparentJournalInfoResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.length != null && Object.hasOwnProperty.call(message, "length"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.length);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ReadReparentJournalInfoResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.ReadReparentJournalInfoResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IReadReparentJournalInfoResponse} message ReadReparentJournalInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ReadReparentJournalInfoResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ReadReparentJournalInfoResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoResponse} ReadReparentJournalInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadReparentJournalInfoResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.ReadReparentJournalInfoResponse();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.length = reader.int32();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ReadReparentJournalInfoResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoResponse} ReadReparentJournalInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ReadReparentJournalInfoResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ReadReparentJournalInfoResponse message.
+ * @function verify
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ReadReparentJournalInfoResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.length != null && message.hasOwnProperty("length"))
+ if (!$util.isInteger(message.length))
+ return "length: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a ReadReparentJournalInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.ReadReparentJournalInfoResponse} ReadReparentJournalInfoResponse
+ */
+ ReadReparentJournalInfoResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.ReadReparentJournalInfoResponse)
+ return object;
+ let message = new $root.tabletmanagerdata.ReadReparentJournalInfoResponse();
+ if (object.length != null)
+ message.length = object.length | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ReadReparentJournalInfoResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {tabletmanagerdata.ReadReparentJournalInfoResponse} message ReadReparentJournalInfoResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ReadReparentJournalInfoResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults)
+ object.length = 0;
+ if (message.length != null && message.hasOwnProperty("length"))
+ object.length = message.length;
+ return object;
+ };
+
+ /**
+ * Converts this ReadReparentJournalInfoResponse to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ReadReparentJournalInfoResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ReadReparentJournalInfoResponse
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.ReadReparentJournalInfoResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ReadReparentJournalInfoResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.ReadReparentJournalInfoResponse";
+ };
+
+ return ReadReparentJournalInfoResponse;
+ })();
+
tabletmanagerdata.InitReplicaRequest = (function() {
/**
From fa5a2c5c68f255b1d31a90b8e2951081860888fb Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Mon, 28 Oct 2024 16:53:35 +0530
Subject: [PATCH 14/78] Delegate Column Availability Checks to MySQL for
Single-Route Queries (#17077)
Signed-off-by: Harshit Gangal
Signed-off-by: Andres Taylor
Co-authored-by: Andres Taylor
---
.../planbuilder/operators/plan_query.go | 33 ++++++++++++++++---
.../planbuilder/testdata/select_cases.json | 29 ++++++++++++++++
2 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/go/vt/vtgate/planbuilder/operators/plan_query.go b/go/vt/vtgate/planbuilder/operators/plan_query.go
index baa9a7883e2..dc83c89c72c 100644
--- a/go/vt/vtgate/planbuilder/operators/plan_query.go
+++ b/go/vt/vtgate/planbuilder/operators/plan_query.go
@@ -43,6 +43,7 @@ import (
"vitess.io/vitess/go/vt/sqlparser"
"vitess.io/vitess/go/vt/vterrors"
"vitess.io/vitess/go/vt/vtgate/planbuilder/plancontext"
+ "vitess.io/vitess/go/vt/vtgate/semantics"
)
type (
@@ -73,13 +74,35 @@ func PlanQuery(ctx *plancontext.PlanningContext, stmt sqlparser.Statement) (resu
checkValid(op)
op = planQuery(ctx, op)
- _, isRoute := op.(*Route)
- if !isRoute && ctx.SemTable.NotSingleRouteErr != nil {
- // If we got here, we don't have a single shard plan
- return nil, ctx.SemTable.NotSingleRouteErr
+ if err := checkSingleRouteError(ctx, op); err != nil {
+ return nil, err
}
- return op, err
+ return op, nil
+}
+
+// checkSingleRouteError checks if the query has a NotSingleRouteErr and more than one route, and returns an error if it does
+func checkSingleRouteError(ctx *plancontext.PlanningContext, op Operator) error {
+ if ctx.SemTable.NotSingleRouteErr == nil {
+ return nil
+ }
+ routes := 0
+ visitF := func(op Operator, _ semantics.TableSet, _ bool) (Operator, *ApplyResult) {
+ switch op.(type) {
+ case *Route:
+ routes++
+ }
+ return op, NoRewrite
+ }
+
+ // we'll walk the tree and count the number of routes
+ TopDown(op, TableID, visitF, stopAtRoute)
+
+ if routes <= 1 {
+ return nil
+ }
+
+ return ctx.SemTable.NotSingleRouteErr
}
func PanicHandler(err *error) {
diff --git a/go/vt/vtgate/planbuilder/testdata/select_cases.json b/go/vt/vtgate/planbuilder/testdata/select_cases.json
index 185bd6938df..ab69df2cc47 100644
--- a/go/vt/vtgate/planbuilder/testdata/select_cases.json
+++ b/go/vt/vtgate/planbuilder/testdata/select_cases.json
@@ -65,6 +65,35 @@
]
}
},
+ {
+ "comment": "join on sharding column with limit - should be a simple scatter query and limit on top with non resolved columns",
+ "query": "select * from user u join user_metadata um on u.id = um.user_id where foo=41 limit 20",
+ "plan": {
+ "QueryType": "SELECT",
+ "Original": "select * from user u join user_metadata um on u.id = um.user_id where foo=41 limit 20",
+ "Instructions": {
+ "OperatorType": "Limit",
+ "Count": "20",
+ "Inputs": [
+ {
+ "OperatorType": "Route",
+ "Variant": "Scatter",
+ "Keyspace": {
+ "Name": "user",
+ "Sharded": true
+ },
+ "FieldQuery": "select * from `user` as u, user_metadata as um where 1 != 1",
+ "Query": "select * from `user` as u, user_metadata as um where foo = 41 and u.id = um.user_id limit 20",
+ "Table": "`user`, user_metadata"
+ }
+ ]
+ },
+ "TablesUsed": [
+ "user.user",
+ "user.user_metadata"
+ ]
+ }
+ },
{
"comment": "select with timeout directive sets QueryTimeout in the route",
"query": "select /*vt+ QUERY_TIMEOUT_MS=1000 */ * from user",
From 4550640e0882ad71d79bde47e78f7e2123522145 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Mon, 28 Oct 2024 11:07:26 -0400
Subject: [PATCH 15/78] Improve Schema Engine's TablesWithSize80 query (#17066)
Signed-off-by: Matt Lord
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Co-authored-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/mysql/flavor_mysql.go | 37 +++++++++++++++++++++-------
go/vt/vttablet/onlineddl/executor.go | 12 ++++++---
2 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/go/mysql/flavor_mysql.go b/go/mysql/flavor_mysql.go
index 5d92694e9f2..b840c3cca36 100644
--- a/go/mysql/flavor_mysql.go
+++ b/go/mysql/flavor_mysql.go
@@ -413,15 +413,20 @@ const BaseShowTables = `SELECT t.table_name,
`
// TablesWithSize80 is a query to select table along with size for mysql 8.0
-//
// Note the following:
-// - We use a single query to fetch both partitioned and non-partitioned tables. This is because
-// accessing `information_schema.innodb_tablespaces` is expensive on servers with many tablespaces,
-// and every query that loads the table needs to perform full table scans on it. Doing a single
-// table scan is more efficient than doing more than one.
-// - We utilize `INFORMATION_SCHEMA`.`TABLES`.`CREATE_OPTIONS` column to do early pruning before the JOIN.
// - `TABLES`.`TABLE_NAME` has `utf8mb4_0900_ai_ci` collation. `INNODB_TABLESPACES`.`NAME` has `utf8mb3_general_ci`.
// We normalize the collation to get better query performance (we force the casting at the time of our choosing)
+// - InnoDB has different table names than MySQL does, in particular for partitioned tables. As far as InnoDB
+// is concerned, each partition is its own table.
+// - We use a `UNION ALL` approach to handle two distinct scenarios: tables that are partitioned and those that are not.
+// Since we `LEFT JOIN` from `TABLES` to `INNODB_TABLESPACES`, we know we already do full table scan on `TABLES`. We therefore
+// don't mind spending some extra computation time (as in `CONCAT(t.table_schema, '/', t.table_name, '#p#%') COLLATE utf8mb3_general_ci`)
+// to make things easier for the JOIN.
+// - We utilize `INFORMATION_SCHEMA`.`TABLES`.`CREATE_OPTIONS` column to tell if the table is partitioned or not. The column
+// may be `NULL` or may have multiple attributes, one of which is "partitioned", which we are looking for.
+// - In a partitioned table, InnoDB will return multiple rows for the same table name, one for each partition, which we successively SUM.
+// We also `SUM` the sizes in the non-partitioned case. This is not because we need to, but because it makes the query
+// symmetric and less prone to future edit errors.
const TablesWithSize80 = `SELECT t.table_name,
t.table_type,
UNIX_TIMESTAMP(t.create_time),
@@ -429,10 +434,24 @@ const TablesWithSize80 = `SELECT t.table_name,
SUM(i.file_size),
SUM(i.allocated_size)
FROM information_schema.tables t
- LEFT JOIN information_schema.innodb_tablespaces i
- ON i.name LIKE CONCAT(t.table_schema, '/', t.table_name, IF(t.create_options <=> 'partitioned', '#p#%', '')) COLLATE utf8mb3_general_ci
+ LEFT JOIN (SELECT name, file_size, allocated_size FROM information_schema.innodb_tablespaces WHERE name LIKE CONCAT(database(), '/%')) i
+ ON i.name = CONCAT(t.table_schema, '/', t.table_name) COLLATE utf8mb3_general_ci
WHERE
- t.table_schema = database()
+ t.table_schema = database() AND IFNULL(t.create_options, '') NOT LIKE '%partitioned%'
+ GROUP BY
+ t.table_schema, t.table_name, t.table_type, t.create_time, t.table_comment
+UNION ALL
+SELECT t.table_name,
+ t.table_type,
+ UNIX_TIMESTAMP(t.create_time),
+ t.table_comment,
+ SUM(i.file_size),
+ SUM(i.allocated_size)
+ FROM information_schema.tables t
+ LEFT JOIN (SELECT name, file_size, allocated_size FROM information_schema.innodb_tablespaces WHERE name LIKE CONCAT(database(), '/%')) i
+ ON i.name LIKE (CONCAT(t.table_schema, '/', t.table_name, '#p#%') COLLATE utf8mb3_general_ci)
+ WHERE
+ t.table_schema = database() AND t.create_options LIKE '%partitioned%'
GROUP BY
t.table_schema, t.table_name, t.table_type, t.create_time, t.table_comment
`
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index b430345bfac..e140abfdc6e 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -891,8 +891,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
migrationCutOverThreshold := getMigrationCutOverThreshold(onlineDDL)
- waitForPos := func(s *VReplStream, pos replication.Position) error {
- ctx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ waitForPos := func(s *VReplStream, pos replication.Position, timeout time.Duration) error {
+ ctx, cancel := context.WithTimeout(ctx, timeout)
defer cancel()
// Wait for target to reach the up-to-date pos
if err := tmClient.VReplicationWaitForPos(ctx, tablet.Tablet, s.id, replication.EncodePosition(pos)); err != nil {
@@ -953,7 +953,11 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
return vterrors.Wrapf(err, "failed getting primary pos after sentry creation")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-sentry pos: %v", replication.EncodePosition(postSentryPos))
- if err := waitForPos(s, postSentryPos); err != nil {
+ // We have not yet locked anything, stopped anything, or done anything that otherwise
+ // impacts query serving so we wait for a multiple of the cutover threshold here, with
+ // that variable primarily serving to limit the max time we later spend waiting for
+ // a position again AFTER we've taken the locks and table access is blocked.
+ if err := waitForPos(s, postSentryPos, migrationCutOverThreshold*3); err != nil {
return vterrors.Wrapf(err, "failed waiting for pos after sentry creation")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "post-sentry pos reached")
@@ -1151,7 +1155,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-lock pos: %v", replication.EncodePosition(postWritesPos))
- if err := waitForPos(s, postWritesPos); err != nil {
+ if err := waitForPos(s, postWritesPos, migrationCutOverThreshold); err != nil {
e.updateMigrationStage(ctx, onlineDDL.UUID, "timeout while waiting for post-lock pos: %v", err)
return vterrors.Wrapf(err, "failed waiting for pos after locking")
}
From c21d1dee4a2ccff898e7b4d6f84f17a894c2e0ed Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Mon, 28 Oct 2024 23:46:08 -0600
Subject: [PATCH 16/78] [main] Copy `v21.0.0` release notes (#17097)
Signed-off-by: Rohit Nayak
Co-authored-by: Rohit Nayak
---
changelog/21.0/21.0.0/changelog.md | 23 +++++++++++++-----
changelog/21.0/21.0.0/release_notes.md | 33 ++++++++++++++++++--------
changelog/21.0/21.0.0/summary.md | 22 +++++++++++++++++
3 files changed, 62 insertions(+), 16 deletions(-)
diff --git a/changelog/21.0/21.0.0/changelog.md b/changelog/21.0/21.0.0/changelog.md
index 5b917f95867..32b09e1344e 100644
--- a/changelog/21.0/21.0.0/changelog.md
+++ b/changelog/21.0/21.0.0/changelog.md
@@ -14,7 +14,8 @@
* Fix golang upgrade workflow [#16890](https://github.com/vitessio/vitess/pull/16890)
#### Cluster management
* Use default schema reload config values when config file is empty [#16393](https://github.com/vitessio/vitess/pull/16393)
- * fix: Use authentication_policy to specify default auth plugin for MySQL 8.4 [#16426](https://github.com/vitessio/vitess/pull/16426)
+ * fix: Use authentication_policy to specify default auth plugin for MySQL 8.4 [#16426](https://github.com/vitessio/vitess/pull/16426)
+ * [Direct PR] [release-21.0] Revert Errant GTID detection in vttablets [#17019](https://github.com/vitessio/vitess/pull/17019)
#### Docker
* Fix the install dependencies script in Docker [#16340](https://github.com/vitessio/vitess/pull/16340)
#### Documentation
@@ -90,7 +91,8 @@
* Migrate Workflow: Scope vindex names correctly when target and source keyspace have different names [#16769](https://github.com/vitessio/vitess/pull/16769)
* VReplication: Support both vindex col def formats when initing target sequences [#16862](https://github.com/vitessio/vitess/pull/16862)
* [release-21.0] fix: Infinite logs in case of non-existent stream logs (#17004) [#17014](https://github.com/vitessio/vitess/pull/17014)
- * [release-21.0] VReplication: Support reversing read-only traffic in vtctldclient (#16920) [#17015](https://github.com/vitessio/vitess/pull/17015)
+ * [release-21.0] VReplication: Support reversing read-only traffic in vtctldclient (#16920) [#17015](https://github.com/vitessio/vitess/pull/17015)
+ * [release-21.0] Use proper zstd decoder pool for binlog event compression handling (#17042) [#17045](https://github.com/vitessio/vitess/pull/17045)
#### VTAdmin
* VTAdmin: Upgrade websockets js package [#16504](https://github.com/vitessio/vitess/pull/16504)
* VTAdmin: Fix serve-handler's path-to-regexp dep and add default schema refresh [#16778](https://github.com/vitessio/vitess/pull/16778)
@@ -128,7 +130,8 @@
* [release-21.0] Flakes: Address flakes in TestMoveTables* unit tests (#16942) [#16951](https://github.com/vitessio/vitess/pull/16951)
#### Docker
* Docker: Update node vtadmin version [#16147](https://github.com/vitessio/vitess/pull/16147)
- * Fix `docker_lite_push` make target [#16662](https://github.com/vitessio/vitess/pull/16662)
+ * Fix `docker_lite_push` make target [#16662](https://github.com/vitessio/vitess/pull/16662)
+ * [release-21.0] Build `vttestserver` in GHA and send Slack message on Docker Build failure (#16963) [#17047](https://github.com/vitessio/vitess/pull/17047)
#### General
* [main] Upgrade the Golang version to `go1.22.4` [#16062](https://github.com/vitessio/vitess/pull/16062)
* [main] Upgrade the Golang version to `go1.22.5` [#16319](https://github.com/vitessio/vitess/pull/16319)
@@ -169,6 +172,8 @@
* [release-21.0] Add missing changelog for PR #16852 (#17002) [#17006](https://github.com/vitessio/vitess/pull/17006)
#### General
* release notes: update dml related release notes [#16241](https://github.com/vitessio/vitess/pull/16241)
+#### Query Serving
+ * [Direct PR][release note]: Atomic Distributed Transaction [#17079](https://github.com/vitessio/vitess/pull/17079)
#### VReplication
* Release docs: Add vreplication related entries to the v20 summary [#16259](https://github.com/vitessio/vitess/pull/16259)
#### VTTablet
@@ -183,7 +188,8 @@
* Prefer replicas that have innodb buffer pool populated in PRS [#16374](https://github.com/vitessio/vitess/pull/16374)
* Allow cross cell promotion in PRS [#16461](https://github.com/vitessio/vitess/pull/16461)
* Fix: Errant GTID detection on the replicas when they set replication source [#16833](https://github.com/vitessio/vitess/pull/16833)
- * [release-21.0] [Direct PR] Add RPC to read the reparent journal position [#16982](https://github.com/vitessio/vitess/pull/16982)
+ * [release-21.0] [Direct PR] Add RPC to read the reparent journal position [#16982](https://github.com/vitessio/vitess/pull/16982)
+ * [Direct PR] [release-21.0] Augment `PrimaryStatus` to also send Server UUID [#17032](https://github.com/vitessio/vitess/pull/17032)
#### Docker
* Remove the `bootstrap` dependency on the Docker images we ship [#16339](https://github.com/vitessio/vitess/pull/16339)
#### Evalengine
@@ -374,7 +380,7 @@
* Support passing filters to `discovery.NewHealthCheck(...)` [#16170](https://github.com/vitessio/vitess/pull/16170)
#### VTTablet
* `txthrottler`: move `ThrottlerInterface` to `go/vt/throttler`, use `slices` pkg, add stats [#16248](https://github.com/vitessio/vitess/pull/16248)
- * Deprecate vttablet metrics `QueryCacheXX` and rename to `TabletQueryPlanCacheXX` [#16289](https://github.com/vitessio/vitess/pull/16289)
+ * Deprecate vttablet metrics `QueryCacheXX` and rename to `QueryPlanCacheXX` [#16289](https://github.com/vitessio/vitess/pull/16289)
#### schema management
* `schemadiff`/Online DDL internal refactor [#16767](https://github.com/vitessio/vitess/pull/16767)
#### vtctldclient
@@ -400,6 +406,7 @@
* feat: add a LIMIT 1 on EXISTS subqueries to limit network overhead [#16153](https://github.com/vitessio/vitess/pull/16153)
* bugfix: Allow cross-keyspace joins [#16520](https://github.com/vitessio/vitess/pull/16520)
* [release-21.0] [Direct PR] fix: route engine to handle column truncation for execute after lookup (#16981) [#16986](https://github.com/vitessio/vitess/pull/16986)
+ * [release-21.0] Add support for `MultiEqual` opcode for lookup vindexes. (#16975) [#17041](https://github.com/vitessio/vitess/pull/17041)
### Release
#### Build/CI
* [release-21.0] Fix the release workflow (#16964) [#17020](https://github.com/vitessio/vitess/pull/17020)
@@ -416,6 +423,9 @@
* [release-21.0] Code Freeze for `v21.0.0-RC1` [#16912](https://github.com/vitessio/vitess/pull/16912)
* [release-21.0] Release of `v21.0.0-RC1` [#16950](https://github.com/vitessio/vitess/pull/16950)
* [release-21.0] Bump to `v21.0.0-SNAPSHOT` after the `v21.0.0-RC1` release [#16955](https://github.com/vitessio/vitess/pull/16955)
+ * [release-21.0] Release of `v21.0.0-RC2` [#17022](https://github.com/vitessio/vitess/pull/17022)
+ * [release-21.0] Bump to `v21.0.0-SNAPSHOT` after the `v21.0.0-RC2` release [#17049](https://github.com/vitessio/vitess/pull/17049)
+ * [release-21.0] Add release notes for known issue in v21.0.0 [#17067](https://github.com/vitessio/vitess/pull/17067)
### Testing
#### Build/CI
* Online DDL flow CI: Update golang version to 1.22.4 [#16066](https://github.com/vitessio/vitess/pull/16066)
@@ -446,7 +456,8 @@
* Add a test to verify we respect the overall query timeout [#16800](https://github.com/vitessio/vitess/pull/16800)
* flaky test fix for query timeout change [#16821](https://github.com/vitessio/vitess/pull/16821)
* Fix error message check on query timeout [#16827](https://github.com/vitessio/vitess/pull/16827)
- * upgrade vitess-tester to latest version [#16884](https://github.com/vitessio/vitess/pull/16884)
+ * upgrade vitess-tester to latest version [#16884](https://github.com/vitessio/vitess/pull/16884)
+ * Relax vexplain test for upcoming changes [#17035](https://github.com/vitessio/vitess/pull/17035)
#### Throttler
* Throttler flaky test: explicitly disabling throttler so as to ensure it does not re-enable [#16369](https://github.com/vitessio/vitess/pull/16369)
#### VReplication
diff --git a/changelog/21.0/21.0.0/release_notes.md b/changelog/21.0/21.0.0/release_notes.md
index a97adc5ad64..956d5c3ee1c 100644
--- a/changelog/21.0/21.0.0/release_notes.md
+++ b/changelog/21.0/21.0.0/release_notes.md
@@ -3,12 +3,15 @@
### Table of Contents
+- **[Known Issue](#known-issues)**
+ - **[Backup reports itself as successful despite failures](#backup-reports-as-successful)**
- **[Major Changes](#major-changes)**
- **[Deprecations and Deletions](#deprecations-and-deletions)**
- [Deprecated VTTablet Flags](#vttablet-flags)
- [Deletion of deprecated metrics](#metric-deletion)
- [Deprecated Metrics](#deprecations-metrics)
- **[Traffic Mirroring](#traffic-mirroring)**
+ - **[Atomic Distributed Transaction Support](#atomic-transaction)**
- **[New VTGate Shutdown Behavior](#new-vtgate-shutdown-behavior)**
- **[Tablet Throttler: Multi-Metric support](#tablet-throttler)**
- **[Allow Cross Cell Promotion in PRS](#allow-cross-cell)**
@@ -19,13 +22,20 @@
- **[Dynamic VReplication Configuration](#dynamic-vreplication-configuration)**
- **[Reference Table Materialization](#reference-table-materialization)**
- **[New VEXPLAIN Modes: TRACE and KEYS](#new-vexplain-modes)**
- - **[Errant GTID Detection on VTTablets](#errant-gtid-vttablet)**
- **[Automatically Replace MySQL auto_increment Clauses with Vitess Sequences](#auto-replace-mysql-autoinc-with-seq)**
- **[Experimental MySQL 8.4 support](#experimental-mysql-84)**
- **[Current Errant GTIDs Count Metric](#errant-gtid-metric)**
- **[vtctldclient ChangeTabletTags](#vtctldclient-changetablettags)**
- **[Support for specifying expected primary in reparents](#reparents-expectedprimary)**
+## Known Issue
+
+### Backup reports itself as successful despite failures
+
+In this release, we identified an issue where a backup may succeed even if a file fails to be backed up.
+Leading to a successful backup, even if some errors occurred.
+This only happen with the Builtin Backup Engine, and when all files have already been initiated in the backup process.
+For more details, please refer to the related GitHub Issue https://github.com/vitessio/vitess/issues/17063.
## Major Changes
@@ -81,6 +91,17 @@ $ vtctldclient --server :15999 MoveTables --target-keyspace customer --workflow
Mirror rules can be inspected with `GetMirrorRules`.
+### Atomic Distributed Transaction Support
+
+We have introduced atomic distributed transactions as an experimental feature.
+Users can now run multi-shard transactions with stronger guarantees.
+Vitess now provides two modes of transactional guarantees for multi-shard transactions: Best Effort and Atomic.
+These can be selected based on the user’s requirements and the trade-offs they are willing to make.
+
+Follow the documentation to enable [Atomic Distributed Transaction](https://vitess.io/docs/21.0/reference/features/distributed-transaction/)
+
+For more details on the implementation and trade-offs, please refer to the [RFC](https://github.com/vitessio/vitess/issues/16245)
+
### New VTGate Shutdown Behavior
We added a new option to VTGate to disallow new connections while VTGate is shutting down,
@@ -209,14 +230,6 @@ filter columns (potential candidates for indexes, primary keys, or sharding keys
These new `VEXPLAIN` modes enhance Vitess's query analysis capabilities, allowing for more informed decisions about sharding
strategies and query optimization.
-### Errant GTID Detection on VTTablets
-
-VTTablets now run an errant GTID detection logic before they join the replication stream. So, if a replica has an errant GTID, it will
-not start replicating from the primary. This protects us from running into situations which are very difficult to recover from.
-
-For users running with the vitess-operator on Kubernetes, this change means that replica tablets with errant GTIDs will have broken
-replication and will report as unready. Users will need to manually replace and clean up these errant replica tablets.
-
### Automatically Replace MySQL auto_increment Clauses with Vitess Sequences
In https://github.com/vitessio/vitess/pull/16860 we added support for replacing MySQL `auto_increment` clauses with [Vitess Sequences](https://vitess.io/docs/reference/features/vitess-sequences/), performing all of the setup and initialization
@@ -244,7 +257,7 @@ The `EmergencyReparentShard` and `PlannedReparentShard` commands and RPCs now su
------------
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/21.0/21.0.0/changelog.md).
-The release includes 354 merged Pull Requests.
+The release includes 364 merged Pull Requests.
Thanks to all our contributors: @GrahamCampbell, @GuptaManan100, @Utkar5hM, @anshikavashistha, @app/dependabot, @app/vitess-bot, @arthurschreiber, @beingnoble03, @brendar, @cameronmccord2, @chrism1001, @cuishuang, @dbussink, @deepthi, @demmer, @frouioui, @harshit-gangal, @harshitasao, @icyflame, @kirtanchandak, @mattlord, @mattrobenolt, @maxenglander, @mcrauwel, @notfelineit, @perminov, @rafer, @rohit-nayak-ps, @runewake2, @rvrangel, @shanth96, @shlomi-noach, @systay, @timvaillancourt, @vitess-bot
diff --git a/changelog/21.0/21.0.0/summary.md b/changelog/21.0/21.0.0/summary.md
index 9562c127952..fcac56180a9 100644
--- a/changelog/21.0/21.0.0/summary.md
+++ b/changelog/21.0/21.0.0/summary.md
@@ -2,12 +2,15 @@
### Table of Contents
+- **[Known Issue](#known-issues)**
+ - **[Backup reports itself as successful despite failures](#backup-reports-as-successful)**
- **[Major Changes](#major-changes)**
- **[Deprecations and Deletions](#deprecations-and-deletions)**
- [Deprecated VTTablet Flags](#vttablet-flags)
- [Deletion of deprecated metrics](#metric-deletion)
- [Deprecated Metrics](#deprecations-metrics)
- **[Traffic Mirroring](#traffic-mirroring)**
+ - **[Atomic Distributed Transaction Support](#atomic-transaction)**
- **[New VTGate Shutdown Behavior](#new-vtgate-shutdown-behavior)**
- **[Tablet Throttler: Multi-Metric support](#tablet-throttler)**
- **[Allow Cross Cell Promotion in PRS](#allow-cross-cell)**
@@ -24,6 +27,14 @@
- **[vtctldclient ChangeTabletTags](#vtctldclient-changetablettags)**
- **[Support for specifying expected primary in reparents](#reparents-expectedprimary)**
+## Known Issue
+
+### Backup reports itself as successful despite failures
+
+In this release, we identified an issue where a backup may succeed even if a file fails to be backed up.
+Leading to a successful backup, even if some errors occurred.
+This only happen with the Builtin Backup Engine, and when all files have already been initiated in the backup process.
+For more details, please refer to the related GitHub Issue https://github.com/vitessio/vitess/issues/17063.
## Major Changes
@@ -79,6 +90,17 @@ $ vtctldclient --server :15999 MoveTables --target-keyspace customer --workflow
Mirror rules can be inspected with `GetMirrorRules`.
+### Atomic Distributed Transaction Support
+
+We have introduced atomic distributed transactions as an experimental feature.
+Users can now run multi-shard transactions with stronger guarantees.
+Vitess now provides two modes of transactional guarantees for multi-shard transactions: Best Effort and Atomic.
+These can be selected based on the user’s requirements and the trade-offs they are willing to make.
+
+Follow the documentation to enable [Atomic Distributed Transaction](https://vitess.io/docs/21.0/reference/features/distributed-transaction/)
+
+For more details on the implementation and trade-offs, please refer to the [RFC](https://github.com/vitessio/vitess/issues/16245)
+
### New VTGate Shutdown Behavior
We added a new option to VTGate to disallow new connections while VTGate is shutting down,
From d1220c453c46058883a02e6a2cf5e054027af975 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Tue, 29 Oct 2024 16:49:49 +0530
Subject: [PATCH 17/78] java package updates for grpc and protobuf and release
plugins (#17100)
Signed-off-by: Harshit Gangal
---
.../client/VTGateBlockingConnection.java | 3 --
.../io/vitess/client/VTGateConnection.java | 3 --
.../main/java/io/vitess/client/VTSession.java | 2 +-
.../io/vitess/client/grpc/tls/TlsOptions.java | 3 +-
java/grpc-client/pom.xml | 4 +++
.../client/grpc/RetryingInterceptor.java | 4 +--
.../client/grpc/RetryingInterceptorTest.java | 6 ++++
.../java/io/vitess/jdbc/VitessConnection.java | 3 +-
.../java/io/vitess/jdbc/VitessDriver.java | 2 --
.../java/io/vitess/jdbc/VitessJDBCUrl.java | 2 --
.../java/io/vitess/jdbc/VitessStatement.java | 1 -
.../vitess/util/charset/CharsetMapping.java | 2 ++
java/pom.xml | 33 +++++++++++--------
13 files changed, 36 insertions(+), 32 deletions(-)
diff --git a/java/client/src/main/java/io/vitess/client/VTGateBlockingConnection.java b/java/client/src/main/java/io/vitess/client/VTGateBlockingConnection.java
index 4c24c12bfcf..8a19659ef65 100644
--- a/java/client/src/main/java/io/vitess/client/VTGateBlockingConnection.java
+++ b/java/client/src/main/java/io/vitess/client/VTGateBlockingConnection.java
@@ -111,9 +111,6 @@ public Cursor streamExecute(Context ctx,
return vtGateConnection.streamExecute(ctx, query, bindVars, vtSession);
}
- /**
- * @inheritDoc
- */
@Override
public void close() throws IOException {
vtGateConnection.close();
diff --git a/java/client/src/main/java/io/vitess/client/VTGateConnection.java b/java/client/src/main/java/io/vitess/client/VTGateConnection.java
index ee2fb270a9a..683f4bf5f15 100644
--- a/java/client/src/main/java/io/vitess/client/VTGateConnection.java
+++ b/java/client/src/main/java/io/vitess/client/VTGateConnection.java
@@ -205,9 +205,6 @@ StreamIterator getVStream(Context ctx, VStreamRequest vstreamRe
return client.getVStream(ctx, request);
}
- /**
- * @inheritDoc
- */
@Override
public void close() throws IOException {
client.close();
diff --git a/java/client/src/main/java/io/vitess/client/VTSession.java b/java/client/src/main/java/io/vitess/client/VTSession.java
index 9974e5f034a..3b52b4d3c2e 100644
--- a/java/client/src/main/java/io/vitess/client/VTSession.java
+++ b/java/client/src/main/java/io/vitess/client/VTSession.java
@@ -103,7 +103,7 @@ public Query.ExecuteOptions.TransactionIsolation getTransactionIsolation() {
/**
* Sets this session's transaction isolation level.
*
- * @param Transaction Isolation Level of the Session
+ * @param isolation Isolation Level of the Session
*/
public void setTransactionIsolation(Query.ExecuteOptions.TransactionIsolation isolation) {
this.session = this.session.toBuilder()
diff --git a/java/client/src/main/java/io/vitess/client/grpc/tls/TlsOptions.java b/java/client/src/main/java/io/vitess/client/grpc/tls/TlsOptions.java
index ffd570d413b..4defac70378 100644
--- a/java/client/src/main/java/io/vitess/client/grpc/tls/TlsOptions.java
+++ b/java/client/src/main/java/io/vitess/client/grpc/tls/TlsOptions.java
@@ -17,11 +17,10 @@
package io.vitess.client.grpc.tls;
import java.io.File;
-import java.net.InetSocketAddress;
/**
* A wrapper type holding TLS-related fields for the
- * {@link io.vitess.client.RpcClientFactory#createTls(InetSocketAddress, TlsOptions)} method, so
+ * createTls(InetSocketAddress, TlsOptions) method, so
* that this method won't have an unwieldy number of direct parameters.
*
* This path uses a builder pattern style:
diff --git a/java/grpc-client/pom.xml b/java/grpc-client/pom.xml
index 23c4f0d91f1..55c406b0e8f 100644
--- a/java/grpc-client/pom.xml
+++ b/java/grpc-client/pom.xml
@@ -51,6 +51,10 @@
io.grpc
grpc-api
+
+ io.grpc
+ grpc-inprocess
+
io.netty
netty-handler
diff --git a/java/grpc-client/src/main/java/io/vitess/client/grpc/RetryingInterceptor.java b/java/grpc-client/src/main/java/io/vitess/client/grpc/RetryingInterceptor.java
index 9323a1b00d4..301ddaed282 100644
--- a/java/grpc-client/src/main/java/io/vitess/client/grpc/RetryingInterceptor.java
+++ b/java/grpc-client/src/main/java/io/vitess/client/grpc/RetryingInterceptor.java
@@ -39,8 +39,8 @@
/**
* RetryingInterceptor is used for retrying certain classes of failed requests in the underlying
- * gRPC connection. At this time it handles {@link MethodDescriptor.MethodType.UNARY} requests with
- * status {@link Status.Code.UNAVAILABLE}, which is according to the spec meant to be a transient
+ * gRPC connection. At this time it handles unary requests with
+ * status Unavailable, which is according to the spec meant to be a transient
* error. This class can be configured with {@link RetryingInterceptorConfig} to determine what
* level of exponential backoff to apply to the handled types of failing requests.
*
diff --git a/java/grpc-client/src/test/java/io/vitess/client/grpc/RetryingInterceptorTest.java b/java/grpc-client/src/test/java/io/vitess/client/grpc/RetryingInterceptorTest.java
index 376a920ad31..9b3644139fd 100644
--- a/java/grpc-client/src/test/java/io/vitess/client/grpc/RetryingInterceptorTest.java
+++ b/java/grpc-client/src/test/java/io/vitess/client/grpc/RetryingInterceptorTest.java
@@ -55,6 +55,8 @@ public void testNoopConfigPassesThrough() throws ExecutionException, Interrupted
Assert.fail("Should have failed after 1 attempt");
} catch (Exception e) {
Assert.assertEquals(1, forceRetryNTimesInterceptor.getNumRetryableFailures());
+ }finally {
+ channel.shutdownNow();
}
}
@@ -75,6 +77,8 @@ public void testRetryAfterBackoff() throws ExecutionException, InterruptedExcept
} catch (Exception e) {
e.printStackTrace();
Assert.assertEquals(3, forceRetryNTimesInterceptor.getNumRetryableFailures());
+ } finally {
+ channel.shutdownNow();
}
}
@@ -95,6 +99,8 @@ public void testRetryDeadlineExceeded() throws ExecutionException, InterruptedEx
Assert.fail("Should have failed");
} catch (Exception e) {
Assert.assertEquals(1, forceRetryNTimesInterceptor.getNumRetryableFailures());
+ }finally {
+ channel.shutdownNow();
}
}
diff --git a/java/jdbc/src/main/java/io/vitess/jdbc/VitessConnection.java b/java/jdbc/src/main/java/io/vitess/jdbc/VitessConnection.java
index 5e51ff908dc..f4bc43ed65e 100644
--- a/java/jdbc/src/main/java/io/vitess/jdbc/VitessConnection.java
+++ b/java/jdbc/src/main/java/io/vitess/jdbc/VitessConnection.java
@@ -105,7 +105,7 @@ public Statement createStatement() throws SQLException {
}
/**
- * Create PreparedStatement for the given connection & sql
+ * Create PreparedStatement for the given connection and sql
*
* @param sql - Sql Statement
* @return PreparedStatement Object
@@ -338,7 +338,6 @@ public void setTransactionIsolation(int level) throws SQLException {
/**
* Return Warnings
- *
* TODO: Not implementing as Error is Thrown when occurred
*
* @return SQLWarning or null
diff --git a/java/jdbc/src/main/java/io/vitess/jdbc/VitessDriver.java b/java/jdbc/src/main/java/io/vitess/jdbc/VitessDriver.java
index 5b6a889103f..a77e1ec0860 100644
--- a/java/jdbc/src/main/java/io/vitess/jdbc/VitessDriver.java
+++ b/java/jdbc/src/main/java/io/vitess/jdbc/VitessDriver.java
@@ -60,12 +60,10 @@ public Connection connect(String url, Properties info) throws SQLException {
/**
* Checks whether a given url is in a valid format.
- *
* The current uri format is: jdbc:vitess://[host]:[port]
*
* @param url the URL of the database
* @return true, if this driver understands the given URL; false, otherwise
- *
* TODO: Write a better regex
*/
@Override
diff --git a/java/jdbc/src/main/java/io/vitess/jdbc/VitessJDBCUrl.java b/java/jdbc/src/main/java/io/vitess/jdbc/VitessJDBCUrl.java
index 6234d037807..e6a1b0187dd 100644
--- a/java/jdbc/src/main/java/io/vitess/jdbc/VitessJDBCUrl.java
+++ b/java/jdbc/src/main/java/io/vitess/jdbc/VitessJDBCUrl.java
@@ -93,7 +93,6 @@ public String toString() {
* trustAlias
=alias_under_which_certificate_chain_is_stored (if not set,
* then the first valid X509Certificate
found in the trustStore will be used)
*
- *
*
*
If useSSL=true
, and any of these additional properties are not set on the JDBC
* URL, then the driver will look to see if these corresponding property was set at JVM startup
@@ -109,7 +108,6 @@ public String toString() {
*
-Djavax.net.ssl.trustStorePassword
* -Djavax.net.ssl.trustStoreAlias
*
- *
*
*
See:
* https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/#tls-ssl
diff --git a/java/jdbc/src/main/java/io/vitess/jdbc/VitessStatement.java b/java/jdbc/src/main/java/io/vitess/jdbc/VitessStatement.java
index ddaf813af2d..90a83b56485 100644
--- a/java/jdbc/src/main/java/io/vitess/jdbc/VitessStatement.java
+++ b/java/jdbc/src/main/java/io/vitess/jdbc/VitessStatement.java
@@ -241,7 +241,6 @@ public void setQueryTimeout(int seconds) throws SQLException {
/**
* Return Warnings
- *
* Not implementing as Error is Thrown when occurred
*
* @return SQLWarning or null
diff --git a/java/jdbc/src/main/java/io/vitess/util/charset/CharsetMapping.java b/java/jdbc/src/main/java/io/vitess/util/charset/CharsetMapping.java
index c1388bfb7bb..343ae0e90eb 100644
--- a/java/jdbc/src/main/java/io/vitess/util/charset/CharsetMapping.java
+++ b/java/jdbc/src/main/java/io/vitess/util/charset/CharsetMapping.java
@@ -541,6 +541,7 @@ public class CharsetMapping {
/**
* MySQL charset could map to several Java encodings. So here we choose the one according to next
* rules:
+ *
* if there is no static mapping for this charset then return javaEncoding value as is
* because this could be a custom charset for example
* if static mapping exists and javaEncoding equals to one of Java encoding canonical names
@@ -550,6 +551,7 @@ public class CharsetMapping {
* if static mapping exists and javaEncoding doesn't match any Java encoding canonical
* names or aliases available for this mapping then return default Java encoding (the first in
* mapping list)
+ *
*/
public static String getJavaEncodingForCollationIndex(Integer collationIndex,
String javaEncoding) {
diff --git a/java/pom.xml b/java/pom.xml
index 2dbf4203cd5..6742258a6b8 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -66,16 +66,16 @@
UTF-8
- 1.57.1
+ 1.67.1
- 4.1.94.Final
- 2.0.61.Final
+ 4.1.110.Final
+ 2.0.65.Final
- 3.25.5
+ 4.28.3
3.24.3
3.0.0
- 2.17.1
+ 2.24.1
@@ -89,12 +89,12 @@
com.google.code.gson
gson
- 2.8.9
+ 2.11.0
com.google.guava
guava
- 32.0.0-jre
+ 33.3.1-jre
com.google.protobuf
@@ -109,7 +109,7 @@
commons-io
commons-io
- 2.14.0
+ 2.17.0
@@ -122,6 +122,11 @@
grpc-netty
${grpc.version}
+
+ io.grpc
+ grpc-inprocess
+ ${grpc.version}
+
io.grpc
grpc-stub
@@ -180,7 +185,7 @@
joda-time
joda-time
- 2.10
+ 2.13.0
@@ -227,7 +232,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.8.1
+ 3.13.0
1.8
1.8
@@ -288,7 +293,7 @@
org.sonatype.plugins
nexus-staging-maven-plugin
- 1.6.13
+ 1.7.0
true
ossrh
@@ -299,7 +304,7 @@
org.apache.maven.plugins
maven-source-plugin
- 2.4
+ 3.3.1
attach-sources
@@ -312,7 +317,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 2.10.4
+ 3.3.1
attach-javadocs
@@ -325,7 +330,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 1.6
+ 3.2.7
sign-artifacts
From 690bb79db5fc12393d861c68d876fedeea745372 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Tue, 29 Oct 2024 13:05:55 -0600
Subject: [PATCH 18/78] Fix unreachable errors when taking a backup (#17062)
Signed-off-by: Florent Poinsard
Signed-off-by: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Co-authored-by: Matt Lord
---
changelog/21.0/21.0.0/release_notes.md | 14 +-
changelog/21.0/21.0.0/summary.md | 12 +-
go/vt/mysqlctl/backup_blackbox_race_test.go | 152 ++++++++++++++++++++
go/vt/mysqlctl/builtinbackupengine.go | 5 +-
4 files changed, 167 insertions(+), 16 deletions(-)
create mode 100644 go/vt/mysqlctl/backup_blackbox_race_test.go
diff --git a/changelog/21.0/21.0.0/release_notes.md b/changelog/21.0/21.0.0/release_notes.md
index 956d5c3ee1c..6fe295fbb3b 100644
--- a/changelog/21.0/21.0.0/release_notes.md
+++ b/changelog/21.0/21.0.0/release_notes.md
@@ -3,8 +3,8 @@
### Table of Contents
-- **[Known Issue](#known-issues)**
- - **[Backup reports itself as successful despite failures](#backup-reports-as-successful)**
+- **[Known Issues](#known-issues)**
+ - **[Backup reports itself as successful despite failures](#backup-reports-as-successful)**
- **[Major Changes](#major-changes)**
- **[Deprecations and Deletions](#deprecations-and-deletions)**
- [Deprecated VTTablet Flags](#vttablet-flags)
@@ -28,14 +28,14 @@
- **[vtctldclient ChangeTabletTags](#vtctldclient-changetablettags)**
- **[Support for specifying expected primary in reparents](#reparents-expectedprimary)**
-## Known Issue
+## Known Issues
### Backup reports itself as successful despite failures
-In this release, we identified an issue where a backup may succeed even if a file fails to be backed up.
-Leading to a successful backup, even if some errors occurred.
-This only happen with the Builtin Backup Engine, and when all files have already been initiated in the backup process.
-For more details, please refer to the related GitHub Issue https://github.com/vitessio/vitess/issues/17063.
+In this release, we have identified an issue where a backup may succeed even if one of the underlying files fails to be backed up.
+The underlying errors are ignored and the backup action reports success.
+This issue exists only with the `builtin` backup engine, and it can occur only when the engine has already started backing up all files.
+Please refer to https://github.com/vitessio/vitess/issues/17063 for more details.
## Major Changes
diff --git a/changelog/21.0/21.0.0/summary.md b/changelog/21.0/21.0.0/summary.md
index fcac56180a9..512aa45a12f 100644
--- a/changelog/21.0/21.0.0/summary.md
+++ b/changelog/21.0/21.0.0/summary.md
@@ -2,7 +2,7 @@
### Table of Contents
-- **[Known Issue](#known-issues)**
+- **[Known Issues](#known-issues)**
- **[Backup reports itself as successful despite failures](#backup-reports-as-successful)**
- **[Major Changes](#major-changes)**
- **[Deprecations and Deletions](#deprecations-and-deletions)**
@@ -27,14 +27,14 @@
- **[vtctldclient ChangeTabletTags](#vtctldclient-changetablettags)**
- **[Support for specifying expected primary in reparents](#reparents-expectedprimary)**
-## Known Issue
+## Known Issues
### Backup reports itself as successful despite failures
-In this release, we identified an issue where a backup may succeed even if a file fails to be backed up.
-Leading to a successful backup, even if some errors occurred.
-This only happen with the Builtin Backup Engine, and when all files have already been initiated in the backup process.
-For more details, please refer to the related GitHub Issue https://github.com/vitessio/vitess/issues/17063.
+In this release, we have identified an issue where a backup may succeed even if one of the underlying files fails to be backed up.
+The underlying errors are ignored and the backup action reports success.
+This issue exists only with the `builtin` backup engine, and it can occur only when the engine has already started backing up all files.
+Please refer to https://github.com/vitessio/vitess/issues/17063 for more details.
## Major Changes
diff --git a/go/vt/mysqlctl/backup_blackbox_race_test.go b/go/vt/mysqlctl/backup_blackbox_race_test.go
new file mode 100644
index 00000000000..5414ebc5fa6
--- /dev/null
+++ b/go/vt/mysqlctl/backup_blackbox_race_test.go
@@ -0,0 +1,152 @@
+//go:build !race
+
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Package mysqlctl_test is the blackbox tests for package mysqlctl.
+package mysqlctl_test
+
+import (
+ "fmt"
+ "os"
+ "path"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/mysql"
+ "vitess.io/vitess/go/mysql/fakesqldb"
+ "vitess.io/vitess/go/test/utils"
+ "vitess.io/vitess/go/vt/logutil"
+ "vitess.io/vitess/go/vt/mysqlctl"
+ "vitess.io/vitess/go/vt/mysqlctl/backupstats"
+ "vitess.io/vitess/go/vt/mysqlctl/filebackupstorage"
+ "vitess.io/vitess/go/vt/proto/topodata"
+ "vitess.io/vitess/go/vt/proto/vttime"
+ "vitess.io/vitess/go/vt/topo"
+ "vitess.io/vitess/go/vt/topo/memorytopo"
+)
+
+// This test triggers a certain code path that only happens when a backup file fails to be backed up,
+// only and only if, all the other backup files have either started or finished. When we reach
+// this scenario, files no longer try to acquire the semaphore and thus the backup cannot fail
+// because of context deadline when acquiring it. At this point, the only place where the backup
+// can fail, is if the return of be.backupFiles fails, and we record the error correctly.
+// This test specifically test this scenario and arose because of issue https://github.com/vitessio/vitess/issues/17063
+// The test does:
+// 1. Create the backup and data directory
+// 2. Create a keyspace and shard
+// 3. Already create the last backup file that would be created
+// 4. Remove all permissions on this file
+// 5. Execute the restore
+// 6. The restore must fail due to an error on file number 3 ("cannot add file: 3")
+//
+// This test is extracted into its own file that won't be run if we do 'go test -race' as this test
+// exposes an old race condition that will be fixed after https://github.com/vitessio/vitess/pull/17062
+// Link to the race condition issue: https://github.com/vitessio/vitess/issues/17065
+func TestExecuteBackupWithFailureOnLastFile(t *testing.T) {
+ ctx := utils.LeakCheckContext(t)
+
+ // Set up local backup directory
+ id := fmt.Sprintf("%d", time.Now().UnixNano())
+ backupRoot := fmt.Sprintf("testdata/builtinbackup_test_%s", id)
+ filebackupstorage.FileBackupStorageRoot = backupRoot
+ require.NoError(t, createBackupDir(backupRoot, "innodb", "log", "datadir"))
+ dataDir := path.Join(backupRoot, "datadir")
+ // Add some files under data directory to force backup to execute semaphore acquire inside
+ // backupFiles() method (https://github.com/vitessio/vitess/blob/main/go/vt/mysqlctl/builtinbackupengine.go#L483).
+ require.NoError(t, createBackupDir(dataDir, "test1"))
+ require.NoError(t, createBackupDir(dataDir, "test2"))
+ require.NoError(t, createBackupFiles(path.Join(dataDir, "test1"), 2, "ibd"))
+ require.NoError(t, createBackupFiles(path.Join(dataDir, "test2"), 2, "ibd"))
+ defer os.RemoveAll(backupRoot)
+
+ needIt, err := needInnoDBRedoLogSubdir()
+ require.NoError(t, err)
+ if needIt {
+ fpath := path.Join("log", mysql.DynamicRedoLogSubdir)
+ if err := createBackupDir(backupRoot, fpath); err != nil {
+ require.Failf(t, err.Error(), "failed to create directory: %s", fpath)
+ }
+ }
+
+ // Set up topo
+ keyspace, shard := "mykeyspace", "-"
+ ts := memorytopo.NewServer(ctx, "cell1")
+ defer ts.Close()
+
+ require.NoError(t, ts.CreateKeyspace(ctx, keyspace, &topodata.Keyspace{}))
+ require.NoError(t, ts.CreateShard(ctx, keyspace, shard))
+
+ tablet := topo.NewTablet(100, "cell1", "mykeyspace-00-80-0100")
+ tablet.Keyspace = keyspace
+ tablet.Shard = shard
+
+ require.NoError(t, ts.CreateTablet(ctx, tablet))
+
+ _, err = ts.UpdateShardFields(ctx, keyspace, shard, func(si *topo.ShardInfo) error {
+ si.PrimaryAlias = &topodata.TabletAlias{Uid: 100, Cell: "cell1"}
+
+ now := time.Now()
+ si.PrimaryTermStartTime = &vttime.Time{Seconds: int64(now.Second()), Nanoseconds: int32(now.Nanosecond())}
+
+ return nil
+ })
+
+ require.NoError(t, err)
+
+ be := &mysqlctl.BuiltinBackupEngine{}
+ bh := filebackupstorage.NewBackupHandle(nil, "", "", false)
+ // Spin up a fake daemon to be used in backups. It needs to be allowed to receive:
+ // "STOP REPLICA", "START REPLICA", in that order.
+ fakedb := fakesqldb.New(t)
+ defer fakedb.Close()
+ mysqld := mysqlctl.NewFakeMysqlDaemon(fakedb)
+ defer mysqld.Close()
+ mysqld.ExpectedExecuteSuperQueryList = []string{"STOP REPLICA", "START REPLICA"}
+
+ // With this setup, 4 backup files will be created (0, 1, 2, 3). For the last file (3), we create
+ // it in advance and remove all permission on the file so that the backup be.ExecuteBackup will not
+ // be able to override the file and thus will fail. Triggering the error mechanism after calling be.backupFile.
+ lastBackupFile := path.Join(backupRoot, "3")
+ f, err := os.Create(lastBackupFile)
+ require.NoError(t, err)
+ _, err = f.Write(make([]byte, 1024))
+ require.NoError(t, err)
+ require.NoError(t, f.Chmod(0444))
+ require.NoError(t, f.Close())
+
+ backupResult, err := be.ExecuteBackup(ctx, mysqlctl.BackupParams{
+ Logger: logutil.NewConsoleLogger(),
+ Mysqld: mysqld,
+ Cnf: &mysqlctl.Mycnf{
+ InnodbDataHomeDir: path.Join(backupRoot, "innodb"),
+ InnodbLogGroupHomeDir: path.Join(backupRoot, "log"),
+ DataDir: path.Join(backupRoot, "datadir"),
+ },
+ Stats: backupstats.NewFakeStats(),
+ Concurrency: 4,
+ HookExtraEnv: map[string]string{},
+ TopoServer: ts,
+ Keyspace: keyspace,
+ Shard: shard,
+ MysqlShutdownTimeout: mysqlShutdownTimeout,
+ }, bh)
+
+ require.ErrorContains(t, err, "cannot add file: 3")
+ require.Equal(t, mysqlctl.BackupUnusable, backupResult)
+}
diff --git a/go/vt/mysqlctl/builtinbackupengine.go b/go/vt/mysqlctl/builtinbackupengine.go
index 9c9403c948c..f3cbe5364a0 100644
--- a/go/vt/mysqlctl/builtinbackupengine.go
+++ b/go/vt/mysqlctl/builtinbackupengine.go
@@ -643,9 +643,8 @@ func (be *BuiltinBackupEngine) backupFiles(
// Backup the individual file.
name := fmt.Sprintf("%v", i)
- err := be.backupFile(ctxCancel, params, bh, fe, name)
- if err != nil {
- bh.RecordError(acqErr)
+ if err := be.backupFile(ctxCancel, params, bh, fe, name); err != nil {
+ bh.RecordError(err)
cancel()
}
}(i)
From 0beb273786bcdd5a6a297c7dc372d72a0261b527 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Tue, 29 Oct 2024 13:45:26 -0600
Subject: [PATCH 19/78] Add release-21.0 to the Golang Upgrade workflow
(#16916)
Signed-off-by: Florent Poinsard
---
.github/workflows/update_golang_version.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update_golang_version.yml b/.github/workflows/update_golang_version.yml
index dd283cba599..10ddbf9533c 100644
--- a/.github/workflows/update_golang_version.yml
+++ b/.github/workflows/update_golang_version.yml
@@ -15,7 +15,7 @@ jobs:
pull-requests: write
strategy:
matrix:
- branch: [ main, release-20.0, release-19.0, release-18.0 ]
+ branch: [ main, release-21.0, release-20.0, release-19.0, release-18.0 ]
name: Update Golang Version
runs-on: ubuntu-latest
steps:
From 9c9a893a5d0d2b8f21997fc1ef60fdc94580ddef Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Wed, 30 Oct 2024 20:29:52 +0530
Subject: [PATCH 20/78] Fix flaky test `TestShardSync` (#17095)
Signed-off-by: Manan Gupta
---
.../vttablet/tabletmanager/shard_sync_test.go | 58 ++++++++++++++-----
1 file changed, 44 insertions(+), 14 deletions(-)
diff --git a/go/vt/vttablet/tabletmanager/shard_sync_test.go b/go/vt/vttablet/tabletmanager/shard_sync_test.go
index 40a62d06b76..8f7739e5341 100644
--- a/go/vt/vttablet/tabletmanager/shard_sync_test.go
+++ b/go/vt/vttablet/tabletmanager/shard_sync_test.go
@@ -18,6 +18,7 @@ package tabletmanager
import (
"context"
+ "errors"
"fmt"
"reflect"
"testing"
@@ -44,7 +45,7 @@ const (
)
func TestShardSync(t *testing.T) {
- ctx, cancel := context.WithCancel(context.Background())
+ ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()
ts := memorytopo.NewServer(ctx, "cell1")
statsTabletTypeCount.ResetAll()
@@ -67,48 +68,77 @@ func TestShardSync(t *testing.T) {
// wait for syncing to work correctly
// this should also have updated the shard record since it is a more recent operation
// We check here that the shard record and the tablet record are in sync
- checkShardRecordWithTimeout(ctx, t, ts, ti.Alias, ti.PrimaryTermStartTime, 1*time.Second)
+ err = checkShardRecord(ctx, t, ts, ti.Alias, ti.PrimaryTermStartTime)
+ require.NoError(t, err)
+
+ // Shard sync loop runs asynchronously and starts a watch on the shard.
+ // We wait for the shard watch to start, otherwise the test is flaky
+ // because the update of the record can happen before the watch is started.
+ waitForShardWatchToStart(ctx, t, tm, originalTime, ti)
// even if try to update the shard record with the old timestamp, it should be reverted again
updatePrimaryInfoInShardRecord(ctx, t, tm, nil, originalTime)
// this should have also updated the shard record because of the timestamp.
- checkShardRecordWithTimeout(ctx, t, ts, ti.Alias, ti.PrimaryTermStartTime, 1*time.Second)
+ err = checkShardRecord(ctx, t, ts, ti.Alias, ti.PrimaryTermStartTime)
+ require.NoError(t, err)
// updating the shard record with the latest time should trigger an update in the tablet
newTime := time.Now()
updatePrimaryInfoInShardRecord(ctx, t, tm, nil, newTime)
// this should not have updated.
- checkShardRecordWithTimeout(ctx, t, ts, nil, protoutil.TimeToProto(newTime), 1*time.Second)
+ err = checkShardRecord(ctx, t, ts, nil, protoutil.TimeToProto(newTime))
+ require.NoError(t, err)
// verify that the tablet record has been updated
- checkTabletRecordWithTimeout(ctx, t, ts, tm.tabletAlias, topodata.TabletType_REPLICA, nil, 1*time.Second)
+ checkTabletRecordWithTimeout(ctx, t, ts, tm.tabletAlias, topodata.TabletType_REPLICA, nil)
+}
+
+// waitForShardWatchToStart waits for shard watch to have started.
+func waitForShardWatchToStart(ctx context.Context, t *testing.T, tm *TabletManager, originalTime time.Time, ti *topo.TabletInfo) {
+ // We wait for shard watch to start by
+ // updating the record and waiting to see
+ // the shard record is updated back by the tablet manager.
+ idx := 1
+ for {
+ select {
+ case <-ctx.Done():
+ require.FailNow(t, "timed out: waiting for shard watch to start")
+ default:
+ updatePrimaryInfoInShardRecord(ctx, t, tm, nil, originalTime.Add(-1*time.Duration(idx)*time.Second))
+ idx = idx + 1
+ checkCtx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
+ err := checkShardRecord(checkCtx, t, tm.TopoServer, ti.Alias, ti.PrimaryTermStartTime)
+ cancel()
+ if err == nil {
+ return
+ }
+ }
+ }
}
-func checkShardRecordWithTimeout(ctx context.Context, t *testing.T, ts *topo.Server, tabletAlias *topodata.TabletAlias, expectedStartTime *vttime.Time, timeToWait time.Duration) {
- timeOut := time.After(timeToWait)
+func checkShardRecord(ctx context.Context, t *testing.T, ts *topo.Server, tabletAlias *topodata.TabletAlias, expectedStartTime *vttime.Time) error {
for {
select {
- case <-timeOut:
- t.Fatalf("timed out: waiting for shard record to update")
+ case <-ctx.Done():
+ return errors.New("timed out: waiting for shard record to update")
default:
si, err := ts.GetShard(ctx, keyspace, shard)
require.NoError(t, err)
if reflect.DeepEqual(tabletAlias, si.PrimaryAlias) && reflect.DeepEqual(expectedStartTime, si.PrimaryTermStartTime) {
- return
+ return nil
}
time.Sleep(100 * time.Millisecond)
}
}
}
-func checkTabletRecordWithTimeout(ctx context.Context, t *testing.T, ts *topo.Server, tabletAlias *topodata.TabletAlias, tabletType topodata.TabletType, expectedStartTime *vttime.Time, timeToWait time.Duration) {
- timeOut := time.After(timeToWait)
+func checkTabletRecordWithTimeout(ctx context.Context, t *testing.T, ts *topo.Server, tabletAlias *topodata.TabletAlias, tabletType topodata.TabletType, expectedStartTime *vttime.Time) {
for {
select {
- case <-timeOut:
- t.Fatalf("timed out: waiting for tablet record to update")
+ case <-ctx.Done():
+ require.FailNow(t, "timed out: waiting for tablet record to update")
default:
ti, err := ts.GetTablet(ctx, tabletAlias)
require.NoError(t, err)
From ffaeba0c5f973bc8894b5523d3d1fc5504bb41f2 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Wed, 30 Oct 2024 18:59:09 -0600
Subject: [PATCH 21/78] Fix panic in vttablet when closing topo server twice
(#17094)
---
go/cmd/vttablet/cli/cli.go | 2 --
go/cmd/vttablet/cli/cli_test.go | 58 +++++++++++++++++++++++++++++++++
go/vt/topo/server.go | 6 ++--
3 files changed, 62 insertions(+), 4 deletions(-)
create mode 100644 go/cmd/vttablet/cli/cli_test.go
diff --git a/go/cmd/vttablet/cli/cli.go b/go/cmd/vttablet/cli/cli.go
index 3fb1e98877f..3b77b43d9cb 100644
--- a/go/cmd/vttablet/cli/cli.go
+++ b/go/cmd/vttablet/cli/cli.go
@@ -143,7 +143,6 @@ func run(cmd *cobra.Command, args []string) error {
qsc, err := createTabletServer(ctx, env, config, ts, tabletAlias, srvTopoCounts)
if err != nil {
- ts.Close()
return err
}
@@ -172,7 +171,6 @@ func run(cmd *cobra.Command, args []string) error {
VDiffEngine: vdiff.NewEngine(ts, tablet, env.CollationEnv(), env.Parser()),
}
if err := tm.Start(tablet, config); err != nil {
- ts.Close()
return fmt.Errorf("failed to parse --tablet-path or initialize DB credentials: %w", err)
}
servenv.OnClose(func() {
diff --git a/go/cmd/vttablet/cli/cli_test.go b/go/cmd/vttablet/cli/cli_test.go
new file mode 100644
index 00000000000..c88ebd1b8ae
--- /dev/null
+++ b/go/cmd/vttablet/cli/cli_test.go
@@ -0,0 +1,58 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cli
+
+import (
+ "context"
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/vt/topo"
+ "vitess.io/vitess/go/vt/topo/memorytopo"
+)
+
+// TestRunFailsToStartTabletManager tests the code path in 'run' where we fail to start the TabletManager
+// this is done by starting vttablet without a cnf file but requesting it to restore from backup.
+// When starting, the TabletManager checks if it needs to restore, in tm.handleRestore but this step will
+// fail if we do not provide a cnf file and if the flag --restore_from_backup is provided.
+func TestRunFailsToStartTabletManager(t *testing.T) {
+ ts, factory := memorytopo.NewServerAndFactory(context.Background(), "cell")
+ topo.RegisterFactory("test", factory)
+
+ args := append([]string{}, os.Args...)
+ t.Cleanup(func() {
+ ts.Close()
+ tabletPath = ""
+ os.Args = append([]string{}, args...)
+ })
+
+ os.Args = []string{"vttablet",
+ "--topo_implementation", "test", "--topo_global_server_address", "localhost", "--topo_global_root", "cell",
+ "--db_host", "localhost", "--db_port", "3306",
+ "--tablet-path", "cell-1", "--init_keyspace", "ks", "--init_shard", "0", "--init_tablet_type", "replica",
+ "--restore_from_backup",
+ }
+
+ // Creating and canceling the context so that pending tasks in tm_init gets canceled before we close the topo server
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ err := Main.ExecuteContext(ctx)
+ require.ErrorContains(t, err, "you cannot enable --restore_from_backup without a my.cnf file")
+}
diff --git a/go/vt/topo/server.go b/go/vt/topo/server.go
index 23b7be6cfa1..a0dba42006d 100644
--- a/go/vt/topo/server.go
+++ b/go/vt/topo/server.go
@@ -343,8 +343,10 @@ func GetAliasByCell(ctx context.Context, ts *Server, cell string) string {
// Close will close all connections to underlying topo Server.
// It will nil all member variables, so any further access will panic.
func (ts *Server) Close() {
- ts.globalCell.Close()
- if ts.globalReadOnlyCell != ts.globalCell {
+ if ts.globalCell != nil {
+ ts.globalCell.Close()
+ }
+ if ts.globalReadOnlyCell != nil && ts.globalReadOnlyCell != ts.globalCell {
ts.globalReadOnlyCell.Close()
}
ts.globalCell = nil
From 1b0a902b976f2d19901015836194f8273a8c3e81 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Thu, 31 Oct 2024 11:39:59 -0400
Subject: [PATCH 22/78] CI: Correct etcd and ncurses package names for Ubuntu
24.04 (#16966)
Signed-off-by: Matt Lord
---
.github/workflows/cluster_endtoend_12.yml | 2 +-
.github/workflows/cluster_endtoend_13.yml | 2 +-
.github/workflows/cluster_endtoend_15.yml | 2 +-
.github/workflows/cluster_endtoend_18.yml | 2 +-
.github/workflows/cluster_endtoend_21.yml | 2 +-
.github/workflows/cluster_endtoend_backup_pitr.yml | 2 +-
.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml | 2 +-
.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml | 2 +-
.../workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml | 2 +-
.github/workflows/cluster_endtoend_mysql80.yml | 2 +-
.github/workflows/cluster_endtoend_mysql_server_vault.yml | 2 +-
.github/workflows/cluster_endtoend_onlineddl_revert.yml | 2 +-
.github/workflows/cluster_endtoend_onlineddl_scheduler.yml | 2 +-
.github/workflows/cluster_endtoend_onlineddl_vrepl.yml | 2 +-
.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml | 2 +-
.../cluster_endtoend_onlineddl_vrepl_stress_suite.yml | 2 +-
.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml | 2 +-
.github/workflows/cluster_endtoend_schemadiff_vrepl.yml | 2 +-
.github/workflows/cluster_endtoend_tabletmanager_consul.yml | 2 +-
.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml | 2 +-
.../cluster_endtoend_tabletmanager_throttler_topo.yml | 2 +-
.github/workflows/cluster_endtoend_topo_connection_cache.yml | 2 +-
.../cluster_endtoend_vreplication_across_db_versions.yml | 2 +-
.github/workflows/cluster_endtoend_vreplication_basic.yml | 2 +-
.github/workflows/cluster_endtoend_vreplication_cellalias.yml | 2 +-
.../workflows/cluster_endtoend_vreplication_copy_parallel.yml | 2 +-
.../cluster_endtoend_vreplication_foreign_key_stress.yml | 2 +-
.../cluster_endtoend_vreplication_mariadb_to_mysql.yml | 2 +-
...luster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml | 2 +-
.../workflows/cluster_endtoend_vreplication_multi_tenant.yml | 2 +-
...dtoend_vreplication_partial_movetables_and_materialize.yml | 2 +-
.github/workflows/cluster_endtoend_vreplication_v2.yml | 2 +-
.github/workflows/cluster_endtoend_vstream.yml | 2 +-
.github/workflows/cluster_endtoend_vtbackup.yml | 2 +-
...cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml | 2 +-
.../workflows/cluster_endtoend_vtgate_foreignkey_stress.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_gen4.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_general_heavy.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_godriver.yml | 2 +-
.../workflows/cluster_endtoend_vtgate_partial_keyspace.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_queries.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_reservedconn.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_schema.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml | 2 +-
.../cluster_endtoend_vtgate_tablet_healthcheck_cache.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_topo.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_topo_consul.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_transaction.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_unsharded.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml | 2 +-
.github/workflows/cluster_endtoend_vtgate_vschema.yml | 2 +-
.github/workflows/cluster_endtoend_vtorc.yml | 2 +-
.github/workflows/cluster_endtoend_vttablet_prscomplex.yml | 2 +-
.github/workflows/cluster_endtoend_xb_backup.yml | 2 +-
.github/workflows/cluster_endtoend_xb_recovery.yml | 2 +-
.github/workflows/unit_test_evalengine_mysql57.yml | 2 +-
.github/workflows/unit_test_mysql57.yml | 2 +-
.github/workflows/vitess_tester_vtgate.yml | 2 +-
test/templates/cluster_endtoend_test.tpl | 4 ++--
test/templates/cluster_endtoend_test_mysql57.tpl | 4 ++--
test/templates/cluster_vitess_tester.tpl | 2 +-
test/templates/unit_test.tpl | 2 +-
65 files changed, 67 insertions(+), 67 deletions(-)
diff --git a/.github/workflows/cluster_endtoend_12.yml b/.github/workflows/cluster_endtoend_12.yml
index a7451cc8661..236e6e2835c 100644
--- a/.github/workflows/cluster_endtoend_12.yml
+++ b/.github/workflows/cluster_endtoend_12.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_13.yml b/.github/workflows/cluster_endtoend_13.yml
index d9d96f7d9b5..945d3448287 100644
--- a/.github/workflows/cluster_endtoend_13.yml
+++ b/.github/workflows/cluster_endtoend_13.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_15.yml b/.github/workflows/cluster_endtoend_15.yml
index a78e747fe7d..0c57e651013 100644
--- a/.github/workflows/cluster_endtoend_15.yml
+++ b/.github/workflows/cluster_endtoend_15.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_18.yml b/.github/workflows/cluster_endtoend_18.yml
index 2156ed918a3..0c04f3e1b76 100644
--- a/.github/workflows/cluster_endtoend_18.yml
+++ b/.github/workflows/cluster_endtoend_18.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_21.yml b/.github/workflows/cluster_endtoend_21.yml
index ca99cc29fc9..7d14a8b99ed 100644
--- a/.github/workflows/cluster_endtoend_21.yml
+++ b/.github/workflows/cluster_endtoend_21.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_backup_pitr.yml b/.github/workflows/cluster_endtoend_backup_pitr.yml
index b0790925f7a..99047933d69 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
index f0db46c9049..8da7e054666 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
index 5d75aa3e56e..4012d1b1e4d 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
@@ -102,7 +102,7 @@ jobs:
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd-client etcd-server git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
index 3263e55e1d0..177fc77a5c4 100644
--- a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
+++ b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_mysql80.yml b/.github/workflows/cluster_endtoend_mysql80.yml
index 51612778ab6..d0ff268c5fb 100644
--- a/.github/workflows/cluster_endtoend_mysql80.yml
+++ b/.github/workflows/cluster_endtoend_mysql80.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_mysql_server_vault.yml b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
index 8b1ad64c1f1..38cdcbadf95 100644
--- a/.github/workflows/cluster_endtoend_mysql_server_vault.yml
+++ b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_revert.yml b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
index 8bbdac23b1c..dd9990b4761 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_revert.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
index 89a611f2671..144e06915ce 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
index b0b3dfd23cf..5cd394f2d42 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
index ca3c46e4113..993a2d5193e 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
index a7462070fb8..015db29723e 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
index 4dfed7e08b7..550408f5def 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
index bad67619e5f..9c2cac74843 100644
--- a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
@@ -102,7 +102,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
index 7d7fd26fedc..4846fdcc2ac 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
index b74640e57d1..435d28a722a 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
index c101cd72450..6cf480aa1f1 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_topo_connection_cache.yml b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
index a3455fae92b..056bfb6d8a4 100644
--- a/.github/workflows/cluster_endtoend_topo_connection_cache.yml
+++ b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
index ec063bd783d..aacf9d157fd 100644
--- a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_basic.yml b/.github/workflows/cluster_endtoend_vreplication_basic.yml
index bb9dcfe7742..ead3b816df2 100644
--- a/.github/workflows/cluster_endtoend_vreplication_basic.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_basic.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
index dd59ad06cf7..d9f1aeac45e 100644
--- a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
index 5dff9b71f5d..9cdc4a9091a 100644
--- a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
index 8fdb1bd567a..f95f70e8550 100644
--- a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
index 55260161652..2a6af9b91bd 100644
--- a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml b/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
index 2f47615564c..e0cc2810c8c 100644
--- a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
index 51c8397d712..78b6c616691 100644
--- a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
index 315ab84aa77..30367611574 100644
--- a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vreplication_v2.yml b/.github/workflows/cluster_endtoend_vreplication_v2.yml
index b8ffa1c27b8..23871ada3b8 100644
--- a/.github/workflows/cluster_endtoend_vreplication_v2.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_v2.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vstream.yml b/.github/workflows/cluster_endtoend_vstream.yml
index efc0ae1564f..3c99a687abc 100644
--- a/.github/workflows/cluster_endtoend_vstream.yml
+++ b/.github/workflows/cluster_endtoend_vstream.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtbackup.yml b/.github/workflows/cluster_endtoend_vtbackup.yml
index ddc172bd59e..e47e8fbad47 100644
--- a/.github/workflows/cluster_endtoend_vtbackup.yml
+++ b/.github/workflows/cluster_endtoend_vtbackup.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
index dee6ab7ea65..8f9a27bc750 100644
--- a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
index 2c16a563531..db9ea451081 100644
--- a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
index 78cd2b09356..2fada310f7e 100644
--- a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_gen4.yml b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
index 60930f758bd..04813704cd2 100644
--- a/.github/workflows/cluster_endtoend_vtgate_gen4.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
index 5511adfbb66..bdb6b8b149d 100644
--- a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_godriver.yml b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
index 8b1b2cc9a49..e23742a5650 100644
--- a/.github/workflows/cluster_endtoend_vtgate_godriver.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
index 14277b0bf60..4d082900790 100644
--- a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_queries.yml b/.github/workflows/cluster_endtoend_vtgate_queries.yml
index d6d8d82f29c..46242a6b7f4 100644
--- a/.github/workflows/cluster_endtoend_vtgate_queries.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_queries.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
index 2aa7c64ce54..b39aa3693e6 100644
--- a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
index 08dd4f0d11d..0032704b240 100644
--- a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema.yml b/.github/workflows/cluster_endtoend_vtgate_schema.yml
index d0e4cbfb50e..be619a0815c 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
index 963ac487892..a02b4ec5435 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
index 2b08bb8ce33..ff0c6990512 100644
--- a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo.yml b/.github/workflows/cluster_endtoend_vtgate_topo.yml
index 233fd212433..e0f4397d56c 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
index 8396ff0e6be..a10a9947218 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
index f156754bef1..42e3b3d919c 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_transaction.yml b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
index 7ef4ed4774e..bc400dde33f 100644
--- a/.github/workflows/cluster_endtoend_vtgate_transaction.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
index 7222a0cc9f4..8c128e95b0f 100644
--- a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
index 653938d0f54..e260443a242 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtgate_vschema.yml b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
index fdd2a435123..72e9ac45949 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vschema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vtorc.yml b/.github/workflows/cluster_endtoend_vtorc.yml
index d1cf4b6db39..23544b28d01 100644
--- a/.github/workflows/cluster_endtoend_vtorc.yml
+++ b/.github/workflows/cluster_endtoend_vtorc.yml
@@ -110,7 +110,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
index 80e9174da81..eaf6583a22d 100644
--- a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
+++ b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
@@ -101,7 +101,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_xb_backup.yml b/.github/workflows/cluster_endtoend_xb_backup.yml
index bfcbb96ccb7..dae2eca922f 100644
--- a/.github/workflows/cluster_endtoend_xb_backup.yml
+++ b/.github/workflows/cluster_endtoend_xb_backup.yml
@@ -102,7 +102,7 @@ jobs:
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd-client etcd-server git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/cluster_endtoend_xb_recovery.yml b/.github/workflows/cluster_endtoend_xb_recovery.yml
index f07aa3d01a1..0dad33aee7f 100644
--- a/.github/workflows/cluster_endtoend_xb_recovery.yml
+++ b/.github/workflows/cluster_endtoend_xb_recovery.yml
@@ -102,7 +102,7 @@ jobs:
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd-client etcd-server git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/.github/workflows/unit_test_evalengine_mysql57.yml b/.github/workflows/unit_test_evalengine_mysql57.yml
index cff3ca581bb..09cb392c794 100644
--- a/.github/workflows/unit_test_evalengine_mysql57.yml
+++ b/.github/workflows/unit_test_evalengine_mysql57.yml
@@ -110,7 +110,7 @@ jobs:
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses5
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_mysql57.yml
index 4f2ce90e16a..bd4b6ed8c3c 100644
--- a/.github/workflows/unit_test_mysql57.yml
+++ b/.github/workflows/unit_test_mysql57.yml
@@ -110,7 +110,7 @@ jobs:
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses5
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
diff --git a/.github/workflows/vitess_tester_vtgate.yml b/.github/workflows/vitess_tester_vtgate.yml
index 4946130158a..5f8c52d454b 100644
--- a/.github/workflows/vitess_tester_vtgate.yml
+++ b/.github/workflows/vitess_tester_vtgate.yml
@@ -100,7 +100,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/test/templates/cluster_endtoend_test.tpl b/test/templates/cluster_endtoend_test.tpl
index 1b035ff0807..01f4555e303 100644
--- a/test/templates/cluster_endtoend_test.tpl
+++ b/test/templates/cluster_endtoend_test.tpl
@@ -117,7 +117,7 @@ jobs:
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y percona-server-server percona-server-client make unzip g++ etcd-client etcd-server git wget eatmydata xz-utils libncurses6
{{else}}
@@ -129,7 +129,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
{{end}}
diff --git a/test/templates/cluster_endtoend_test_mysql57.tpl b/test/templates/cluster_endtoend_test_mysql57.tpl
index 6e2b98cb7e4..b51ffc9110e 100644
--- a/test/templates/cluster_endtoend_test_mysql57.tpl
+++ b/test/templates/cluster_endtoend_test_mysql57.tpl
@@ -133,9 +133,9 @@ jobs:
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses5
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
diff --git a/test/templates/cluster_vitess_tester.tpl b/test/templates/cluster_vitess_tester.tpl
index 92c895eb0cd..f0b5838d8e8 100644
--- a/test/templates/cluster_vitess_tester.tpl
+++ b/test/templates/cluster_vitess_tester.tpl
@@ -98,7 +98,7 @@ jobs:
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
# Install everything else we need, and configure
- sudo apt-get -qq install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils libncurses5
+ sudo apt-get -qq install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
sudo service mysql stop
sudo service etcd stop
diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl
index 3f5556ee314..c47b7a1d796 100644
--- a/test/templates/unit_test.tpl
+++ b/test/templates/unit_test.tpl
@@ -109,7 +109,7 @@ jobs:
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses5
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
{{end}}
{{if (eq .Platform "mysql80")}}
From 1a4f2b9d6c7f22f6792ee562d639482f90ad8490 Mon Sep 17 00:00:00 2001
From: Noble Mittal <62551163+beingnoble03@users.noreply.github.com>
Date: Fri, 1 Nov 2024 00:11:57 +0530
Subject: [PATCH 23/78] refac: Remove duplicate `forAllShards` methods from
`vt/vtctl/workflow` (#17025)
Signed-off-by: Noble Mittal
---
go/vt/vtctl/workflow/materializer.go | 22 +--------
go/vt/vtctl/workflow/resharder.go | 28 ++---------
go/vt/vtctl/workflow/server.go | 71 ++--------------------------
go/vt/vtctl/workflow/utils.go | 26 ++++++++++
go/vt/vtctl/workflow/utils_test.go | 37 +++++++++++++++
5 files changed, 75 insertions(+), 109 deletions(-)
diff --git a/go/vt/vtctl/workflow/materializer.go b/go/vt/vtctl/workflow/materializer.go
index 3bcff5a02a1..3f4115579eb 100644
--- a/go/vt/vtctl/workflow/materializer.go
+++ b/go/vt/vtctl/workflow/materializer.go
@@ -31,7 +31,6 @@ import (
"vitess.io/vitess/go/sqlescape"
"vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/textutil"
- "vitess.io/vitess/go/vt/concurrency"
"vitess.io/vitess/go/vt/key"
"vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/vt/mysqlctl/tmutils"
@@ -144,7 +143,7 @@ func (mz *materializer) createWorkflowStreams(req *tabletmanagerdatapb.CreateVRe
return err
}
- return mz.forAllTargets(func(target *topo.ShardInfo) error {
+ return forAllShards(mz.targetShards, func(target *topo.ShardInfo) error {
targetPrimary, err := mz.ts.GetTablet(mz.ctx, target.PrimaryAlias)
if err != nil {
return vterrors.Wrapf(err, "GetTablet(%v) failed", target.PrimaryAlias)
@@ -638,29 +637,12 @@ func (mz *materializer) startStreams(ctx context.Context) error {
})
}
-func (mz *materializer) forAllTargets(f func(*topo.ShardInfo) error) error {
- var wg sync.WaitGroup
- allErrors := &concurrency.AllErrorRecorder{}
- for _, target := range mz.targetShards {
- wg.Add(1)
- go func(target *topo.ShardInfo) {
- defer wg.Done()
-
- if err := f(target); err != nil {
- allErrors.RecordError(err)
- }
- }(target)
- }
- wg.Wait()
- return allErrors.AggrError(vterrors.Aggregate)
-}
-
// checkTZConversion is a light-weight consistency check to validate that, if a source time zone is specified to MoveTables,
// that the current primary has the time zone loaded in order to run the convert_tz() function used by VReplication to do the
// datetime conversions. We only check the current primaries on each shard and note here that it is possible a new primary
// gets elected: in this case user will either see errors during vreplication or vdiff will report mismatches.
func (mz *materializer) checkTZConversion(ctx context.Context, tz string) error {
- err := mz.forAllTargets(func(target *topo.ShardInfo) error {
+ err := forAllShards(mz.targetShards, func(target *topo.ShardInfo) error {
targetPrimary, err := mz.ts.GetTablet(ctx, target.PrimaryAlias)
if err != nil {
return vterrors.Wrapf(err, "GetTablet(%v) failed", target.PrimaryAlias)
diff --git a/go/vt/vtctl/workflow/resharder.go b/go/vt/vtctl/workflow/resharder.go
index 57c860bdfaf..e3f7380af69 100644
--- a/go/vt/vtctl/workflow/resharder.go
+++ b/go/vt/vtctl/workflow/resharder.go
@@ -26,7 +26,6 @@ import (
"time"
"vitess.io/vitess/go/ptr"
- "vitess.io/vitess/go/vt/concurrency"
"vitess.io/vitess/go/vt/discovery"
"vitess.io/vitess/go/vt/key"
"vitess.io/vitess/go/vt/proto/vtctldata"
@@ -146,7 +145,7 @@ func (s *Server) buildResharder(ctx context.Context, req *vtctldata.ReshardCreat
// VReplication workflow streams as that is an invalid starting
// state for the non-serving shards involved in a Reshard.
func (rs *resharder) validateTargets(ctx context.Context) error {
- err := rs.forAll(rs.targetShards, func(target *topo.ShardInfo) error {
+ err := forAllShards(rs.targetShards, func(target *topo.ShardInfo) error {
targetPrimary := rs.targetPrimaries[target.ShardName()]
res, err := rs.s.tmc.HasVReplicationWorkflows(ctx, targetPrimary.Tablet, &tabletmanagerdatapb.HasVReplicationWorkflowsRequest{})
if err != nil {
@@ -162,7 +161,7 @@ func (rs *resharder) validateTargets(ctx context.Context) error {
func (rs *resharder) readRefStreams(ctx context.Context) error {
var mu sync.Mutex
- err := rs.forAll(rs.sourceShards, func(source *topo.ShardInfo) error {
+ err := forAllShards(rs.sourceShards, func(source *topo.ShardInfo) error {
sourcePrimary := rs.sourcePrimaries[source.ShardName()]
req := &tabletmanagerdatapb.ReadVReplicationWorkflowsRequest{
@@ -268,7 +267,7 @@ func (rs *resharder) identifyRuleType(rule *binlogdatapb.Rule) (StreamType, erro
func (rs *resharder) copySchema(ctx context.Context) error {
oneSource := rs.sourceShards[0].PrimaryAlias
- err := rs.forAll(rs.targetShards, func(target *topo.ShardInfo) error {
+ err := forAllShards(rs.targetShards, func(target *topo.ShardInfo) error {
return rs.s.CopySchemaShard(ctx, oneSource, []string{"/.*"}, nil, false, rs.keyspace, target.ShardName(), 1*time.Second, false)
})
return err
@@ -287,7 +286,7 @@ func (rs *resharder) createStreams(ctx context.Context) error {
}
}
- err := rs.forAll(rs.targetShards, func(target *topo.ShardInfo) error {
+ err := forAllShards(rs.targetShards, func(target *topo.ShardInfo) error {
targetPrimary := rs.targetPrimaries[target.ShardName()]
ig := vreplication.NewInsertGenerator(binlogdatapb.VReplicationWorkflowState_Stopped, targetPrimary.DbName())
@@ -339,7 +338,7 @@ func (rs *resharder) createStreams(ctx context.Context) error {
}
func (rs *resharder) startStreams(ctx context.Context) error {
- err := rs.forAll(rs.targetShards, func(target *topo.ShardInfo) error {
+ err := forAllShards(rs.targetShards, func(target *topo.ShardInfo) error {
targetPrimary := rs.targetPrimaries[target.ShardName()]
// This is the rare case where we truly want to update every stream/record
// because we've already confirmed that there were no existing workflows
@@ -357,20 +356,3 @@ func (rs *resharder) startStreams(ctx context.Context) error {
})
return err
}
-
-func (rs *resharder) forAll(shards []*topo.ShardInfo, f func(*topo.ShardInfo) error) error {
- var wg sync.WaitGroup
- allErrors := &concurrency.AllErrorRecorder{}
- for _, shard := range shards {
- wg.Add(1)
- go func(shard *topo.ShardInfo) {
- defer wg.Done()
-
- if err := f(shard); err != nil {
- allErrors.RecordError(err)
- }
- }(shard)
- }
- wg.Wait()
- return allErrors.AggrError(vterrors.Aggregate)
-}
diff --git a/go/vt/vtctl/workflow/server.go b/go/vt/vtctl/workflow/server.go
index 1828b0af814..b47d99118ce 100644
--- a/go/vt/vtctl/workflow/server.go
+++ b/go/vt/vtctl/workflow/server.go
@@ -1198,25 +1198,7 @@ func (s *Server) LookupVindexExternalize(ctx context.Context, req *vtctldatapb.L
return nil, err
}
- // Create a parallelizer function.
- forAllTargets := func(f func(*topo.ShardInfo) error) error {
- var wg sync.WaitGroup
- allErrors := &concurrency.AllErrorRecorder{}
- for _, targetShard := range targetShards {
- wg.Add(1)
- go func(targetShard *topo.ShardInfo) {
- defer wg.Done()
-
- if err := f(targetShard); err != nil {
- allErrors.RecordError(err)
- }
- }(targetShard)
- }
- wg.Wait()
- return allErrors.AggrError(vterrors.Aggregate)
- }
-
- err = forAllTargets(func(targetShard *topo.ShardInfo) error {
+ err = forAllShards(targetShards, func(targetShard *topo.ShardInfo) error {
targetPrimary, err := s.ts.GetTablet(ctx, targetShard.PrimaryAlias)
if err != nil {
return err
@@ -1412,7 +1394,7 @@ func (s *Server) moveTablesCreate(ctx context.Context, req *vtctldatapb.MoveTabl
return nil, err
}
if len(tables) > 0 {
- err = s.validateSourceTablesExist(ctx, sourceKeyspace, ksTables, tables)
+ err = validateSourceTablesExist(ctx, sourceKeyspace, ksTables, tables)
if err != nil {
return nil, err
}
@@ -1424,7 +1406,7 @@ func (s *Server) moveTablesCreate(ctx context.Context, req *vtctldatapb.MoveTabl
}
}
if len(req.ExcludeTables) > 0 {
- err = s.validateSourceTablesExist(ctx, sourceKeyspace, ksTables, req.ExcludeTables)
+ err = validateSourceTablesExist(ctx, sourceKeyspace, ksTables, req.ExcludeTables)
if err != nil {
return nil, err
}
@@ -2506,32 +2488,6 @@ func (s *Server) WorkflowUpdate(ctx context.Context, req *vtctldatapb.WorkflowUp
return response, nil
}
-// validateSourceTablesExist validates that tables provided are present
-// in the source keyspace.
-func (s *Server) validateSourceTablesExist(ctx context.Context, sourceKeyspace string, ksTables, tables []string) error {
- var missingTables []string
- for _, table := range tables {
- if schema.IsInternalOperationTableName(table) {
- continue
- }
- found := false
-
- for _, ksTable := range ksTables {
- if table == ksTable {
- found = true
- break
- }
- }
- if !found {
- missingTables = append(missingTables, table)
- }
- }
- if len(missingTables) > 0 {
- return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "table(s) not found in source keyspace %s: %s", sourceKeyspace, strings.Join(missingTables, ","))
- }
- return nil
-}
-
// addTablesToVSchema adds tables to an (unsharded) vschema if they are not already defined.
// If copyVSchema is true then we copy over the vschema table definitions from the source,
// otherwise we create empty ones.
@@ -2570,7 +2526,7 @@ func (s *Server) addTablesToVSchema(ctx context.Context, sourceKeyspace string,
func (s *Server) collectTargetStreams(ctx context.Context, mz *materializer) ([]string, error) {
var shardTablets []string
var mu sync.Mutex
- err := mz.forAllTargets(func(target *topo.ShardInfo) error {
+ err := forAllShards(mz.targetShards, func(target *topo.ShardInfo) error {
var err error
targetPrimary, err := s.ts.GetTablet(ctx, target.PrimaryAlias)
if err != nil {
@@ -2596,30 +2552,13 @@ func (s *Server) collectTargetStreams(ctx context.Context, mz *materializer) ([]
}
func (s *Server) checkIfPreviousJournalExists(ctx context.Context, mz *materializer, migrationID int64) (bool, []string, error) {
- forAllSources := func(f func(*topo.ShardInfo) error) error {
- var wg sync.WaitGroup
- allErrors := &concurrency.AllErrorRecorder{}
- for _, sourceShard := range mz.sourceShards {
- wg.Add(1)
- go func(sourceShard *topo.ShardInfo) {
- defer wg.Done()
-
- if err := f(sourceShard); err != nil {
- allErrors.RecordError(err)
- }
- }(sourceShard)
- }
- wg.Wait()
- return allErrors.AggrError(vterrors.Aggregate)
- }
-
var (
mu sync.Mutex
exists bool
tablets []string
)
- err := forAllSources(func(si *topo.ShardInfo) error {
+ err := forAllShards(mz.sourceShards, func(si *topo.ShardInfo) error {
tablet, err := s.ts.GetTablet(ctx, si.PrimaryAlias)
if err != nil {
return err
diff --git a/go/vt/vtctl/workflow/utils.go b/go/vt/vtctl/workflow/utils.go
index 5021e3938c8..2850dd1678e 100644
--- a/go/vt/vtctl/workflow/utils.go
+++ b/go/vt/vtctl/workflow/utils.go
@@ -1019,3 +1019,29 @@ func applyTargetShards(ts *trafficSwitcher, targetShards []string) error {
}
return nil
}
+
+// validateSourceTablesExist validates that tables provided are present
+// in the source keyspace.
+func validateSourceTablesExist(ctx context.Context, sourceKeyspace string, ksTables, tables []string) error {
+ var missingTables []string
+ for _, table := range tables {
+ if schema.IsInternalOperationTableName(table) {
+ continue
+ }
+ found := false
+
+ for _, ksTable := range ksTables {
+ if table == ksTable {
+ found = true
+ break
+ }
+ }
+ if !found {
+ missingTables = append(missingTables, table)
+ }
+ }
+ if len(missingTables) > 0 {
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "table(s) not found in source keyspace %s: %s", sourceKeyspace, strings.Join(missingTables, ","))
+ }
+ return nil
+}
diff --git a/go/vt/vtctl/workflow/utils_test.go b/go/vt/vtctl/workflow/utils_test.go
index 2094421e3c2..8458cf60995 100644
--- a/go/vt/vtctl/workflow/utils_test.go
+++ b/go/vt/vtctl/workflow/utils_test.go
@@ -11,6 +11,7 @@ import (
"testing"
"time"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
clientv3 "go.etcd.io/etcd/client/v3"
@@ -244,3 +245,39 @@ func startEtcd(t *testing.T) string {
return clientAddr
}
+
+func TestValidateSourceTablesExist(t *testing.T) {
+ ctx := context.Background()
+ ks := "source_keyspace"
+ ksTables := []string{"table1", "table2"}
+
+ testCases := []struct {
+ name string
+ tables []string
+ errContains string
+ }{
+ {
+ name: "no error",
+ tables: []string{"table2"},
+ },
+ {
+ name: "ignore internal table",
+ tables: []string{"_vt_hld_6ace8bcef73211ea87e9f875a4d24e90_20200915120410_", "table1", "table2"},
+ },
+ {
+ name: "table not found error",
+ tables: []string{"table3", "table1", "table2"},
+ errContains: "table3",
+ },
+ }
+ for _, tc := range testCases {
+ t.Run(tc.name, func(t *testing.T) {
+ err := validateSourceTablesExist(ctx, ks, ksTables, tc.tables)
+ if tc.errContains != "" {
+ assert.ErrorContains(t, err, tc.errContains)
+ } else {
+ assert.NoError(t, err)
+ }
+ })
+ }
+}
From fdf529e99d5b6e3808cfaff4e58c943aa573fd83 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Fri, 1 Nov 2024 11:36:36 -0400
Subject: [PATCH 24/78] VReplication: Fixes for generated column handling
(#17107)
Signed-off-by: Matt Lord
---
go/test/endtoend/vreplication/cluster_test.go | 4 +-
go/test/endtoend/vreplication/config_test.go | 4 +-
.../vreplication/unsharded_init_data.sql | 4 +-
.../vreplication/vreplication_test.go | 14 ++++---
.../vreplication/replicator_plan.go | 23 +++++------
.../vreplication/table_plan_builder.go | 33 ++++++----------
.../vreplication/table_plan_partial.go | 17 ++------
.../vstreamer/helper_event_test.go | 17 +++++++-
.../tabletserver/vstreamer/vstreamer_test.go | 39 +++++++++++++++++++
9 files changed, 96 insertions(+), 59 deletions(-)
diff --git a/go/test/endtoend/vreplication/cluster_test.go b/go/test/endtoend/vreplication/cluster_test.go
index 13268fc749c..119843651bc 100644
--- a/go/test/endtoend/vreplication/cluster_test.go
+++ b/go/test/endtoend/vreplication/cluster_test.go
@@ -30,6 +30,8 @@ import (
"testing"
"time"
+ "github.com/stretchr/testify/require"
+
"vitess.io/vitess/go/mysql"
"vitess.io/vitess/go/test/endtoend/cluster"
"vitess.io/vitess/go/test/endtoend/throttler"
@@ -40,8 +42,6 @@ import (
vttablet "vitess.io/vitess/go/vt/vttablet/common"
vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata"
-
- "github.com/stretchr/testify/require"
)
var (
diff --git a/go/test/endtoend/vreplication/config_test.go b/go/test/endtoend/vreplication/config_test.go
index 25a4b734259..4b4bcfecc35 100644
--- a/go/test/endtoend/vreplication/config_test.go
+++ b/go/test/endtoend/vreplication/config_test.go
@@ -48,8 +48,8 @@ var (
customerTypes = []string{"'individual'", "'soho'", "'enterprise'"}
initialProductSchema = fmt.Sprintf(`
create table product(pid int, description varbinary(128), date1 datetime not null default '0000-00-00 00:00:00', date2 datetime not null default '2021-00-01 00:00:00', primary key(pid), key(date1,date2)) CHARSET=utf8mb4;
-create table customer(cid int auto_increment, name varchar(128) collate utf8mb4_bin, meta json default null, typ enum(%s), sport set('football','cricket','baseball'),
- ts timestamp not null default current_timestamp, bits bit(2) default b'11', date1 datetime not null default '0000-00-00 00:00:00',
+create table customer(cid int auto_increment, name varchar(128) collate utf8mb4_bin, meta json default null, industryCategory varchar(100) generated always as (json_extract(meta, _utf8mb4'$.industry')) virtual,
+ typ enum(%s), sport set('football','cricket','baseball'), ts timestamp not null default current_timestamp, bits bit(2) default b'11', date1 datetime not null default '0000-00-00 00:00:00',
date2 datetime not null default '2021-00-01 00:00:00', dec80 decimal(8,0), blb blob, primary key(cid,typ), key(name)) CHARSET=utf8mb4;
create table customer_seq(id int, next_id bigint, cache bigint, primary key(id)) comment 'vitess_sequence';
create table merchant(mname varchar(128), category varchar(128), primary key(mname), key(category)) CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
diff --git a/go/test/endtoend/vreplication/unsharded_init_data.sql b/go/test/endtoend/vreplication/unsharded_init_data.sql
index 8af0cab6608..3e795cadcfd 100644
--- a/go/test/endtoend/vreplication/unsharded_init_data.sql
+++ b/go/test/endtoend/vreplication/unsharded_init_data.sql
@@ -1,7 +1,7 @@
-insert into customer(cid, name, typ, sport, meta) values(1, 'Jøhn "❤️" Rizzolo',1,'football,baseball','{}');
+insert into customer(cid, name, typ, sport, meta) values(1, 'Jøhn "❤️" Rizzolo',1,'football,baseball','{"industry":"IT SaaS","company":"PlanetScale"}');
insert into customer(cid, name, typ, sport, meta) values(2, 'Paül','soho','cricket',convert(x'7b7d' using utf8mb4));
-- We use a high cid value here to test the target sequence initialization.
-insert into customer(cid, name, typ, sport, blb) values(999999, 'ringo','enterprise','','blob data');
+insert into customer(cid, name, typ, sport, blb, meta) values(999999, 'ringo','enterprise','','blob data', '{"industry":"Music"}');
insert into merchant(mname, category) values('Monoprice', 'eléctronics');
insert into merchant(mname, category) values('newegg', 'elec†ronics');
insert into product(pid, description) values(1, 'keyböard ⌨️');
diff --git a/go/test/endtoend/vreplication/vreplication_test.go b/go/test/endtoend/vreplication/vreplication_test.go
index 519bf8d0ce5..04a5eabc33b 100644
--- a/go/test/endtoend/vreplication/vreplication_test.go
+++ b/go/test/endtoend/vreplication/vreplication_test.go
@@ -587,12 +587,16 @@ func testVStreamCellFlag(t *testing.T) {
}
}
-// TestCellAliasVreplicationWorkflow tests replication from a cell with an alias to test the tablet picker's alias functionality
-// We also reuse the setup of this test to validate that the "vstream * from" vtgate query functionality is functional
+// TestCellAliasVreplicationWorkflow tests replication from a cell with an alias to test
+// the tablet picker's alias functionality.
+// We also reuse the setup of this test to validate that the "vstream * from" vtgate
+// query functionality is functional.
func TestCellAliasVreplicationWorkflow(t *testing.T) {
cells := []string{"zone1", "zone2"}
- defer mainClusterConfig.enableGTIDCompression()
- defer setAllVTTabletExperimentalFlags()
+ resetCompression := mainClusterConfig.enableGTIDCompression()
+ defer resetCompression()
+ resetExperimentalFlags := setAllVTTabletExperimentalFlags()
+ defer resetExperimentalFlags()
vc = NewVitessCluster(t, &clusterOptions{cells: cells})
defer vc.TearDown()
@@ -718,12 +722,12 @@ func shardCustomer(t *testing.T, testReverse bool, cells []*Cell, sourceCellOrAl
vtgateConn := getConnection(t, vc.ClusterConfig.hostname, vc.ClusterConfig.vtgateMySQLPort)
defer vtgateConn.Close()
// Confirm that the 0 scale decimal field, dec80, is replicated correctly
- dec80Replicated := false
execVtgateQuery(t, vtgateConn, sourceKs, "update customer set dec80 = 0")
execVtgateQuery(t, vtgateConn, sourceKs, "update customer set blb = \"new blob data\" where cid=3")
execVtgateQuery(t, vtgateConn, sourceKs, "update json_tbl set j1 = null, j2 = 'null', j3 = '\"null\"'")
execVtgateQuery(t, vtgateConn, sourceKs, "insert into json_tbl(id, j1, j2, j3) values (7, null, 'null', '\"null\"')")
waitForNoWorkflowLag(t, vc, targetKs, workflow)
+ dec80Replicated := false
for _, tablet := range []*cluster.VttabletProcess{customerTab1, customerTab2} {
// Query the tablet's mysqld directly as the targets will have denied table entries.
dbc, err := tablet.TabletConn(targetKs, true)
diff --git a/go/vt/vttablet/tabletmanager/vreplication/replicator_plan.go b/go/vt/vttablet/tabletmanager/vreplication/replicator_plan.go
index aee7f5c8909..6a416cb4414 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/replicator_plan.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/replicator_plan.go
@@ -111,19 +111,18 @@ func (rp *ReplicatorPlan) buildFromFields(tableName string, lastpk *sqltypes.Res
}
for _, field := range fields {
colName := sqlparser.NewIdentifierCI(field.Name)
- isGenerated := false
+ generated := false
+ // We have to loop over the columns in the plan as the columns between the
+ // source and target are not always 1 to 1.
for _, colInfo := range tpb.colInfos {
if !strings.EqualFold(colInfo.Name, field.Name) {
continue
}
if colInfo.IsGenerated {
- isGenerated = true
+ generated = true
}
break
}
- if isGenerated {
- continue
- }
cexpr := &colExpr{
colName: colName,
colType: field.Type,
@@ -133,6 +132,7 @@ func (rp *ReplicatorPlan) buildFromFields(tableName string, lastpk *sqltypes.Res
references: map[string]bool{
field.Name: true,
},
+ isGenerated: generated,
}
tpb.colExprs = append(tpb.colExprs, cexpr)
}
@@ -608,12 +608,13 @@ func valsEqual(v1, v2 sqltypes.Value) bool {
return v1.ToString() == v2.ToString()
}
-// AppendFromRow behaves like Append but takes a querypb.Row directly, assuming that
-// the fields in the row are in the same order as the placeholders in this query. The fields might include generated
-// columns which are dropped, by checking against skipFields, before binding the variables
-// note: there can be more fields than bind locations since extra columns might be requested from the source if not all
-// primary keys columns are present in the target table, for example. Also some values in the row may not correspond for
-// values from the database on the source: sum/count for aggregation queries, for example
+// AppendFromRow behaves like Append but takes a querypb.Row directly, assuming that the
+// fields in the row are in the same order as the placeholders in this query. The fields
+// might include generated columns which are dropped before binding the variables note:
+// there can be more fields than bind locations since extra columns might be requested
+// from the source if not all primary keys columns are present in the target table, for
+// example. Also some values in the row may not correspond for values from the database
+// on the source: sum/count for aggregation queries, for example.
func (tp *TablePlan) appendFromRow(buf *bytes2.Buffer, row *querypb.Row) error {
bindLocations := tp.BulkInsertValues.BindLocations()
if len(tp.Fields) < len(bindLocations) {
diff --git a/go/vt/vttablet/tabletmanager/vreplication/table_plan_builder.go b/go/vt/vttablet/tabletmanager/vreplication/table_plan_builder.go
index 12afc3fec28..b8a86b94de5 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/table_plan_builder.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/table_plan_builder.go
@@ -80,10 +80,11 @@ type colExpr struct {
// references contains all the column names referenced in the expression.
references map[string]bool
- isGrouped bool
- isPK bool
- dataType string
- columnType string
+ isGrouped bool
+ isPK bool
+ isGenerated bool
+ dataType string
+ columnType string
}
// operation is the opcode for the colExpr.
@@ -360,7 +361,7 @@ func (tpb *tablePlanBuilder) generate() *TablePlan {
fieldsToSkip := make(map[string]bool)
for _, colInfo := range tpb.colInfos {
if colInfo.IsGenerated {
- fieldsToSkip[colInfo.Name] = true
+ fieldsToSkip[strings.ToLower(colInfo.Name)] = true
}
}
return &TablePlan{
@@ -694,7 +695,7 @@ func (tpb *tablePlanBuilder) generateInsertPart(buf *sqlparser.TrackedBuffer) *s
}
separator := ""
for _, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
buf.Myprintf("%s%v", separator, cexpr.colName)
@@ -708,7 +709,7 @@ func (tpb *tablePlanBuilder) generateValuesPart(buf *sqlparser.TrackedBuffer, bv
bvf.mode = bvAfter
separator := "("
for _, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
buf.Myprintf("%s", separator)
@@ -745,7 +746,7 @@ func (tpb *tablePlanBuilder) generateSelectPart(buf *sqlparser.TrackedBuffer, bv
buf.WriteString(" select ")
separator := ""
for _, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
buf.Myprintf("%s", separator)
@@ -781,7 +782,7 @@ func (tpb *tablePlanBuilder) generateOnDupPart(buf *sqlparser.TrackedBuffer) *sq
if cexpr.isGrouped || cexpr.isPK {
continue
}
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
buf.Myprintf("%s%v=", separator, cexpr.colName)
@@ -812,10 +813,7 @@ func (tpb *tablePlanBuilder) generateUpdateStatement() *sqlparser.ParsedQuery {
if cexpr.isPK {
tpb.pkIndices[i] = true
}
- if cexpr.isGrouped || cexpr.isPK {
- continue
- }
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGrouped || cexpr.isPK || cexpr.isGenerated {
continue
}
buf.Myprintf("%s%v=", separator, cexpr.colName)
@@ -961,15 +959,6 @@ func (tpb *tablePlanBuilder) generatePKConstraint(buf *sqlparser.TrackedBuffer,
buf.WriteString(")")
}
-func (tpb *tablePlanBuilder) isColumnGenerated(col sqlparser.IdentifierCI) bool {
- for _, colInfo := range tpb.colInfos {
- if col.EqualString(colInfo.Name) && colInfo.IsGenerated {
- return true
- }
- }
- return false
-}
-
// bindvarFormatter is a dual mode formatter. Its behavior
// can be changed dynamically changed to generate bind vars
// for the 'before' row or 'after' row by setting its mode
diff --git a/go/vt/vttablet/tabletmanager/vreplication/table_plan_partial.go b/go/vt/vttablet/tabletmanager/vreplication/table_plan_partial.go
index cb8ac6dc515..85e0fd8e50f 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/table_plan_partial.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/table_plan_partial.go
@@ -50,10 +50,7 @@ func (tpb *tablePlanBuilder) generatePartialValuesPart(buf *sqlparser.TrackedBuf
bvf.mode = bvAfter
separator := "("
for ind, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
- continue
- }
- if !isBitSet(dataColumns.Cols, ind) {
+ if cexpr.isGenerated || !isBitSet(dataColumns.Cols, ind) {
continue
}
buf.Myprintf("%s", separator)
@@ -84,7 +81,7 @@ func (tpb *tablePlanBuilder) generatePartialInsertPart(buf *sqlparser.TrackedBuf
buf.Myprintf("insert into %v(", tpb.name)
separator := ""
for ind, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
if !isBitSet(dataColumns.Cols, ind) {
@@ -102,7 +99,7 @@ func (tpb *tablePlanBuilder) generatePartialSelectPart(buf *sqlparser.TrackedBuf
buf.WriteString(" select ")
separator := ""
for ind, cexpr := range tpb.colExprs {
- if tpb.isColumnGenerated(cexpr.colName) {
+ if cexpr.isGenerated {
continue
}
if !isBitSet(dataColumns.Cols, ind) {
@@ -141,17 +138,11 @@ func (tpb *tablePlanBuilder) createPartialUpdateQuery(dataColumns *binlogdatapb.
buf.Myprintf("update %v set ", tpb.name)
separator := ""
for i, cexpr := range tpb.colExprs {
- if cexpr.isPK {
- continue
- }
- if tpb.isColumnGenerated(cexpr.colName) {
- continue
- }
if int64(i) >= dataColumns.Count {
log.Errorf("Ran out of columns trying to generate query for %s", tpb.name.CompliantName())
return nil
}
- if !isBitSet(dataColumns.Cols, i) {
+ if cexpr.isPK || cexpr.isGenerated || !isBitSet(dataColumns.Cols, i) {
continue
}
buf.Myprintf("%s%v=", separator, cexpr.colName)
diff --git a/go/vt/vttablet/tabletserver/vstreamer/helper_event_test.go b/go/vt/vttablet/tabletserver/vstreamer/helper_event_test.go
index c52e81564c0..675677bf820 100644
--- a/go/vt/vttablet/tabletserver/vstreamer/helper_event_test.go
+++ b/go/vt/vttablet/tabletserver/vstreamer/helper_event_test.go
@@ -142,6 +142,11 @@ type TestQuery struct {
type TestRowChange struct {
before []string
after []string
+
+ // If you need to customize the image you can use the raw types.
+ beforeRaw *query.Row
+ afterRaw *query.Row
+ dataColumnsRaw *binlogdatapb.RowChange_Bitmap
}
// TestRowEventSpec is used for defining a custom row event.
@@ -161,7 +166,12 @@ func (s *TestRowEventSpec) String() string {
if len(s.changes) > 0 {
for _, c := range s.changes {
rowChange := binlogdatapb.RowChange{}
- if len(c.before) > 0 {
+ if c.dataColumnsRaw != nil {
+ rowChange.DataColumns = c.dataColumnsRaw
+ }
+ if c.beforeRaw != nil {
+ rowChange.Before = c.beforeRaw
+ } else if len(c.before) > 0 {
rowChange.Before = &query.Row{}
for _, val := range c.before {
if val == sqltypes.NullStr {
@@ -171,7 +181,9 @@ func (s *TestRowEventSpec) String() string {
rowChange.Before.Values = append(rowChange.Before.Values, []byte(val)...)
}
}
- if len(c.after) > 0 {
+ if c.afterRaw != nil {
+ rowChange.After = c.afterRaw
+ } else if len(c.after) > 0 {
rowChange.After = &query.Row{}
for i, val := range c.after {
if val == sqltypes.NullStr {
@@ -354,6 +366,7 @@ func (ts *TestSpec) getBindVarsForUpdate(stmt sqlparser.Statement) (string, map[
require.True(ts.t, ok, "field event for table %s not found", table)
index := int64(0)
state := ts.getCurrentState(table)
+ require.NotNil(ts.t, state)
for i, col := range fe.cols {
bv[col.name] = string(state.Values[index : index+state.Lengths[i]])
index += state.Lengths[i]
diff --git a/go/vt/vttablet/tabletserver/vstreamer/vstreamer_test.go b/go/vt/vttablet/tabletserver/vstreamer/vstreamer_test.go
index c265fb45b85..846d62202e7 100644
--- a/go/vt/vttablet/tabletserver/vstreamer/vstreamer_test.go
+++ b/go/vt/vttablet/tabletserver/vstreamer/vstreamer_test.go
@@ -41,6 +41,7 @@ import (
"vitess.io/vitess/go/vt/vttablet/tabletserver/vstreamer/testenv"
binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata"
+ querypb "vitess.io/vitess/go/vt/proto/query"
)
type testcase struct {
@@ -87,6 +88,9 @@ func TestNoBlob(t *testing.T) {
"create table t2(id int, txt text, val varchar(4), unique key(id, val))",
// t3 has a text column and a primary key. The text column will not be in update row events.
"create table t3(id int, txt text, val varchar(4), primary key(id))",
+ // t4 has a blob column and a primary key, along with a generated virtual column. The blob
+ // column will not be in update row events.
+ "create table t4(id int, cOl varbinary(8) generated always as (concat(val, 'tsty')) virtual, blb blob, val varbinary(4), primary key(id))",
},
options: &TestSpecOptions{
noblob: true,
@@ -94,6 +98,18 @@ func TestNoBlob(t *testing.T) {
}
defer ts.Close()
ts.Init()
+
+ insertGeneratedFE := &TestFieldEvent{
+ table: "t4",
+ db: testenv.DBName,
+ cols: []*TestColumn{
+ {name: "id", dataType: "INT32", colType: "int(11)", len: 11, collationID: 63},
+ {name: "cOl", dataType: "VARBINARY", colType: "varbinary(8)", len: 8, collationID: 63},
+ {name: "blb", dataType: "BLOB", colType: "blob", len: 65535, collationID: 63},
+ {name: "val", dataType: "VARBINARY", colType: "varbinary(4)", len: 4, collationID: 63},
+ },
+ }
+
ts.tests = [][]*TestQuery{{
{"begin", nil},
{"insert into t1 values (1, 'blob1', 'aaa')", nil},
@@ -107,6 +123,29 @@ func TestNoBlob(t *testing.T) {
{"insert into t3 values (1, 'text1', 'aaa')", nil},
{"update t3 set val = 'bbb'", nil},
{"commit", nil},
+ }, {{"begin", nil},
+ {"insert into t4 (id, blb, val) values (1, 'text1', 'aaa')", []TestRowEvent{
+ {event: insertGeneratedFE.String()},
+ {spec: &TestRowEventSpec{table: "t4", changes: []TestRowChange{{after: []string{"1", "aaatsty", "text1", "aaa"}}}}},
+ }},
+ {"update t4 set val = 'bbb'", []TestRowEvent{
+ // The blob column is not in the update row event's before or after image.
+ {spec: &TestRowEventSpec{table: "t4", changes: []TestRowChange{{
+ beforeRaw: &querypb.Row{
+ Lengths: []int64{1, 7, -1, 3}, // -1 for the 3rd column / blob field, as it's not present
+ Values: []byte("1aaatstyaaa"),
+ },
+ afterRaw: &querypb.Row{
+ Lengths: []int64{1, 7, -1, 3}, // -1 for the 3rd column / blob field, as it's not present
+ Values: []byte("1bbbtstybbb"),
+ },
+ dataColumnsRaw: &binlogdatapb.RowChange_Bitmap{
+ Count: 4,
+ Cols: []byte{0x0b}, // Columns bitmap of 00001011 as the third column/bit position representing the blob column has no data
+ },
+ }}}},
+ }},
+ {"commit", nil},
}}
ts.Run()
}
From 1e2f15b0e0c7313dfe421e28b7aa7a0a645b7890 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Mon, 4 Nov 2024 14:46:33 +0530
Subject: [PATCH 25/78] Fix flakiness in `TestDisruptions` for two pc testing
(#17106)
Signed-off-by: Manan Gupta
---
go/test/endtoend/cluster/vtctldclient_process.go | 4 +++-
go/test/endtoend/transaction/twopc/utils/utils.go | 4 ++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/go/test/endtoend/cluster/vtctldclient_process.go b/go/test/endtoend/cluster/vtctldclient_process.go
index 55f04e021c9..892f03e27fe 100644
--- a/go/test/endtoend/cluster/vtctldclient_process.go
+++ b/go/test/endtoend/cluster/vtctldclient_process.go
@@ -195,7 +195,9 @@ func (vtctldclient *VtctldClientProcess) PlannedReparentShard(Keyspace string, S
output, err := vtctldclient.ExecuteCommandWithOutput(
"PlannedReparentShard",
fmt.Sprintf("%s/%s", Keyspace, Shard),
- "--new-primary", alias)
+ "--new-primary", alias,
+ "--wait-replicas-timeout", "30s",
+ )
if err != nil {
log.Errorf("error in PlannedReparentShard output %s, err %s", output, err.Error())
}
diff --git a/go/test/endtoend/transaction/twopc/utils/utils.go b/go/test/endtoend/transaction/twopc/utils/utils.go
index 067877c4ece..695dd0dd93f 100644
--- a/go/test/endtoend/transaction/twopc/utils/utils.go
+++ b/go/test/endtoend/transaction/twopc/utils/utils.go
@@ -221,6 +221,10 @@ func AddShards(t *testing.T, clusterInstance *cluster.LocalProcessCluster, keysp
shard, err := clusterInstance.AddShard(keyspaceName, shardName, 3, false, nil)
require.NoError(t, err)
clusterInstance.Keyspaces[0].Shards = append(clusterInstance.Keyspaces[0].Shards, *shard)
+ for _, vttablet := range shard.Vttablets {
+ err = vttablet.VttabletProcess.WaitForTabletStatuses([]string{"SERVING"})
+ require.NoError(t, err)
+ }
}
}
From 9ed8ee2c1bba4c8784296bfae70e356238928a7f Mon Sep 17 00:00:00 2001
From: Dirkjan Bussink
Date: Mon, 4 Nov 2024 11:59:25 +0100
Subject: [PATCH 26/78] Move to native sqlite3 queries (#17124)
Signed-off-by: Dirkjan Bussink
Co-authored-by: Tim Vaillancourt
---
go/vt/external/golib/sqlutils/dialect.go | 53 ---
.../external/golib/sqlutils/sqlite_dialect.go | 134 --------
.../golib/sqlutils/sqlite_dialect_test.go | 314 ------------------
go/vt/vtorc/db/db.go | 29 +-
go/vt/vtorc/inst/analysis_dao.go | 14 +-
go/vt/vtorc/inst/audit_dao.go | 2 +-
go/vt/vtorc/inst/instance_dao.go | 61 ++--
go/vt/vtorc/inst/instance_dao_test.go | 65 ++--
go/vt/vtorc/logic/disable_recovery.go | 2 +-
go/vt/vtorc/logic/topology_recovery_dao.go | 14 +-
.../vtorc/logic/topology_recovery_dao_test.go | 18 +-
go/vt/vtorc/process/health.go | 2 +-
12 files changed, 84 insertions(+), 624 deletions(-)
delete mode 100644 go/vt/external/golib/sqlutils/dialect.go
delete mode 100644 go/vt/external/golib/sqlutils/sqlite_dialect.go
delete mode 100644 go/vt/external/golib/sqlutils/sqlite_dialect_test.go
diff --git a/go/vt/external/golib/sqlutils/dialect.go b/go/vt/external/golib/sqlutils/dialect.go
deleted file mode 100644
index 8dabe57ccaf..00000000000
--- a/go/vt/external/golib/sqlutils/dialect.go
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- Copyright 2017 GitHub Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- This file has been copied over from VTOrc package
-*/
-
-package sqlutils
-
-import (
- "regexp"
- "strings"
-)
-
-type regexpMap struct {
- r *regexp.Regexp
- replacement string
-}
-
-func (this *regexpMap) process(text string) (result string) {
- return this.r.ReplaceAllString(text, this.replacement)
-}
-
-func rmap(regexpExpression string, replacement string) regexpMap {
- return regexpMap{
- r: regexp.MustCompile(regexpSpaces(regexpExpression)),
- replacement: replacement,
- }
-}
-
-func regexpSpaces(statement string) string {
- return strings.Replace(statement, " ", `[\s]+`, -1)
-}
-
-func applyConversions(statement string, conversions []regexpMap) string {
- for _, rmap := range conversions {
- statement = rmap.process(statement)
- }
- return statement
-}
diff --git a/go/vt/external/golib/sqlutils/sqlite_dialect.go b/go/vt/external/golib/sqlutils/sqlite_dialect.go
deleted file mode 100644
index 11f0e531367..00000000000
--- a/go/vt/external/golib/sqlutils/sqlite_dialect.go
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- Copyright 2017 GitHub Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- This file has been copied over from VTOrc package
-*/
-
-// What's this about?
-// This is a brute-force regular-expression based conversion from MySQL syntax to sqlite3 syntax.
-// It is NOT meant to be a general purpose solution and is only expected & confirmed to run on
-// queries issued by orchestrator. There are known limitations to this design.
-// It's not even pretty.
-// In fact...
-// Well, it gets the job done at this time. Call it debt.
-
-package sqlutils
-
-import (
- "regexp"
-)
-
-var sqlite3CreateTableConversions = []regexpMap{
- rmap(`(?i) (character set|charset) [\S]+`, ``),
- rmap(`(?i)int unsigned`, `int`),
- rmap(`(?i)int[\s]*[(][\s]*([0-9]+)[\s]*[)] unsigned`, `int`),
- rmap(`(?i)engine[\s]*=[\s]*(innodb|myisam|ndb|memory|tokudb)`, ``),
- rmap(`(?i)DEFAULT CHARSET[\s]*=[\s]*[\S]+`, ``),
- rmap(`(?i)[\S]*int( not null|) auto_increment`, `integer`),
- rmap(`(?i)comment '[^']*'`, ``),
- rmap(`(?i)after [\S]+`, ``),
- rmap(`(?i)alter table ([\S]+) add (index|key) ([\S]+) (.+)`, `create index ${3}_${1} on $1 $4`),
- rmap(`(?i)alter table ([\S]+) add unique (index|key) ([\S]+) (.+)`, `create unique index ${3}_${1} on $1 $4`),
- rmap(`(?i)([\S]+) enum[\s]*([(].*?[)])`, `$1 text check($1 in $2)`),
- rmap(`(?i)([\s\S]+[/][*] sqlite3-skip [*][/][\s\S]+)`, ``),
- rmap(`(?i)timestamp default current_timestamp`, `timestamp default ('')`),
- rmap(`(?i)timestamp not null default current_timestamp`, `timestamp not null default ('')`),
-
- rmap(`(?i)add column (.*int) not null[\s]*$`, `add column $1 not null default 0`),
- rmap(`(?i)add column (.* text) not null[\s]*$`, `add column $1 not null default ''`),
- rmap(`(?i)add column (.* varchar.*) not null[\s]*$`, `add column $1 not null default ''`),
-}
-
-var sqlite3InsertConversions = []regexpMap{
- rmap(`(?i)insert ignore ([\s\S]+) on duplicate key update [\s\S]+`, `insert or ignore $1`),
- rmap(`(?i)insert ignore`, `insert or ignore`),
- rmap(`(?i)now[(][)]`, `datetime('now')`),
- rmap(`(?i)insert into ([\s\S]+) on duplicate key update [\s\S]+`, `replace into $1`),
-}
-
-var sqlite3GeneralConversions = []regexpMap{
- rmap(`(?i)now[(][)][\s]*[-][\s]*interval [?] ([\w]+)`, `datetime('now', printf('-%d $1', ?))`),
- rmap(`(?i)now[(][)][\s]*[+][\s]*interval [?] ([\w]+)`, `datetime('now', printf('+%d $1', ?))`),
- rmap(`(?i)now[(][)][\s]*[-][\s]*interval ([0-9.]+) ([\w]+)`, `datetime('now', '-${1} $2')`),
- rmap(`(?i)now[(][)][\s]*[+][\s]*interval ([0-9.]+) ([\w]+)`, `datetime('now', '+${1} $2')`),
-
- rmap(`(?i)[=<>\s]([\S]+[.][\S]+)[\s]*[-][\s]*interval [?] ([\w]+)`, ` datetime($1, printf('-%d $2', ?))`),
- rmap(`(?i)[=<>\s]([\S]+[.][\S]+)[\s]*[+][\s]*interval [?] ([\w]+)`, ` datetime($1, printf('+%d $2', ?))`),
-
- rmap(`(?i)unix_timestamp[(][)]`, `strftime('%s', 'now')`),
- rmap(`(?i)unix_timestamp[(]([^)]+)[)]`, `strftime('%s', $1)`),
- rmap(`(?i)now[(][)]`, `datetime('now')`),
- rmap(`(?i)cast[(][\s]*([\S]+) as signed[\s]*[)]`, `cast($1 as integer)`),
-
- rmap(`(?i)\bconcat[(][\s]*([^,)]+)[\s]*,[\s]*([^,)]+)[\s]*[)]`, `($1 || $2)`),
- rmap(`(?i)\bconcat[(][\s]*([^,)]+)[\s]*,[\s]*([^,)]+)[\s]*,[\s]*([^,)]+)[\s]*[)]`, `($1 || $2 || $3)`),
-
- rmap(`(?i) rlike `, ` like `),
-
- rmap(`(?i)create index([\s\S]+)[(][\s]*[0-9]+[\s]*[)]([\s\S]+)`, `create index ${1}${2}`),
- rmap(`(?i)drop index ([\S]+) on ([\S]+)`, `drop index if exists $1`),
-}
-
-var (
- sqlite3IdentifyCreateTableStatement = regexp.MustCompile(regexpSpaces(`(?i)^[\s]*create table`))
- sqlite3IdentifyCreateIndexStatement = regexp.MustCompile(regexpSpaces(`(?i)^[\s]*create( unique|) index`))
- sqlite3IdentifyDropIndexStatement = regexp.MustCompile(regexpSpaces(`(?i)^[\s]*drop index`))
- sqlite3IdentifyAlterTableStatement = regexp.MustCompile(regexpSpaces(`(?i)^[\s]*alter table`))
- sqlite3IdentifyInsertStatement = regexp.MustCompile(regexpSpaces(`(?i)^[\s]*(insert|replace)`))
-)
-
-func IsInsert(statement string) bool {
- return sqlite3IdentifyInsertStatement.MatchString(statement)
-}
-
-func IsCreateTable(statement string) bool {
- return sqlite3IdentifyCreateTableStatement.MatchString(statement)
-}
-
-func IsCreateIndex(statement string) bool {
- return sqlite3IdentifyCreateIndexStatement.MatchString(statement)
-}
-
-func IsDropIndex(statement string) bool {
- return sqlite3IdentifyDropIndexStatement.MatchString(statement)
-}
-
-func IsAlterTable(statement string) bool {
- return sqlite3IdentifyAlterTableStatement.MatchString(statement)
-}
-
-func ToSqlite3CreateTable(statement string) string {
- return applyConversions(statement, sqlite3CreateTableConversions)
-}
-
-func ToSqlite3Insert(statement string) string {
- return applyConversions(statement, sqlite3InsertConversions)
-}
-
-func ToSqlite3Dialect(statement string) (translated string) {
- if IsCreateTable(statement) {
- return ToSqlite3CreateTable(statement)
- }
- if IsAlterTable(statement) {
- return ToSqlite3CreateTable(statement)
- }
- statement = applyConversions(statement, sqlite3GeneralConversions)
- if IsInsert(statement) {
- return ToSqlite3Insert(statement)
- }
- return statement
-}
diff --git a/go/vt/external/golib/sqlutils/sqlite_dialect_test.go b/go/vt/external/golib/sqlutils/sqlite_dialect_test.go
deleted file mode 100644
index 1298c379adf..00000000000
--- a/go/vt/external/golib/sqlutils/sqlite_dialect_test.go
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- Copyright 2017 GitHub Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- This file has been copied over from VTOrc package
-*/
-
-package sqlutils
-
-import (
- "regexp"
- "strings"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-var spacesRegexp = regexp.MustCompile(`[\s]+`)
-
-func init() {
-}
-
-func stripSpaces(statement string) string {
- statement = strings.TrimSpace(statement)
- statement = spacesRegexp.ReplaceAllString(statement, " ")
- return statement
-}
-
-func TestIsCreateTable(t *testing.T) {
- require.True(t, IsCreateTable("create table t(id int)"))
- require.True(t, IsCreateTable(" create table t(id int)"))
- require.True(t, IsCreateTable("CREATE TABLE t(id int)"))
- require.True(t, IsCreateTable(`
- create table t(id int)
- `))
- require.False(t, IsCreateTable("where create table t(id int)"))
- require.False(t, IsCreateTable("insert"))
-}
-
-func TestToSqlite3CreateTable(t *testing.T) {
- {
- statement := "create table t(id int)"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, statement)
- }
- {
- statement := "create table t(id int, v varchar(123) CHARACTER SET ascii NOT NULL default '')"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, "create table t(id int, v varchar(123) NOT NULL default '')")
- }
- {
- statement := "create table t(id int, v varchar ( 123 ) CHARACTER SET ascii NOT NULL default '')"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, "create table t(id int, v varchar ( 123 ) NOT NULL default '')")
- }
- {
- statement := "create table t(i smallint unsigned)"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, "create table t(i smallint)")
- }
- {
- statement := "create table t(i smallint(5) unsigned)"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, "create table t(i smallint)")
- }
- {
- statement := "create table t(i smallint ( 5 ) unsigned)"
- result := ToSqlite3CreateTable(statement)
- require.Equal(t, result, "create table t(i smallint)")
- }
-}
-
-func TestToSqlite3AlterTable(t *testing.T) {
- {
- statement := `
- ALTER TABLE
- database_instance
- ADD COLUMN sql_delay INT UNSIGNED NOT NULL AFTER replica_lag_seconds
- `
- result := stripSpaces(ToSqlite3Dialect(statement))
- require.Equal(t, result, stripSpaces(`
- ALTER TABLE
- database_instance
- add column sql_delay int not null default 0
- `))
- }
- {
- statement := `
- ALTER TABLE
- database_instance
- ADD INDEX source_host_port_idx (source_host, source_port)
- `
- result := stripSpaces(ToSqlite3Dialect(statement))
- require.Equal(t, result, stripSpaces(`
- create index
- source_host_port_idx_database_instance
- on database_instance (source_host, source_port)
- `))
- }
- {
- statement := `
- ALTER TABLE
- topology_recovery
- ADD KEY last_detection_idx (last_detection_id)
- `
- result := stripSpaces(ToSqlite3Dialect(statement))
- require.Equal(t, result, stripSpaces(`
- create index
- last_detection_idx_topology_recovery
- on topology_recovery (last_detection_id)
- `))
- }
-
-}
-
-func TestCreateIndex(t *testing.T) {
- {
- statement := `
- create index
- source_host_port_idx_database_instance
- on database_instance (source_host(128), source_port)
- `
- result := stripSpaces(ToSqlite3Dialect(statement))
- require.Equal(t, result, stripSpaces(`
- create index
- source_host_port_idx_database_instance
- on database_instance (source_host, source_port)
- `))
- }
-}
-
-func TestIsInsert(t *testing.T) {
- require.True(t, IsInsert("insert into t"))
- require.True(t, IsInsert("insert ignore into t"))
- require.True(t, IsInsert(`
- insert ignore into t
- `))
- require.False(t, IsInsert("where create table t(id int)"))
- require.False(t, IsInsert("create table t(id int)"))
- require.True(t, IsInsert(`
- insert into
- cluster_domain_name (cluster_name, domain_name, last_registered)
- values
- (?, ?, datetime('now'))
- on duplicate key update
- domain_name=values(domain_name),
- last_registered=values(last_registered)
- `))
-}
-
-func TestToSqlite3Insert(t *testing.T) {
- {
- statement := `
- insert into
- cluster_domain_name (cluster_name, domain_name, last_registered)
- values
- (?, ?, datetime('now'))
- on duplicate key update
- domain_name=values(domain_name),
- last_registered=values(last_registered)
- `
- result := stripSpaces(ToSqlite3Dialect(statement))
- require.Equal(t, result, stripSpaces(`
- replace into
- cluster_domain_name (cluster_name, domain_name, last_registered)
- values
- (?, ?, datetime('now'))
- `))
- }
-}
-
-func TestToSqlite3GeneralConversions(t *testing.T) {
- {
- statement := "select now()"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select datetime('now')")
- }
- {
- statement := "select now() - interval ? second"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select datetime('now', printf('-%d second', ?))")
- }
- {
- statement := "select now() + interval ? minute"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select datetime('now', printf('+%d minute', ?))")
- }
- {
- statement := "select now() + interval 5 minute"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select datetime('now', '+5 minute')")
- }
- {
- statement := "select some_table.some_column + interval ? minute"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select datetime(some_table.some_column, printf('+%d minute', ?))")
- }
- {
- statement := "AND primary_instance.last_attempted_check <= primary_instance.last_seen + interval ? minute"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "AND primary_instance.last_attempted_check <= datetime(primary_instance.last_seen, printf('+%d minute', ?))")
- }
- {
- statement := "select concat(primary_instance.port, '') as port"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select (primary_instance.port || '') as port")
- }
- {
- statement := "select concat( 'abc' , 'def') as s"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select ('abc' || 'def') as s")
- }
- {
- statement := "select concat( 'abc' , 'def', last.col) as s"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select ('abc' || 'def' || last.col) as s")
- }
- {
- statement := "select concat(myself.only) as s"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select concat(myself.only) as s")
- }
- {
- statement := "select concat(1, '2', 3, '4') as s"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select concat(1, '2', 3, '4') as s")
- }
- {
- statement := "select group_concat( 'abc' , 'def') as s"
- result := ToSqlite3Dialect(statement)
- require.Equal(t, result, "select group_concat( 'abc' , 'def') as s")
- }
-}
-
-func TestIsCreateIndex(t *testing.T) {
- tests := []struct {
- input string
- expected bool
- }{
- {"create index my_index on my_table(column);", true},
- {"CREATE INDEX my_index ON my_table(column);", true},
- {"create unique index my_index on my_table(column);", true},
- {"CREATE UNIQUE INDEX my_index ON my_table(column);", true},
- {"create index my_index on my_table(column) where condition;", true},
- {"create unique index my_index on my_table(column) where condition;", true},
- {"create table my_table(column);", false},
- {"drop index my_index on my_table;", false},
- {"alter table my_table add index my_index (column);", false},
- {"", false},
- }
-
- for _, test := range tests {
- t.Run(test.input, func(t *testing.T) {
- result := IsCreateIndex(test.input)
- assert.Equal(t, test.expected, result)
- })
- }
-}
-
-func TestIsDropIndex(t *testing.T) {
- tests := []struct {
- input string
- expected bool
- }{
- {"drop index my_index on my_table;", true},
- {"DROP INDEX my_index ON my_table;", true},
- {"drop index if exists my_index on my_table;", true},
- {"DROP INDEX IF EXISTS my_index ON my_table;", true},
- {"drop table my_table;", false},
- {"create index my_index on my_table(column);", false},
- {"alter table my_table add index my_index (column);", false},
- {"", false},
- }
-
- for _, test := range tests {
- t.Run(test.input, func(t *testing.T) {
- result := IsDropIndex(test.input)
- assert.Equal(t, test.expected, result)
- })
- }
-}
-
-func TestToSqlite3Dialect(t *testing.T) {
- tests := []struct {
- input string
- expected string
- }{
- {"create table my_table(id int);", "create table my_table(id int);"},
- {"alter table my_table add column new_col int;", "alter table my_table add column new_col int;"},
- {"insert into my_table values (1);", "insert into my_table values (1);"},
- {"", ""},
- }
-
- for _, test := range tests {
- t.Run(test.input, func(t *testing.T) {
- result := ToSqlite3Dialect(test.input)
- assert.Equal(t, test.expected, result)
- })
- }
-}
diff --git a/go/vt/vtorc/db/db.go b/go/vt/vtorc/db/db.go
index 00f5b5b2550..64143477645 100644
--- a/go/vt/vtorc/db/db.go
+++ b/go/vt/vtorc/db/db.go
@@ -18,7 +18,6 @@ package db
import (
"database/sql"
- "strings"
"vitess.io/vitess/go/vt/external/golib/sqlutils"
"vitess.io/vitess/go/vt/log"
@@ -57,17 +56,13 @@ func OpenVTOrc() (db *sql.DB, err error) {
return db, err
}
-func translateStatement(statement string) string {
- return sqlutils.ToSqlite3Dialect(statement)
-}
-
// registerVTOrcDeployment updates the vtorc_db_deployments table upon successful deployment
func registerVTOrcDeployment(db *sql.DB) error {
query := `
replace into vtorc_db_deployments (
deployed_version, deployed_timestamp
) values (
- ?, NOW()
+ ?, datetime('now')
)
`
if _, err := execInternal(db, query, ""); err != nil {
@@ -82,25 +77,12 @@ func deployStatements(db *sql.DB, queries []string) error {
tx, err := db.Begin()
if err != nil {
log.Fatal(err.Error())
+ return err
}
for _, query := range queries {
- query = translateStatement(query)
if _, err := tx.Exec(query); err != nil {
- if strings.Contains(err.Error(), "syntax error") {
- log.Fatalf("Cannot initiate vtorc: %+v; query=%+v", err, query)
- return err
- }
- if !sqlutils.IsAlterTable(query) && !sqlutils.IsCreateIndex(query) && !sqlutils.IsDropIndex(query) {
- log.Fatalf("Cannot initiate vtorc: %+v; query=%+v", err, query)
- return err
- }
- if !strings.Contains(err.Error(), "duplicate column name") &&
- !strings.Contains(err.Error(), "Duplicate column name") &&
- !strings.Contains(err.Error(), "check that column/key exists") &&
- !strings.Contains(err.Error(), "already exists") &&
- !strings.Contains(err.Error(), "Duplicate key name") {
- log.Errorf("Error initiating vtorc: %+v; query=%+v", err, query)
- }
+ log.Fatalf("Cannot initiate vtorc: %+v; query=%+v", err, query)
+ return err
}
}
if err := tx.Commit(); err != nil {
@@ -135,7 +117,6 @@ func initVTOrcDB(db *sql.DB) error {
// execInternal
func execInternal(db *sql.DB, query string, args ...any) (sql.Result, error) {
var err error
- query = translateStatement(query)
res, err := sqlutils.ExecNoPrepare(db, query, args...)
return res, err
}
@@ -151,7 +132,6 @@ func ExecVTOrc(query string, args ...any) (sql.Result, error) {
// QueryVTOrcRowsMap
func QueryVTOrcRowsMap(query string, onRow func(sqlutils.RowMap) error) error {
- query = translateStatement(query)
db, err := OpenVTOrc()
if err != nil {
return err
@@ -162,7 +142,6 @@ func QueryVTOrcRowsMap(query string, onRow func(sqlutils.RowMap) error) error {
// QueryVTOrc
func QueryVTOrc(query string, argsArray []any, onRow func(sqlutils.RowMap) error) error {
- query = translateStatement(query)
db, err := OpenVTOrc()
if err != nil {
return err
diff --git a/go/vt/vtorc/inst/analysis_dao.go b/go/vt/vtorc/inst/analysis_dao.go
index 99df358e330..25d93a6864b 100644
--- a/go/vt/vtorc/inst/analysis_dao.go
+++ b/go/vt/vtorc/inst/analysis_dao.go
@@ -91,13 +91,13 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna
IFNULL(
primary_instance.binary_log_file = database_instance_stale_binlog_coordinates.binary_log_file
AND primary_instance.binary_log_pos = database_instance_stale_binlog_coordinates.binary_log_pos
- AND database_instance_stale_binlog_coordinates.first_seen < NOW() - interval ? second,
+ AND database_instance_stale_binlog_coordinates.first_seen < datetime('now', printf('-%d second', ?)),
0
)
) AS is_stale_binlog_coordinates,
MIN(
primary_instance.last_checked <= primary_instance.last_seen
- and primary_instance.last_attempted_check <= primary_instance.last_seen + interval ? second
+ and primary_instance.last_attempted_check <= datetime(primary_instance.last_seen, printf('+%d second', ?))
) = 1 AS is_last_check_valid,
/* To be considered a primary, traditional async replication must not be present/valid AND the host should either */
/* not be a replication group member OR be the primary of the replication group */
@@ -658,7 +658,7 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
sqlResult, err := db.ExecVTOrc(`
update database_instance_last_analysis set
analysis = ?,
- analysis_timestamp = now()
+ analysis_timestamp = datetime('now')
where
alias = ?
and analysis != ?
@@ -683,10 +683,10 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
if !lastAnalysisChanged {
// The insert only returns more than 1 row changed if this is the first insertion.
sqlResult, err := db.ExecVTOrc(`
- insert ignore into database_instance_last_analysis (
+ insert or ignore into database_instance_last_analysis (
alias, analysis_timestamp, analysis
) values (
- ?, now(), ?
+ ?, datetime('now'), ?
)
`,
tabletAlias, string(analysisCode),
@@ -712,7 +712,7 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
insert into database_instance_analysis_changelog (
alias, analysis_timestamp, analysis
) values (
- ?, now(), ?
+ ?, datetime('now'), ?
)
`,
tabletAlias, string(analysisCode),
@@ -731,7 +731,7 @@ func ExpireInstanceAnalysisChangelog() error {
delete
from database_instance_analysis_changelog
where
- analysis_timestamp < now() - interval ? hour
+ analysis_timestamp < datetime('now', printf('-%d hour', ?))
`,
config.UnseenInstanceForgetHours,
)
diff --git a/go/vt/vtorc/inst/audit_dao.go b/go/vt/vtorc/inst/audit_dao.go
index d048f300faf..642fb187509 100644
--- a/go/vt/vtorc/inst/audit_dao.go
+++ b/go/vt/vtorc/inst/audit_dao.go
@@ -60,7 +60,7 @@ func AuditOperation(auditType string, tabletAlias string, message string) error
into audit (
audit_timestamp, audit_type, alias, keyspace, shard, message
) VALUES (
- NOW(), ?, ?, ?, ?, ?
+ datetime('now'), ?, ?, ?, ?, ?
)
`,
auditType,
diff --git a/go/vt/vtorc/inst/instance_dao.go b/go/vt/vtorc/inst/instance_dao.go
index ec0288cc423..bd4438dd05f 100644
--- a/go/vt/vtorc/inst/instance_dao.go
+++ b/go/vt/vtorc/inst/instance_dao.go
@@ -115,7 +115,7 @@ func ExecDBWriteFunc(f func() error) error {
func ExpireTableData(tableName string, timestampColumn string) error {
writeFunc := func() error {
_, err := db.ExecVTOrc(
- fmt.Sprintf("delete from %s where %s < NOW() - INTERVAL ? DAY", tableName, timestampColumn),
+ fmt.Sprintf("delete from %s where %s < datetime('now', printf('-%%d DAY', ?))", tableName, timestampColumn),
config.Config.AuditPurgeDays,
)
return err
@@ -583,9 +583,9 @@ func readInstancesByCondition(condition string, args []any, sort string) ([](*In
query := fmt.Sprintf(`
select
*,
- unix_timestamp() - unix_timestamp(last_checked) as seconds_since_last_checked,
+ strftime('%%s', 'now') - strftime('%%s', last_checked) as seconds_since_last_checked,
ifnull(last_checked <= last_seen, 0) as is_last_check_valid,
- unix_timestamp() - unix_timestamp(last_seen) as seconds_since_last_seen
+ strftime('%%s', 'now') - strftime('%%s', last_seen) as seconds_since_last_seen
from
vitess_tablet
left join database_instance using (alias, hostname, port)
@@ -637,11 +637,11 @@ func ReadProblemInstances(keyspace string, shard string) ([](*Instance), error)
and shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
and (
(last_seen < last_checked)
- or (unix_timestamp() - unix_timestamp(last_checked) > ?)
+ or (strftime('%%s', 'now') - strftime('%%s', last_checked) > ?)
or (replication_sql_thread_state not in (-1 ,1))
or (replication_io_thread_state not in (-1 ,1))
- or (abs(cast(replication_lag_seconds as signed) - cast(sql_delay as signed)) > ?)
- or (abs(cast(replica_lag_seconds as signed) - cast(sql_delay as signed)) > ?)
+ or (abs(cast(replication_lag_seconds as integer) - cast(sql_delay as integer)) > ?)
+ or (abs(cast(replica_lag_seconds as integer) - cast(sql_delay as integer)) > ?)
or (gtid_errant != '')
)
`
@@ -703,8 +703,8 @@ func ReadOutdatedInstanceKeys() ([]string, error) {
WHERE
CASE
WHEN last_attempted_check <= last_checked
- THEN last_checked < now() - interval ? second
- ELSE last_checked < now() - interval ? second
+ THEN last_checked < datetime('now', printf('-%d second', ?))
+ ELSE last_checked < datetime('now', printf('-%d second', ?))
END
UNION
SELECT
@@ -733,7 +733,7 @@ func ReadOutdatedInstanceKeys() ([]string, error) {
return res, err
}
-func mkInsertOdku(table string, columns []string, values []string, nrRows int, insertIgnore bool) (string, error) {
+func mkInsert(table string, columns []string, values []string, nrRows int, insertIgnore bool) (string, error) {
if len(columns) == 0 {
return "", errors.New("Column list cannot be empty")
}
@@ -745,9 +745,9 @@ func mkInsertOdku(table string, columns []string, values []string, nrRows int, i
}
var q strings.Builder
- var ignore string
+ insertStr := "REPLACE INTO"
if insertIgnore {
- ignore = "ignore"
+ insertStr = "INSERT OR IGNORE INTO"
}
valRow := fmt.Sprintf("(%s)", strings.Join(values, ", "))
var val strings.Builder
@@ -758,26 +758,17 @@ func mkInsertOdku(table string, columns []string, values []string, nrRows int, i
}
col := strings.Join(columns, ", ")
- var odku strings.Builder
- odku.WriteString(fmt.Sprintf("%s=VALUES(%s)", columns[0], columns[0]))
- for _, c := range columns[1:] {
- odku.WriteString(", ")
- odku.WriteString(fmt.Sprintf("%s=VALUES(%s)", c, c))
- }
-
- q.WriteString(fmt.Sprintf(`INSERT %s INTO %s
+ q.WriteString(fmt.Sprintf(`%s %s
(%s)
VALUES
%s
- ON DUPLICATE KEY UPDATE
- %s
`,
- ignore, table, col, val.String(), odku.String()))
+ insertStr, table, col, val.String()))
return q.String(), nil
}
-func mkInsertOdkuForInstances(instances []*Instance, instanceWasActuallyFound bool, updateLastSeen bool) (string, []any, error) {
+func mkInsertForInstances(instances []*Instance, instanceWasActuallyFound bool, updateLastSeen bool) (string, []any, error) {
if len(instances) == 0 {
return "", nil, nil
}
@@ -858,13 +849,13 @@ func mkInsertOdkuForInstances(instances []*Instance, instanceWasActuallyFound bo
for i := range columns {
values[i] = "?"
}
- values[3] = "NOW()" // last_checked
- values[4] = "NOW()" // last_attempted_check
- values[5] = "1" // last_check_partial_success
+ values[3] = "datetime('now')" // last_checked
+ values[4] = "datetime('now')" // last_attempted_check
+ values[5] = "1" // last_check_partial_success
if updateLastSeen {
columns = append(columns, "last_seen")
- values = append(values, "NOW()")
+ values = append(values, "datetime('now')")
}
var args []any
@@ -935,7 +926,7 @@ func mkInsertOdkuForInstances(instances []*Instance, instanceWasActuallyFound bo
args = append(args, instance.LastDiscoveryLatency.Nanoseconds())
}
- sql, err := mkInsertOdku("database_instance", columns, values, len(instances), insertIgnore)
+ sql, err := mkInsert("database_instance", columns, values, len(instances), insertIgnore)
if err != nil {
errMsg := fmt.Sprintf("Failed to build query: %v", err)
log.Errorf(errMsg)
@@ -957,7 +948,7 @@ func writeManyInstances(instances []*Instance, instanceWasActuallyFound bool, up
if len(writeInstances) == 0 {
return nil // nothing to write
}
- sql, args, err := mkInsertOdkuForInstances(writeInstances, instanceWasActuallyFound, updateLastSeen)
+ sql, args, err := mkInsertForInstances(writeInstances, instanceWasActuallyFound, updateLastSeen)
if err != nil {
return err
}
@@ -984,7 +975,7 @@ func UpdateInstanceLastChecked(tabletAlias string, partialSuccess bool) error {
update
database_instance
set
- last_checked = NOW(),
+ last_checked = datetime('now'),
last_check_partial_success = ?
where
alias = ?`,
@@ -1013,7 +1004,7 @@ func UpdateInstanceLastAttemptedCheck(tabletAlias string) error {
update
database_instance
set
- last_attempted_check = NOW()
+ last_attempted_check = datetime('now')
where
alias = ?`,
tabletAlias,
@@ -1091,7 +1082,7 @@ func ForgetLongUnseenInstances() error {
delete
from database_instance
where
- last_seen < NOW() - interval ? hour`,
+ last_seen < datetime('now', printf('-%d hour', ?))`,
config.UnseenInstanceForgetHours,
)
if err != nil {
@@ -1113,11 +1104,11 @@ func ForgetLongUnseenInstances() error {
func SnapshotTopologies() error {
writeFunc := func() error {
_, err := db.ExecVTOrc(`
- insert ignore into
+ insert or ignore into
database_instance_topology_history (snapshot_unix_timestamp,
alias, hostname, port, source_host, source_port, keyspace, shard, version)
select
- UNIX_TIMESTAMP(NOW()),
+ strftime('%s', 'now'),
vitess_tablet.alias, vitess_tablet.hostname, vitess_tablet.port,
database_instance.source_host, database_instance.source_port,
vitess_tablet.keyspace, vitess_tablet.shard, database_instance.version
@@ -1143,7 +1134,7 @@ func ExpireStaleInstanceBinlogCoordinates() error {
writeFunc := func() error {
_, err := db.ExecVTOrc(`
delete from database_instance_stale_binlog_coordinates
- where first_seen < NOW() - INTERVAL ? SECOND
+ where first_seen < datetime('now', printf('-%d second', ?))
`, expireSeconds,
)
if err != nil {
diff --git a/go/vt/vtorc/inst/instance_dao_test.go b/go/vt/vtorc/inst/instance_dao_test.go
index 741fc48bca9..2416c1abb90 100644
--- a/go/vt/vtorc/inst/instance_dao_test.go
+++ b/go/vt/vtorc/inst/instance_dao_test.go
@@ -49,57 +49,48 @@ func mkTestInstances() []*Instance {
return instances
}
-func TestMkInsertOdkuSingle(t *testing.T) {
+func TestMkInsertSingle(t *testing.T) {
instances := mkTestInstances()
- sql, args, err := mkInsertOdkuForInstances(nil, true, true)
+ sql, args, err := mkInsertForInstances(nil, true, true)
require.NoError(t, err)
require.Equal(t, sql, "")
require.Equal(t, len(args), 0)
// one instance
- s1 := `INSERT ignore INTO database_instance
+ s1 := `INSERT OR IGNORE INTO database_instance
(alias, hostname, port, last_checked, last_attempted_check, last_check_partial_success, server_id, server_uuid,
version, major_version, version_comment, binlog_server, read_only, binlog_format,
binlog_row_image, log_bin, log_replica_updates, binary_log_file, binary_log_pos, source_host, source_port, replica_net_timeout, heartbeat_interval,
replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid,
source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen)
VALUES
- (?, ?, ?, NOW(), NOW(), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
- ON DUPLICATE KEY UPDATE
- alias=VALUES(alias), hostname=VALUES(hostname), port=VALUES(port), last_checked=VALUES(last_checked), last_attempted_check=VALUES(last_attempted_check), last_check_partial_success=VALUES(last_check_partial_success), server_id=VALUES(server_id), server_uuid=VALUES(server_uuid), version=VALUES(version), major_version=VALUES(major_version), version_comment=VALUES(version_comment), binlog_server=VALUES(binlog_server), read_only=VALUES(read_only), binlog_format=VALUES(binlog_format), binlog_row_image=VALUES(binlog_row_image), log_bin=VALUES(log_bin), log_replica_updates=VALUES(log_replica_updates), binary_log_file=VALUES(binary_log_file), binary_log_pos=VALUES(binary_log_pos), source_host=VALUES(source_host), source_port=VALUES(source_port), replica_net_timeout=VALUES(replica_net_timeout), heartbeat_interval=VALUES(heartbeat_interval), replica_sql_running=VALUES(replica_sql_running), replica_io_running=VALUES(replica_io_running), replication_sql_thread_state=VALUES(replication_sql_thread_state), replication_io_thread_state=VALUES(replication_io_thread_state), has_replication_filters=VALUES(has_replication_filters), supports_oracle_gtid=VALUES(supports_oracle_gtid), oracle_gtid=VALUES(oracle_gtid), source_uuid=VALUES(source_uuid), ancestry_uuid=VALUES(ancestry_uuid), executed_gtid_set=VALUES(executed_gtid_set), gtid_mode=VALUES(gtid_mode), gtid_purged=VALUES(gtid_purged), gtid_errant=VALUES(gtid_errant), mariadb_gtid=VALUES(mariadb_gtid), pseudo_gtid=VALUES(pseudo_gtid), source_log_file=VALUES(source_log_file), read_source_log_pos=VALUES(read_source_log_pos), relay_source_log_file=VALUES(relay_source_log_file), exec_source_log_pos=VALUES(exec_source_log_pos), relay_log_file=VALUES(relay_log_file), relay_log_pos=VALUES(relay_log_pos), last_sql_error=VALUES(last_sql_error), last_io_error=VALUES(last_io_error), replication_lag_seconds=VALUES(replication_lag_seconds), replica_lag_seconds=VALUES(replica_lag_seconds), sql_delay=VALUES(sql_delay), data_center=VALUES(data_center), region=VALUES(region), physical_environment=VALUES(physical_environment), replication_depth=VALUES(replication_depth), is_co_primary=VALUES(is_co_primary), has_replication_credentials=VALUES(has_replication_credentials), allow_tls=VALUES(allow_tls),
- semi_sync_enforced=VALUES(semi_sync_enforced), semi_sync_primary_enabled=VALUES(semi_sync_primary_enabled), semi_sync_primary_timeout=VALUES(semi_sync_primary_timeout), semi_sync_primary_wait_for_replica_count=VALUES(semi_sync_primary_wait_for_replica_count), semi_sync_replica_enabled=VALUES(semi_sync_replica_enabled), semi_sync_primary_status=VALUES(semi_sync_primary_status), semi_sync_primary_clients=VALUES(semi_sync_primary_clients), semi_sync_replica_status=VALUES(semi_sync_replica_status),
- last_discovery_latency=VALUES(last_discovery_latency), last_seen=VALUES(last_seen)
+ (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
`
a1 := `zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT,
FULL, false, false, , 0, , 0, 0, 0,
false, false, 0, 0, false, false, false, , , , , , , false, false, , 0, mysql.000007, 10, , 0, , , {0 false}, {0 false}, 0, , , , 0, false, false, false, false, false, 0, 0, false, false, 0, false, 0,`
- sql1, args1, err := mkInsertOdkuForInstances(instances[:1], false, true)
+ sql1, args1, err := mkInsertForInstances(instances[:1], false, true)
require.NoError(t, err)
require.Equal(t, normalizeQuery(sql1), normalizeQuery(s1))
require.Equal(t, stripSpaces(fmtArgs(args1)), stripSpaces(a1))
}
-func TestMkInsertOdkuThree(t *testing.T) {
+func TestMkInsertThree(t *testing.T) {
instances := mkTestInstances()
// three instances
- s3 := `INSERT INTO database_instance
+ s3 := `REPLACE INTO database_instance
(alias, hostname, port, last_checked, last_attempted_check, last_check_partial_success, server_id, server_uuid,
version, major_version, version_comment, binlog_server, read_only, binlog_format,
binlog_row_image, log_bin, log_replica_updates, binary_log_file, binary_log_pos, source_host, source_port, replica_net_timeout, heartbeat_interval,
replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid,
source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen)
VALUES
- (?, ?, ?, NOW(), NOW(), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW()),
- (?, ?, ?, NOW(), NOW(), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW()),
- (?, ?, ?, NOW(), NOW(), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
- ON DUPLICATE KEY UPDATE
- alias=VALUES(alias), hostname=VALUES(hostname), port=VALUES(port), last_checked=VALUES(last_checked), last_attempted_check=VALUES(last_attempted_check), last_check_partial_success=VALUES(last_check_partial_success), server_id=VALUES(server_id), server_uuid=VALUES(server_uuid), version=VALUES(version), major_version=VALUES(major_version), version_comment=VALUES(version_comment), binlog_server=VALUES(binlog_server), read_only=VALUES(read_only), binlog_format=VALUES(binlog_format), binlog_row_image=VALUES(binlog_row_image), log_bin=VALUES(log_bin), log_replica_updates=VALUES(log_replica_updates), binary_log_file=VALUES(binary_log_file), binary_log_pos=VALUES(binary_log_pos), source_host=VALUES(source_host), source_port=VALUES(source_port), replica_net_timeout=VALUES(replica_net_timeout), heartbeat_interval=VALUES(heartbeat_interval), replica_sql_running=VALUES(replica_sql_running), replica_io_running=VALUES(replica_io_running), replication_sql_thread_state=VALUES(replication_sql_thread_state), replication_io_thread_state=VALUES(replication_io_thread_state), has_replication_filters=VALUES(has_replication_filters), supports_oracle_gtid=VALUES(supports_oracle_gtid), oracle_gtid=VALUES(oracle_gtid), source_uuid=VALUES(source_uuid), ancestry_uuid=VALUES(ancestry_uuid), executed_gtid_set=VALUES(executed_gtid_set), gtid_mode=VALUES(gtid_mode), gtid_purged=VALUES(gtid_purged), gtid_errant=VALUES(gtid_errant), mariadb_gtid=VALUES(mariadb_gtid), pseudo_gtid=VALUES(pseudo_gtid), source_log_file=VALUES(source_log_file), read_source_log_pos=VALUES(read_source_log_pos), relay_source_log_file=VALUES(relay_source_log_file), exec_source_log_pos=VALUES(exec_source_log_pos), relay_log_file=VALUES(relay_log_file), relay_log_pos=VALUES(relay_log_pos), last_sql_error=VALUES(last_sql_error), last_io_error=VALUES(last_io_error), replication_lag_seconds=VALUES(replication_lag_seconds), replica_lag_seconds=VALUES(replica_lag_seconds), sql_delay=VALUES(sql_delay), data_center=VALUES(data_center), region=VALUES(region),
- physical_environment=VALUES(physical_environment), replication_depth=VALUES(replication_depth), is_co_primary=VALUES(is_co_primary), has_replication_credentials=VALUES(has_replication_credentials), allow_tls=VALUES(allow_tls), semi_sync_enforced=VALUES(semi_sync_enforced),
- semi_sync_primary_enabled=VALUES(semi_sync_primary_enabled), semi_sync_primary_timeout=VALUES(semi_sync_primary_timeout), semi_sync_primary_wait_for_replica_count=VALUES(semi_sync_primary_wait_for_replica_count), semi_sync_replica_enabled=VALUES(semi_sync_replica_enabled), semi_sync_primary_status=VALUES(semi_sync_primary_status), semi_sync_primary_clients=VALUES(semi_sync_primary_clients), semi_sync_replica_status=VALUES(semi_sync_replica_status),
- last_discovery_latency=VALUES(last_discovery_latency), last_seen=VALUES(last_seen)
+ (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')),
+ (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')),
+ (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
`
a3 := `
zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT, FULL, false, false, , 0, , 0, 0, 0, false, false, 0, 0, false, false, false, , , , , , , false, false, , 0, mysql.000007, 10, , 0, , , {0 false}, {0 false}, 0, , , , 0, false, false, false, false, false, 0, 0, false, false, 0, false, 0,
@@ -107,7 +98,7 @@ func TestMkInsertOdkuThree(t *testing.T) {
zone1-i730, i730, 3306, 730, , 5.6.7, 5.6, MySQL, false, false, STATEMENT, FULL, false, false, , 0, , 0, 0, 0, false, false, 0, 0, false, false, false, , , , , , , false, false, , 0, mysql.000007, 30, , 0, , , {0 false}, {0 false}, 0, , , , 0, false, false, false, false, false, 0, 0, false, false, 0, false, 0,
`
- sql3, args3, err := mkInsertOdkuForInstances(instances[:3], true, true)
+ sql3, args3, err := mkInsertForInstances(instances[:3], true, true)
require.NoError(t, err)
require.Equal(t, normalizeQuery(sql3), normalizeQuery(s3))
require.Equal(t, stripSpaces(fmtArgs(args3)), stripSpaces(a3))
@@ -437,27 +428,27 @@ func TestReadOutdatedInstanceKeys(t *testing.T) {
}{
{
name: "No problems",
- sql: []string{"update database_instance set last_checked = now()"},
+ sql: []string{"update database_instance set last_checked = datetime('now')"},
instancesRequired: nil,
}, {
name: "One instance is outdated",
sql: []string{
- "update database_instance set last_checked = now()",
- "update database_instance set last_checked = datetime(now(), '-1 hour') where alias = 'zone1-0000000100'",
+ "update database_instance set last_checked = datetime('now')",
+ "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'",
},
instancesRequired: []string{"zone1-0000000100"},
}, {
name: "One instance doesn't have myql data",
sql: []string{
- "update database_instance set last_checked = now()",
+ "update database_instance set last_checked = datetime('now')",
`INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`,
},
instancesRequired: []string{"zone1-0000000103"},
}, {
name: "One instance doesn't have myql data and one is outdated",
sql: []string{
- "update database_instance set last_checked = now()",
- "update database_instance set last_checked = datetime(now(), '-1 hour') where alias = 'zone1-0000000100'",
+ "update database_instance set last_checked = datetime('now')",
+ "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'",
`INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`,
},
instancesRequired: []string{"zone1-0000000103", "zone1-0000000100"},
@@ -494,10 +485,10 @@ func TestReadOutdatedInstanceKeys(t *testing.T) {
errInDataCollection := db.QueryVTOrcRowsMap(`select alias,
last_checked,
last_attempted_check,
-ROUND((JULIANDAY(now()) - JULIANDAY(last_checked)) * 86400) AS difference,
+ROUND((JULIANDAY(datetime('now')) - JULIANDAY(last_checked)) * 86400) AS difference,
last_attempted_check <= last_checked as use1,
-last_checked < now() - interval 1500 second as is_outdated1,
-last_checked < now() - interval 3000 second as is_outdated2
+last_checked < datetime('now', '-1500 second') as is_outdated1,
+last_checked < datetime('now', '-3000 second') as is_outdated2
from database_instance`, func(rowMap sqlutils.RowMap) error {
log.Errorf("Row in database_instance - %+v", rowMap)
return nil
@@ -521,12 +512,12 @@ func TestUpdateInstanceLastChecked(t *testing.T) {
name: "Verify updated last checked",
tabletAlias: "zone1-0000000100",
partialSuccess: false,
- conditionToCheck: "last_checked >= now() - interval 30 second and last_check_partial_success = false",
+ conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = false",
}, {
name: "Verify partial success",
tabletAlias: "zone1-0000000100",
partialSuccess: true,
- conditionToCheck: "last_checked >= now() - interval 30 second and last_check_partial_success = true",
+ conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = true",
}, {
name: "Verify no error on unknown tablet",
tabletAlias: "unknown tablet",
@@ -572,7 +563,7 @@ func TestUpdateInstanceLastAttemptedCheck(t *testing.T) {
{
name: "Verify updated last checked",
tabletAlias: "zone1-0000000100",
- conditionToCheck: "last_attempted_check >= now() - interval 30 second",
+ conditionToCheck: "last_attempted_check >= datetime('now', '-30 second')",
}, {
name: "Verify no error on unknown tablet",
tabletAlias: "unknown tablet",
@@ -746,8 +737,8 @@ func TestExpireTableData(t *testing.T) {
timestampColumn: "audit_timestamp",
expectedRowCount: 1,
insertQuery: `insert into audit (audit_id, audit_timestamp, audit_type, alias, message, keyspace, shard) values
-(1, NOW() - INTERVAL 50 DAY, 'a','a','a','a','a'),
-(2, NOW() - INTERVAL 5 DAY, 'a','a','a','a','a')`,
+(1, datetime('now', '-50 DAY'), 'a','a','a','a','a'),
+(2, datetime('now', '-5 DAY'), 'a','a','a','a','a')`,
},
{
name: "ExpireRecoveryDetectionHistory",
@@ -755,9 +746,9 @@ func TestExpireTableData(t *testing.T) {
timestampColumn: "detection_timestamp",
expectedRowCount: 2,
insertQuery: `insert into recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) values
-(1, NOW() - INTERVAL 3 DAY,'a','a','a','a'),
-(2, NOW() - INTERVAL 5 DAY,'a','a','a','a'),
-(3, NOW() - INTERVAL 15 DAY,'a','a','a','a')`,
+(1, datetime('now', '-3 DAY'),'a','a','a','a'),
+(2, datetime('now', '-5 DAY'),'a','a','a','a'),
+(3, datetime('now', '-15 DAY'),'a','a','a','a')`,
},
}
for _, tt := range tests {
diff --git a/go/vt/vtorc/logic/disable_recovery.go b/go/vt/vtorc/logic/disable_recovery.go
index 74aa291e17a..60650798876 100644
--- a/go/vt/vtorc/logic/disable_recovery.go
+++ b/go/vt/vtorc/logic/disable_recovery.go
@@ -64,7 +64,7 @@ func IsRecoveryDisabled() (disabled bool, err error) {
// DisableRecovery ensures recoveries are disabled globally
func DisableRecovery() error {
_, err := db.ExecVTOrc(`
- INSERT IGNORE INTO global_recovery_disable
+ INSERT OR IGNORE INTO global_recovery_disable
(disable_recovery)
VALUES (1)
`,
diff --git a/go/vt/vtorc/logic/topology_recovery_dao.go b/go/vt/vtorc/logic/topology_recovery_dao.go
index 1920da4dcd8..730e6b2a158 100644
--- a/go/vt/vtorc/logic/topology_recovery_dao.go
+++ b/go/vt/vtorc/logic/topology_recovery_dao.go
@@ -31,7 +31,7 @@ import (
// InsertRecoveryDetection inserts the recovery analysis that has been detected.
func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error {
sqlResult, err := db.ExecVTOrc(`
- insert ignore
+ insert or ignore
into recovery_detection (
alias,
analysis,
@@ -43,7 +43,7 @@ func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error {
?,
?,
?,
- now()
+ datetime('now')
)`,
analysisEntry.AnalyzedInstanceAlias,
string(analysisEntry.Analysis),
@@ -66,7 +66,7 @@ func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error {
func writeTopologyRecovery(topologyRecovery *TopologyRecovery) (*TopologyRecovery, error) {
analysisEntry := topologyRecovery.AnalysisEntry
sqlResult, err := db.ExecVTOrc(`
- insert ignore
+ insert or ignore
into topology_recovery (
recovery_id,
alias,
@@ -78,7 +78,7 @@ func writeTopologyRecovery(topologyRecovery *TopologyRecovery) (*TopologyRecover
) values (
?,
?,
- NOW(),
+ datetime('now'),
?,
?,
?,
@@ -143,7 +143,7 @@ func writeResolveRecovery(topologyRecovery *TopologyRecovery) error {
is_successful = ?,
successor_alias = ?,
all_errors = ?,
- end_recovery = NOW()
+ end_recovery = datetime('now')
where
recovery_id = ?
`, topologyRecovery.IsSuccessful,
@@ -237,10 +237,10 @@ func ReadRecentRecoveries(page int) ([]*TopologyRecovery, error) {
// writeTopologyRecoveryStep writes down a single step in a recovery process
func writeTopologyRecoveryStep(topologyRecoveryStep *TopologyRecoveryStep) error {
sqlResult, err := db.ExecVTOrc(`
- insert ignore
+ insert or ignore
into topology_recovery_steps (
recovery_step_id, recovery_id, audit_at, message
- ) values (?, ?, now(), ?)
+ ) values (?, ?, datetime('now'), ?)
`, sqlutils.NilIfZero(topologyRecoveryStep.ID), topologyRecoveryStep.RecoveryID, topologyRecoveryStep.Message,
)
if err != nil {
diff --git a/go/vt/vtorc/logic/topology_recovery_dao_test.go b/go/vt/vtorc/logic/topology_recovery_dao_test.go
index 354af82e2b3..20dfb7e91e2 100644
--- a/go/vt/vtorc/logic/topology_recovery_dao_test.go
+++ b/go/vt/vtorc/logic/topology_recovery_dao_test.go
@@ -88,9 +88,9 @@ func TestExpireTableData(t *testing.T) {
tableName: "recovery_detection",
expectedRowCount: 2,
insertQuery: `insert into recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) values
-(1, NOW() - INTERVAL 3 DAY,'a','a','a','a'),
-(2, NOW() - INTERVAL 5 DAY,'a','a','a','a'),
-(3, NOW() - INTERVAL 15 DAY,'a','a','a','a')`,
+(1, datetime('now', '-3 DAY'),'a','a','a','a'),
+(2, datetime('now', '-5 DAY'),'a','a','a','a'),
+(3, datetime('now', '-15 DAY'),'a','a','a','a')`,
expireFunc: ExpireRecoveryDetectionHistory,
},
{
@@ -98,9 +98,9 @@ func TestExpireTableData(t *testing.T) {
tableName: "topology_recovery",
expectedRowCount: 1,
insertQuery: `insert into topology_recovery (recovery_id, start_recovery, alias, analysis, keyspace, shard) values
-(1, NOW() - INTERVAL 13 DAY,'a','a','a','a'),
-(2, NOW() - INTERVAL 5 DAY,'a','a','a','a'),
-(3, NOW() - INTERVAL 15 DAY,'a','a','a','a')`,
+(1, datetime('now', '-13 DAY'),'a','a','a','a'),
+(2, datetime('now', '-5 DAY'),'a','a','a','a'),
+(3, datetime('now', '-15 DAY'),'a','a','a','a')`,
expireFunc: ExpireTopologyRecoveryHistory,
},
{
@@ -108,9 +108,9 @@ func TestExpireTableData(t *testing.T) {
tableName: "topology_recovery_steps",
expectedRowCount: 1,
insertQuery: `insert into topology_recovery_steps (recovery_step_id, audit_at, recovery_id, message) values
-(1, NOW() - INTERVAL 13 DAY, 1, 'a'),
-(2, NOW() - INTERVAL 5 DAY, 2, 'a'),
-(3, NOW() - INTERVAL 15 DAY, 3, 'a')`,
+(1, datetime('now', '-13 DAY'), 1, 'a'),
+(2, datetime('now', '-5 DAY'), 2, 'a'),
+(3, datetime('now', '-15 DAY'), 3, 'a')`,
expireFunc: ExpireTopologyRecoveryStepsHistory,
},
}
diff --git a/go/vt/vtorc/process/health.go b/go/vt/vtorc/process/health.go
index 86101d6c5c0..87a11733f66 100644
--- a/go/vt/vtorc/process/health.go
+++ b/go/vt/vtorc/process/health.go
@@ -40,7 +40,7 @@ func writeHealthToDatabase() bool {
log.Error(err)
return false
}
- sqlResult, err := db.ExecVTOrc(`insert into node_health (last_seen_active) values (now())`)
+ sqlResult, err := db.ExecVTOrc(`insert into node_health (last_seen_active) values (datetime('now'))`)
if err != nil {
log.Error(err)
return false
From a9bab82ffb5ea4605722f457b8e51ada9a0c1cb5 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Tue, 5 Nov 2024 14:47:03 +0200
Subject: [PATCH 27/78] `schemadiff`: consistent key ordering in table diff
(#17141)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/schemadiff/schema_diff.go | 4 ++--
go/vt/schemadiff/schema_diff_test.go | 2 +-
go/vt/schemadiff/table.go | 6 ++++--
go/vt/schemadiff/table_test.go | 18 ++++++++++++++++++
4 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/go/vt/schemadiff/schema_diff.go b/go/vt/schemadiff/schema_diff.go
index 1c161ab56bf..158d134f520 100644
--- a/go/vt/schemadiff/schema_diff.go
+++ b/go/vt/schemadiff/schema_diff.go
@@ -280,8 +280,8 @@ func (d *SchemaDiff) UnorderedDiffs() []EntityDiff {
return d.diffs
}
-// AllDependenciess returns all known dependencies
-func (d *SchemaDiff) AllDependenciess() (deps []*DiffDependency) {
+// AllDependencies returns all known dependencies
+func (d *SchemaDiff) AllDependencies() (deps []*DiffDependency) {
for _, dep := range d.dependencies {
deps = append(deps, dep)
}
diff --git a/go/vt/schemadiff/schema_diff_test.go b/go/vt/schemadiff/schema_diff_test.go
index 8088cc896ed..b39166451b2 100644
--- a/go/vt/schemadiff/schema_diff_test.go
+++ b/go/vt/schemadiff/schema_diff_test.go
@@ -1272,7 +1272,7 @@ func TestSchemaDiff(t *testing.T) {
}
assert.Equalf(t, tc.expectDiffs, len(allDiffs), "found diffs: %v", allDiffsStatements)
- deps := schemaDiff.AllDependenciess()
+ deps := schemaDiff.AllDependencies()
depsKeys := []string{}
for _, dep := range deps {
depsKeys = append(depsKeys, dep.hashKey())
diff --git a/go/vt/schemadiff/table.go b/go/vt/schemadiff/table.go
index c429ab15ba4..e002ef18e15 100644
--- a/go/vt/schemadiff/table.go
+++ b/go/vt/schemadiff/table.go
@@ -1711,8 +1711,10 @@ func (c *CreateTableEntity) diffKeys(alterTable *sqlparser.AlterTable,
}
}
}
- for _, stmt := range dropKeyStatements {
- alterTable.AlterOptions = append(alterTable.AlterOptions, stmt)
+ for _, t1Key := range t1Keys {
+ if stmt, ok := dropKeyStatements[t1Key.Info.Name.String()]; ok {
+ alterTable.AlterOptions = append(alterTable.AlterOptions, stmt)
+ }
}
return superfluousFulltextKeys
}
diff --git a/go/vt/schemadiff/table_test.go b/go/vt/schemadiff/table_test.go
index 6526c5ae118..84c40d769c2 100644
--- a/go/vt/schemadiff/table_test.go
+++ b/go/vt/schemadiff/table_test.go
@@ -733,6 +733,24 @@ func TestCreateTableDiff(t *testing.T) {
"- KEY `i_idx` (`i`)",
},
},
+ {
+ name: "multiple dropped keys and columns",
+ from: "create table t1 (`id` int, i1 int, i2 int, i3 int, primary key (id), key k1(i1), key k2(i2), key k3(i1), key k4(i2), key k5(i1), key k6(i2))",
+ to: "create table t1 (`id` int, primary key (id))",
+ diff: "alter table t1 drop key k1, drop key k2, drop key k3, drop key k4, drop key k5, drop key k6, drop column i1, drop column i2, drop column i3",
+ cdiff: "ALTER TABLE `t1` DROP KEY `k1`, DROP KEY `k2`, DROP KEY `k3`, DROP KEY `k4`, DROP KEY `k5`, DROP KEY `k6`, DROP COLUMN `i1`, DROP COLUMN `i2`, DROP COLUMN `i3`",
+ textdiffs: []string{
+ "- KEY `k1` (`i1`)",
+ "- KEY `k2` (`i2`)",
+ "- KEY `k3` (`i1`)",
+ "- KEY `k4` (`i2`)",
+ "- KEY `k5` (`i1`)",
+ "- KEY `k6` (`i2`)",
+ "- `i1` int,",
+ "- `i2` int,",
+ "- `i3` int,",
+ },
+ },
{
name: "modified key",
from: "create table t1 (`id` int primary key, i int, key i_idx(i))",
From 77da76b1c75be4eadb70a70fe2300b27b65131f4 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Tue, 5 Nov 2024 16:18:50 -0500
Subject: [PATCH 28/78] VTAdmin: Upgrade msw package to address security vuln
(#17108)
Signed-off-by: Matt Lord
Signed-off-by: Frances Thai
Signed-off-by: Frances Thai <31225471+notfelineit@users.noreply.github.com>
Co-authored-by: Frances Thai
Co-authored-by: Frances Thai <31225471+notfelineit@users.noreply.github.com>
---
web/vtadmin/.prettiercc | 1 -
web/vtadmin/package-lock.json | 831 +++++++-----------
web/vtadmin/package.json | 2 +-
web/vtadmin/src/api/http.test.ts | 12 +-
.../src/components/ActionPanel.test.tsx | 13 +-
.../createKeyspace/CreateKeyspace.test.tsx | 21 +-
.../routes/keyspace/Advanced.test.tsx | 10 +-
7 files changed, 322 insertions(+), 568 deletions(-)
diff --git a/web/vtadmin/.prettiercc b/web/vtadmin/.prettiercc
index bed1b4f32cd..6fdc0af39dd 100644
--- a/web/vtadmin/.prettiercc
+++ b/web/vtadmin/.prettiercc
@@ -7,7 +7,6 @@
"bracketSpacing": true,
"endOfLine": "auto",
"jsxSingleQuote": false,
- "jsxBracketSameLine": false,
"quoteProps": "as-needed",
"htmlWhitespaceSensitivity": "css",
"printWidth": 120
diff --git a/web/vtadmin/package-lock.json b/web/vtadmin/package-lock.json
index 2dc201fbf88..6004278321a 100644
--- a/web/vtadmin/package-lock.json
+++ b/web/vtadmin/package-lock.json
@@ -52,7 +52,7 @@
"eslint-config-react-app": "^7.0.1",
"i": "^0.3.7",
"jsdom": "^21.1.1",
- "msw": "^0.36.8",
+ "msw": "^2.5.2",
"npm": "^10.8.0",
"postcss": "^8.4.31",
"prettier": "^2.2.1",
@@ -2278,6 +2278,37 @@
"resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz",
"integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA=="
},
+ "node_modules/@bundled-es-modules/cookie": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz",
+ "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cookie": "^0.7.2"
+ }
+ },
+ "node_modules/@bundled-es-modules/statuses": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz",
+ "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "statuses": "^2.0.1"
+ }
+ },
+ "node_modules/@bundled-es-modules/tough-cookie": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz",
+ "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@types/tough-cookie": "^4.0.5",
+ "tough-cookie": "^4.1.4"
+ }
+ },
"node_modules/@csstools/cascade-layer-name-parser": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.9.tgz",
@@ -3475,6 +3506,74 @@
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
+ "node_modules/@inquirer/core": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.0.1.tgz",
+ "integrity": "sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@inquirer/figures": "^1.0.7",
+ "@inquirer/type": "^3.0.0",
+ "ansi-escapes": "^4.3.2",
+ "cli-width": "^4.1.0",
+ "mute-stream": "^2.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@inquirer/core/node_modules/@inquirer/type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.0.tgz",
+ "integrity": "sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ }
+ },
+ "node_modules/@inquirer/core/node_modules/@types/node": {
+ "version": "22.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
+ "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.19.8"
+ }
+ },
+ "node_modules/@inquirer/core/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@inquirer/figures": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.7.tgz",
+ "integrity": "sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -3663,28 +3762,22 @@
"node": ">=v12.0.0"
}
},
- "node_modules/@mswjs/cookies": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.7.tgz",
- "integrity": "sha512-bDg1ReMBx+PYDB4Pk7y1Q07Zz1iKIEUWQpkEXiA2lEWg9gvOZ8UBmGXilCEUvyYoRFlmr/9iXTRR69TrgSwX/Q==",
- "dev": true,
- "dependencies": {
- "@types/set-cookie-parser": "^2.4.0",
- "set-cookie-parser": "^2.4.6"
- }
- },
"node_modules/@mswjs/interceptors": {
- "version": "0.12.7",
- "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.12.7.tgz",
- "integrity": "sha512-eGjZ3JRAt0Fzi5FgXiV/P3bJGj0NqsN7vBS0J0FO2AQRQ0jCKQS4lEFm4wvlSgKQNfeuc/Vz6d81VtU3Gkx/zg==",
+ "version": "0.36.9",
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.36.9.tgz",
+ "integrity": "sha512-mMRDUBwSNeCgjSMEWfjoh4Rm9fbyZ7xQ9SBq8eGHiiyRn1ieTip3pNEt0wxWVPPxR4i1Rv9bTkeEbkX7M4c15A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@open-draft/until": "^1.0.3",
- "@xmldom/xmldom": "^0.7.2",
- "debug": "^4.3.2",
- "headers-utils": "^3.0.2",
- "outvariant": "^1.2.0",
- "strict-event-emitter": "^0.2.0"
+ "@open-draft/deferred-promise": "^2.2.0",
+ "@open-draft/logger": "^0.3.0",
+ "@open-draft/until": "^2.0.0",
+ "is-node-process": "^1.2.0",
+ "outvariant": "^1.4.3",
+ "strict-event-emitter": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
@@ -3753,11 +3846,30 @@
"node": ">= 8"
}
},
+ "node_modules/@open-draft/deferred-promise": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz",
+ "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@open-draft/logger": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz",
+ "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-node-process": "^1.2.0",
+ "outvariant": "^1.4.0"
+ }
+ },
"node_modules/@open-draft/until": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz",
- "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==",
- "dev": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz",
+ "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
@@ -4381,10 +4493,11 @@
}
},
"node_modules/@types/cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
- "dev": true
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/d3": {
"version": "7.4.3",
@@ -4635,16 +4748,6 @@
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
},
- "node_modules/@types/inquirer": {
- "version": "8.2.10",
- "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz",
- "integrity": "sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==",
- "dev": true,
- "dependencies": {
- "@types/through": "*",
- "rxjs": "^7.2.0"
- }
- },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
@@ -4704,12 +4807,6 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="
},
- "node_modules/@types/js-levenshtein": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.3.tgz",
- "integrity": "sha512-jd+Q+sD20Qfu9e2aEXogiO3vpOC1PYJOUdyN9gvs4Qrvkg4wF43L5OhqrPeokdv8TL0/mXoYfpkcoGZMNN2pkQ==",
- "dev": true
- },
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
@@ -4844,20 +4941,18 @@
"integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true
},
- "node_modules/@types/set-cookie-parser": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.7.tgz",
- "integrity": "sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
"integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
},
+ "node_modules/@types/statuses": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz",
+ "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/testing-library__jest-dom": {
"version": "5.14.9",
"resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz",
@@ -4867,14 +4962,12 @@
"@types/jest": "*"
}
},
- "node_modules/@types/through": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz",
- "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==",
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
"dev": true,
- "dependencies": {
- "@types/node": "*"
- }
+ "license": "MIT"
},
"node_modules/@types/yargs": {
"version": "17.0.32",
@@ -5312,15 +5405,6 @@
"pretty-format": "^27.5.1"
}
},
- "node_modules/@xmldom/xmldom": {
- "version": "0.7.13",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz",
- "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@zeit/schemas": {
"version": "2.36.0",
"resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz",
@@ -5429,6 +5513,7 @@
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -5444,6 +5529,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
"integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -5898,26 +5984,6 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/big-integer": {
"version": "1.6.52",
"resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz",
@@ -5937,17 +6003,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
"node_modules/bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -6145,30 +6200,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
"node_modules/byline": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
@@ -6349,12 +6380,6 @@
"url": "https://github.com/chalk/chalk-template?sponsor=1"
}
},
- "node_modules/chardet": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
- "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
- "dev": true
- },
"node_modules/check-error": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
@@ -6437,30 +6462,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
- "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/cli-truncate": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
@@ -6562,12 +6563,13 @@
}
},
"node_modules/cli-width": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
- "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz",
+ "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==",
"dev": true,
+ "license": "ISC",
"engines": {
- "node": ">= 10"
+ "node": ">= 12"
}
},
"node_modules/client-only": {
@@ -6623,15 +6625,6 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/clsx": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
@@ -6771,10 +6764,11 @@
"dev": true
},
"node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -7570,18 +7564,6 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -8549,15 +8531,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
- "engines": {
- "node": ">=0.8.x"
- }
- },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -8596,20 +8569,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/external-editor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
- "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
- "dev": true,
- "dependencies": {
- "chardet": "^0.7.0",
- "iconv-lite": "^0.4.24",
- "tmp": "^0.0.33"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -8683,30 +8642,6 @@
"reusify": "^1.0.4"
}
},
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -9141,12 +9076,13 @@
"dev": true
},
"node_modules/graphql": {
- "version": "15.8.0",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz",
- "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==",
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz",
+ "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 10.x"
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
}
},
"node_modules/hard-rejection": {
@@ -9238,11 +9174,12 @@
"node": ">= 0.4"
}
},
- "node_modules/headers-utils": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz",
- "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==",
- "dev": true
+ "node_modules/headers-polyfill": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz",
+ "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/highcharts": {
"version": "10.3.3",
@@ -9379,38 +9316,6 @@
"node": ">=0.4"
}
},
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/ignore": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
@@ -9488,32 +9393,6 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
- "node_modules/inquirer": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz",
- "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.1.1",
- "cli-cursor": "^3.1.0",
- "cli-width": "^3.0.0",
- "external-editor": "^3.0.3",
- "figures": "^3.0.0",
- "lodash": "^4.17.21",
- "mute-stream": "0.0.8",
- "ora": "^5.4.1",
- "run-async": "^2.4.0",
- "rxjs": "^7.5.5",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "through": "^2.3.6",
- "wrap-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
@@ -9736,15 +9615,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -9773,7 +9643,8 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz",
"integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-number": {
"version": "7.0.0",
@@ -9953,18 +9824,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-weakmap": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
@@ -10232,15 +10091,6 @@
"jiti": "bin/jiti.js"
}
},
- "node_modules/js-levenshtein": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
- "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
@@ -10562,22 +10412,6 @@
"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
"dev": true
},
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/long": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
@@ -10907,62 +10741,107 @@
"dev": true
},
"node_modules/msw": {
- "version": "0.36.8",
- "resolved": "https://registry.npmjs.org/msw/-/msw-0.36.8.tgz",
- "integrity": "sha512-K7lOQoYqhGhTSChsmHMQbf/SDCsxh/m0uhN6Ipt206lGoe81fpTmaGD0KLh4jUxCONMOUnwCSj0jtX2CM4pEdw==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.0.tgz",
+ "integrity": "sha512-n3tx2w0MZ3H4pxY0ozrQ4sNPzK/dGtlr2cIIyuEsgq2Bhy4wvcW6ZH2w/gXM9+MEUY6HC1fWhqtcXDxVZr5Jxw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"dependencies": {
- "@mswjs/cookies": "^0.1.7",
- "@mswjs/interceptors": "^0.12.7",
- "@open-draft/until": "^1.0.3",
- "@types/cookie": "^0.4.1",
- "@types/inquirer": "^8.1.3",
- "@types/js-levenshtein": "^1.1.0",
- "chalk": "4.1.1",
- "chokidar": "^3.4.2",
- "cookie": "^0.4.1",
- "graphql": "^15.5.1",
- "headers-utils": "^3.0.2",
- "inquirer": "^8.2.0",
- "is-node-process": "^1.0.1",
- "js-levenshtein": "^1.1.6",
- "node-fetch": "^2.6.7",
- "path-to-regexp": "^8.0.0",
- "statuses": "^2.0.0",
- "strict-event-emitter": "^0.2.0",
- "type-fest": "^1.2.2",
- "yargs": "^17.3.0"
+ "@bundled-es-modules/cookie": "^2.0.0",
+ "@bundled-es-modules/statuses": "^1.0.1",
+ "@bundled-es-modules/tough-cookie": "^0.1.6",
+ "@inquirer/confirm": "^5.0.0",
+ "@mswjs/interceptors": "^0.36.5",
+ "@open-draft/deferred-promise": "^2.2.0",
+ "@open-draft/until": "^2.1.0",
+ "@types/cookie": "^0.6.0",
+ "@types/statuses": "^2.0.4",
+ "chalk": "^4.1.2",
+ "graphql": "^16.8.1",
+ "headers-polyfill": "^4.0.2",
+ "is-node-process": "^1.2.0",
+ "outvariant": "^1.4.3",
+ "path-to-regexp": "^6.3.0",
+ "strict-event-emitter": "^0.5.1",
+ "type-fest": "^4.26.1",
+ "yargs": "^17.7.2"
},
"bin": {
"msw": "cli/index.js"
},
+ "engines": {
+ "node": ">=18"
+ },
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mswjs"
+ "url": "https://github.com/sponsors/mswjs"
+ },
+ "peerDependencies": {
+ "typescript": ">= 4.8.x"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/msw/node_modules/chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "node_modules/msw/node_modules/@inquirer/confirm": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.1.tgz",
+ "integrity": "sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@inquirer/core": "^10.0.1",
+ "@inquirer/type": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "peerDependencies": {
+ "@types/node": ">=18"
+ }
+ },
+ "node_modules/msw/node_modules/@inquirer/type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.0.tgz",
+ "integrity": "sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@types/node": ">=18"
+ }
+ },
+ "node_modules/msw/node_modules/@types/node": {
+ "version": "22.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
+ "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.19.8"
}
},
+ "node_modules/msw/node_modules/path-to-regexp": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
+ "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/mute-stream": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
- "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz",
+ "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
},
"node_modules/mz": {
"version": "2.7.0",
@@ -13948,43 +13827,12 @@
"node": ">= 0.8.0"
}
},
- "node_modules/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dev": true,
- "dependencies": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/outvariant": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz",
- "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==",
- "dev": true
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
+ "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/p-limit": {
"version": "3.1.0",
@@ -15712,20 +15560,6 @@
"node": ">=8"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -15950,19 +15784,6 @@
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
- "node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
- "dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -16034,15 +15855,6 @@
"integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
"dev": true
},
- "node_modules/run-async": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
- "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -16071,15 +15883,6 @@
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
},
- "node_modules/rxjs": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.1.0"
- }
- },
"node_modules/safe-array-concat": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
@@ -16274,12 +16077,6 @@
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
- "node_modules/set-cookie-parser": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
- "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
- "dev": true
- },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -16488,6 +16285,7 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -16499,13 +16297,11 @@
"dev": true
},
"node_modules/strict-event-emitter": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz",
- "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz",
+ "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==",
"dev": true,
- "dependencies": {
- "events": "^3.3.0"
- }
+ "license": "MIT"
},
"node_modules/strict-uri-encode": {
"version": "2.0.0",
@@ -16515,35 +16311,6 @@
"node": ">=4"
}
},
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/string-natural-compare": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
@@ -17158,12 +16925,6 @@
"node": ">=0.8"
}
},
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
- },
"node_modules/tiny-invariant": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
@@ -17198,18 +16959,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "dependencies": {
- "os-tmpdir": "~1.0.2"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -17363,12 +17112,13 @@
}
},
"node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "version": "4.26.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz",
+ "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=10"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -17505,6 +17255,14 @@
"integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==",
"dev": true
},
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
@@ -17874,15 +17632,6 @@
"node": ">=14"
}
},
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
"node_modules/web-vitals": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz",
@@ -18126,6 +17875,7 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -18285,6 +18035,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
+ "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/zustand": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
diff --git a/web/vtadmin/package.json b/web/vtadmin/package.json
index 78d14ea9e9c..5d4d5dc787a 100644
--- a/web/vtadmin/package.json
+++ b/web/vtadmin/package.json
@@ -89,7 +89,7 @@
"eslint-config-react-app": "^7.0.1",
"i": "^0.3.7",
"jsdom": "^21.1.1",
- "msw": "^0.36.8",
+ "msw": "^2.5.2",
"npm": "^10.8.0",
"postcss": "^8.4.31",
"prettier": "^2.2.1",
diff --git a/web/vtadmin/src/api/http.test.ts b/web/vtadmin/src/api/http.test.ts
index 140b1a74c70..8da5d91c55d 100644
--- a/web/vtadmin/src/api/http.test.ts
+++ b/web/vtadmin/src/api/http.test.ts
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { rest } from 'msw';
+import { http, HttpResponse } from 'msw';
import * as api from './http';
import {
@@ -32,7 +32,7 @@ vi.mock('../errors/errorHandler');
// for all requests made against the given `endpoint`.
const mockServerJson = (endpoint: string, json: object, status: number = 200) => {
const apiAddr = import.meta.env.VITE_VTADMIN_API_ADDRESS;
- global.server.use(rest.get(`${apiAddr}${endpoint}`, (req, res, ctx) => res(ctx.status(status), ctx.json(json))));
+ global.server.use(http.get(`${apiAddr}${endpoint}`, (info) => HttpResponse.json(json, { status: status })));
};
describe('api/http', () => {
@@ -80,8 +80,10 @@ describe('api/http', () => {
errorHandler.notify.mockReset();
const endpoint = `/api/tablets`;
global.server.use(
- rest.get(`${import.meta.env.VITE_VTADMIN_API_ADDRESS}${endpoint}`, (req, res, ctx) =>
- res(ctx.status(504), ctx.body('504 Gateway Time-out '))
+ http.get(`${import.meta.env.VITE_VTADMIN_API_ADDRESS}${endpoint}`, (info) =>
+ HttpResponse.html('504 Gateway Time-out ', {
+ status: 504,
+ })
)
);
@@ -94,7 +96,7 @@ describe('api/http', () => {
/* eslint-disable jest/no-conditional-expect */
expect(e.name).toEqual(MALFORMED_HTTP_RESPONSE_ERROR);
expect(e.message).toContain(
- '[status 504] /api/tablets: invalid json response body at http://test-api.com/api/tablets'
+ `[status 504] /api/tablets: Unexpected token '<', " {
* provides such a function and should be `render`ed in the context QueryClientProvider.
*/
const Wrapper: React.FC = (props) => {
- const mutation = useMutation(() => fetch(new URL(props['url']), { method: 'post' }), {
- onError: (error) => {
- console.log('ERROR: ', error);
- },
- });
+ const mutation = useMutation(() => fetch(new URL(props['url']), { method: 'post' }));
return ;
};
@@ -46,8 +42,9 @@ describe('ActionPanel', () => {
const url = `${import.meta.env.VITE_VTADMIN_API_ADDRESS}/api/test`;
global.server.use(
- rest.post(url, (req, res, ctx) => {
- return res(ctx.json({ ok: true }));
+ http.post(url, async (info) => {
+ await delay();
+ return HttpResponse.json({ ok: true });
})
);
diff --git a/web/vtadmin/src/components/routes/createKeyspace/CreateKeyspace.test.tsx b/web/vtadmin/src/components/routes/createKeyspace/CreateKeyspace.test.tsx
index b983bc3ba36..1a54ae381c4 100644
--- a/web/vtadmin/src/components/routes/createKeyspace/CreateKeyspace.test.tsx
+++ b/web/vtadmin/src/components/routes/createKeyspace/CreateKeyspace.test.tsx
@@ -13,8 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import { rest } from 'msw';
-import { setupServer } from 'msw/node';
+import { delay, http, HttpResponse } from 'msw';
import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { createMemoryHistory } from 'history';
@@ -32,33 +31,27 @@ import * as Snackbar from '../../Snackbar';
// about UI structure (boo!), which means this test is rather brittle
// to UI changes (e.g., like how the Select works, adding new form fields, etc.)
describe('CreateKeyspace integration test', () => {
- const server = setupServer();
-
- afterAll(() => {
- server.close();
- });
-
it('successfully creates a keyspace', async () => {
vi.spyOn(global, 'fetch');
vi.spyOn(Snackbar, 'success');
const cluster = { id: 'local', name: 'local' };
const apiAddr = import.meta.env.VITE_VTADMIN_API_ADDRESS;
- server.use(
- rest.get(`${apiAddr}/api/clusters`, (req, res, ctx) => {
- return res(ctx.json({ result: { clusters: [cluster] }, ok: true }));
+ global.server.use(
+ http.get(`${apiAddr}/api/clusters`, async (info) => {
+ return HttpResponse.json({ result: { clusters: [cluster] }, ok: true });
}),
- rest.post(`${apiAddr}/api/keyspace/:clusterID`, (req, res, ctx) => {
+ http.post(`${apiAddr}/api/keyspace/:clusterID`, async (info) => {
+ await delay();
const data: vtadmin.ICreateKeyspaceResponse = {
keyspace: {
cluster: { id: cluster.id, name: cluster.name },
keyspace: { name: 'some-keyspace' },
},
};
- return res(ctx.json({ result: data, ok: true }));
+ return HttpResponse.json({ result: data, ok: true });
})
);
- server.listen();
const history = createMemoryHistory();
vi.spyOn(history, 'push');
diff --git a/web/vtadmin/src/components/routes/keyspace/Advanced.test.tsx b/web/vtadmin/src/components/routes/keyspace/Advanced.test.tsx
index 8b7a00c3a33..a2e770eba67 100644
--- a/web/vtadmin/src/components/routes/keyspace/Advanced.test.tsx
+++ b/web/vtadmin/src/components/routes/keyspace/Advanced.test.tsx
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import { rest } from 'msw';
+import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';
import { render, screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
@@ -39,11 +39,11 @@ describe('Advanced keyspace actions', () => {
};
const server = setupServer(
- rest.get('/api/keyspace/:clusterID/:keyspace', (req, res, ctx) => {
- return res(ctx.json({ ok: true, result: keyspace }));
+ http.get('/api/keyspace/:clusterID/:keyspace', (info) => {
+ return HttpResponse.json({ ok: true, result: keyspace });
}),
- rest.put('/api/schemas/reload', (req, res, ctx) => {
- return res(ctx.json({ ok: true }));
+ http.put('/api/schemas/reload', (info) => {
+ return HttpResponse.json({ ok: true });
})
);
From 3402f48cbe97fa751de701d6328dd0ac0985b194 Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Tue, 5 Nov 2024 23:19:15 -0600
Subject: [PATCH 29/78] [main] Copy `v18.0.8` release notes (#17155)
Signed-off-by: Rohit Nayak
Co-authored-by: Rohit Nayak
---
changelog/18.0/18.0.0/summary.md | 11 ++++++
changelog/18.0/18.0.7/changelog.md | 1 -
changelog/18.0/18.0.7/release_notes.md | 2 +-
changelog/18.0/18.0.8/changelog.md | 47 ++++++++++++++++++++++++++
changelog/18.0/18.0.8/release_notes.md | 7 ++++
changelog/18.0/README.md | 4 +++
6 files changed, 70 insertions(+), 2 deletions(-)
create mode 100644 changelog/18.0/18.0.8/changelog.md
create mode 100644 changelog/18.0/18.0.8/release_notes.md
diff --git a/changelog/18.0/18.0.0/summary.md b/changelog/18.0/18.0.0/summary.md
index 35ad018b7bc..5f643a1355c 100644
--- a/changelog/18.0/18.0.0/summary.md
+++ b/changelog/18.0/18.0.0/summary.md
@@ -2,6 +2,8 @@
### Table of Contents
+- **[Known Issues](#known-issues)**
+ - **[VTTablet runs an unnecessary DDL](#sidecardb-issue)**
- **[Major Changes](#major-changes)**
- **[Breaking Changes](#breaking-changes)**
- [Local examples now use etcd v3 storage and API](#local-examples-etcd-v3)
@@ -36,6 +38,15 @@
- **[Durability Policies](#durability-policies)**
- [New Durability Policies](#new-durability-policies)
+## Known Issues
+
+### VTTablet runs an unnecessary DDL
+In this release, with MySQL 8.0 whenever VTTablet's tabletserver goes through initialization, it finds
+a diff in its internal `schemacopy` table and tries to apply a DDL to fix it. The DDL
+is a no-op and this loop of applying the DDL continues to run.
+
+If this problem is encountered, the following PR should be reverted to resolve it - https://github.com/vitessio/vitess/pull/15859.
+
## Major Changes
### Breaking Changes
diff --git a/changelog/18.0/18.0.7/changelog.md b/changelog/18.0/18.0.7/changelog.md
index f9b6fd53bbc..9631e94af4c 100644
--- a/changelog/18.0/18.0.7/changelog.md
+++ b/changelog/18.0/18.0.7/changelog.md
@@ -38,7 +38,6 @@
* [release-18.0] bugfix: Allow cross-keyspace joins (#16520) [#16522](https://github.com/vitessio/vitess/pull/16522)
### Release
#### General
- * [release-18.0] Bump to `v18.0.7-SNAPSHOT` after the `v18.0.6` release [#16454](https://github.com/vitessio/vitess/pull/16454)
### Testing
#### Query Serving
* [release-18.0] Replace ErrorContains checks with Error checks before running upgrade downgrade [#16701](https://github.com/vitessio/vitess/pull/16701)
diff --git a/changelog/18.0/18.0.7/release_notes.md b/changelog/18.0/18.0.7/release_notes.md
index 2e48f54ee07..7faeaeeef45 100644
--- a/changelog/18.0/18.0.7/release_notes.md
+++ b/changelog/18.0/18.0.7/release_notes.md
@@ -1,7 +1,7 @@
# Release of Vitess v18.0.7
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/18.0/18.0.7/changelog.md).
-The release includes 21 merged Pull Requests.
+The release includes 23 merged Pull Requests.
Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @frouioui, @shlomi-noach, @vitess-bot
diff --git a/changelog/18.0/18.0.8/changelog.md b/changelog/18.0/18.0.8/changelog.md
new file mode 100644
index 00000000000..0558cd04947
--- /dev/null
+++ b/changelog/18.0/18.0.8/changelog.md
@@ -0,0 +1,47 @@
+# Changelog of Vitess v18.0.8
+
+### Bug fixes
+#### Backup and Restore
+ * [release-18.0] Fail fast when builtinbackup fails to restore a single file (#16856) [#16866](https://github.com/vitessio/vitess/pull/16866)
+#### Query Serving
+ * [release-18.0] fixes bugs around expression precedence and LIKE (#16934 & #16649) [#16944](https://github.com/vitessio/vitess/pull/16944)
+ * [release-18.0] fix issue with aggregation inside of derived tables [#16948](https://github.com/vitessio/vitess/pull/16948)
+ * [release-18.0] Planner Bug: Joins inside derived table (#14974) [#16962](https://github.com/vitessio/vitess/pull/16962)
+ * [release-18.0] bugfix: add HAVING columns inside derived tables (#16976) [#16977](https://github.com/vitessio/vitess/pull/16977)
+ * [release-18.0] Delegate Column Availability Checks to MySQL for Single-Route Queries (#17077) [#17084](https://github.com/vitessio/vitess/pull/17084)
+ * bugfix: make sure to split predicates before planning them [#17099](https://github.com/vitessio/vitess/pull/17099)
+ * [release-18.0] Bugfix for Panic on Joined Queries with Non-Authoritative Tables in Vitess 19.0 (#17103) [#17115](https://github.com/vitessio/vitess/pull/17115)
+#### VTAdmin
+ * [release-18.0] VTAdmin: Fix serve-handler's path-to-regexp dep and add default schema refresh (#16778) [#16782](https://github.com/vitessio/vitess/pull/16782)
+#### VTGate
+ * [release-18.0] Fix deadlock between health check and topology watcher (#16995) [#17007](https://github.com/vitessio/vitess/pull/17007)
+#### VTTablet
+ * [release-18.0] Fix race in `replicationLagModule` of `go/vt/throttle` (#16078) [#16898](https://github.com/vitessio/vitess/pull/16898)
+### Dependencies
+#### Java
+ * [release-18.0] Bump com.google.protobuf:protobuf-java from 3.24.3 to 3.25.5 in /java (#16809) [#16836](https://github.com/vitessio/vitess/pull/16836)
+ * [release-18.0] Bump commons-io:commons-io from 2.7 to 2.14.0 in /java (#16889) [#16929](https://github.com/vitessio/vitess/pull/16929)
+#### VTAdmin
+ * [release-18.0] VTAdmin: Address security vuln in path-to-regexp node pkg (#16770) [#16771](https://github.com/vitessio/vitess/pull/16771)
+### Documentation
+#### Build/CI
+ * [Direct PR] [release-18.0]: Add `sidecardb` known issue [#17096](https://github.com/vitessio/vitess/pull/17096)
+### Enhancement
+#### Online DDL
+ * [release-18.0] Improve Schema Engine's TablesWithSize80 query (#17066) [#17088](https://github.com/vitessio/vitess/pull/17088)
+### Internal Cleanup
+#### VTAdmin
+ * [release-18.0] VTAdmin: Upgrade deps to address security vulns (#16843) [#16845](https://github.com/vitessio/vitess/pull/16845)
+### Regression
+#### Backup and Restore
+ * [release-18.0] Fix unreachable errors when taking a backup (#17062) [#17109](https://github.com/vitessio/vitess/pull/17109)
+#### Query Serving
+ * [release-18.0] fix: route engine to handle column truncation for execute after lookup (#16981) [#16983](https://github.com/vitessio/vitess/pull/16983)
+ * [release-18.0] Add support for `MultiEqual` opcode for lookup vindexes. (#16975) [#17038](https://github.com/vitessio/vitess/pull/17038)
+### Release
+#### General
+ * [release-18.0] Bump to `v18.0.8-SNAPSHOT` after the `v18.0.7` release [#16748](https://github.com/vitessio/vitess/pull/16748)
+### Testing
+#### Cluster management
+ * [release-18.0] Flaky test fixes (#16940) [#16957](https://github.com/vitessio/vitess/pull/16957)
+
diff --git a/changelog/18.0/18.0.8/release_notes.md b/changelog/18.0/18.0.8/release_notes.md
new file mode 100644
index 00000000000..87f69f48cdf
--- /dev/null
+++ b/changelog/18.0/18.0.8/release_notes.md
@@ -0,0 +1,7 @@
+# Release of Vitess v18.0.8
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/18.0/18.0.8/changelog.md).
+
+The release includes 22 merged Pull Requests.
+
+Thanks to all our contributors: @GuptaManan100, @app/vitess-bot, @shlomi-noach, @systay
+
diff --git a/changelog/18.0/README.md b/changelog/18.0/README.md
index 98d6b52589b..5177986e79d 100644
--- a/changelog/18.0/README.md
+++ b/changelog/18.0/README.md
@@ -1,4 +1,8 @@
## v18.0
+* **[18.0.8](18.0.8)**
+ * [Changelog](18.0.8/changelog.md)
+ * [Release Notes](18.0.8/release_notes.md)
+
* **[18.0.7](18.0.7)**
* [Changelog](18.0.7/changelog.md)
* [Release Notes](18.0.7/release_notes.md)
From b45d7c91fa5738b2c94cea355d426b5a924df53b Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Tue, 5 Nov 2024 23:35:42 -0600
Subject: [PATCH 30/78] [main] Copy `v19.0.7` release notes (#17157)
Signed-off-by: Rohit Nayak
Co-authored-by: Rohit Nayak
---
changelog/19.0/19.0.7/changelog.md | 50 ++++++++++++++++++++++++++
changelog/19.0/19.0.7/release_notes.md | 7 ++++
changelog/19.0/README.md | 4 +++
3 files changed, 61 insertions(+)
create mode 100644 changelog/19.0/19.0.7/changelog.md
create mode 100644 changelog/19.0/19.0.7/release_notes.md
diff --git a/changelog/19.0/19.0.7/changelog.md b/changelog/19.0/19.0.7/changelog.md
new file mode 100644
index 00000000000..a5c9a693f9c
--- /dev/null
+++ b/changelog/19.0/19.0.7/changelog.md
@@ -0,0 +1,50 @@
+# Changelog of Vitess v19.0.7
+
+### Bug fixes
+#### Backup and Restore
+ * [release-19.0] Fail fast when builtinbackup fails to restore a single file (#16856) [#16867](https://github.com/vitessio/vitess/pull/16867)
+#### Query Serving
+ * Backport: Fix ACL checks for CTEs (#16642) [#16776](https://github.com/vitessio/vitess/pull/16776)
+ * [release-19.0] VTTablet: smartconnpool: notify all expired waiters (#16897) [#16901](https://github.com/vitessio/vitess/pull/16901)
+ * [release-19.0] fixes bugs around expression precedence and LIKE (#16934 & #16649) [#16945](https://github.com/vitessio/vitess/pull/16945)
+ * [release-19.0] bugfix: add HAVING columns inside derived tables (#16976) [#16978](https://github.com/vitessio/vitess/pull/16978)
+ * [release-19.0] bugfix: treat EXPLAIN like SELECT (#17054) [#17056](https://github.com/vitessio/vitess/pull/17056)
+ * [release-19.0] Delegate Column Availability Checks to MySQL for Single-Route Queries (#17077) [#17085](https://github.com/vitessio/vitess/pull/17085)
+ * Bugfix for Panic on Joined Queries with Non-Authoritative Tables in Vitess 19.0 [#17103](https://github.com/vitessio/vitess/pull/17103)
+#### VTAdmin
+ * [release-19.0] VTAdmin: Fix serve-handler's path-to-regexp dep and add default schema refresh (#16778) [#16783](https://github.com/vitessio/vitess/pull/16783)
+#### VTGate
+ * [release-19.0] Support passing filters to `discovery.NewHealthCheck(...)` (#16170) [#16871](https://github.com/vitessio/vitess/pull/16871)
+ * [release-19.0] Fix deadlock between health check and topology watcher (#16995) [#17008](https://github.com/vitessio/vitess/pull/17008)
+#### VTTablet
+ * [release-19.0] Fix race in `replicationLagModule` of `go/vt/throttle` (#16078) [#16899](https://github.com/vitessio/vitess/pull/16899)
+### CI/Build
+#### Docker
+ * [release-19.0] Remove mysql57 from docker images [#16763](https://github.com/vitessio/vitess/pull/16763)
+#### General
+ * [release-19.0] Upgrade Golang to 1.22.8 [#16895](https://github.com/vitessio/vitess/pull/16895)
+### Dependencies
+#### Java
+ * [release-19.0] Bump com.google.protobuf:protobuf-java from 3.24.3 to 3.25.5 in /java (#16809) [#16837](https://github.com/vitessio/vitess/pull/16837)
+ * [release-19.0] Bump commons-io:commons-io from 2.7 to 2.14.0 in /java (#16889) [#16930](https://github.com/vitessio/vitess/pull/16930)
+#### VTAdmin
+ * [release-19.0] VTAdmin: Address security vuln in path-to-regexp node pkg (#16770) [#16772](https://github.com/vitessio/vitess/pull/16772)
+### Enhancement
+#### Online DDL
+ * [release-19.0] Improve Schema Engine's TablesWithSize80 query (#17066) [#17089](https://github.com/vitessio/vitess/pull/17089)
+### Internal Cleanup
+#### VTAdmin
+ * [release-19.0] VTAdmin: Upgrade deps to address security vulns (#16843) [#16846](https://github.com/vitessio/vitess/pull/16846)
+### Regression
+#### Backup and Restore
+ * [release-19.0] Fix unreachable errors when taking a backup (#17062) [#17110](https://github.com/vitessio/vitess/pull/17110)
+#### Query Serving
+ * [release-19.0] fix: route engine to handle column truncation for execute after lookup (#16981) [#16984](https://github.com/vitessio/vitess/pull/16984)
+ * [release-19.0] Add support for `MultiEqual` opcode for lookup vindexes. (#16975) [#17039](https://github.com/vitessio/vitess/pull/17039)
+### Release
+#### General
+ * [release-19.0] Code Freeze for `v19.0.7` [#17148](https://github.com/vitessio/vitess/pull/17148)
+### Testing
+#### Cluster management
+ * [release-19.0] Flaky test fixes (#16940) [#16958](https://github.com/vitessio/vitess/pull/16958)
+
diff --git a/changelog/19.0/19.0.7/release_notes.md b/changelog/19.0/19.0.7/release_notes.md
new file mode 100644
index 00000000000..9cc9532d018
--- /dev/null
+++ b/changelog/19.0/19.0.7/release_notes.md
@@ -0,0 +1,7 @@
+# Release of Vitess v19.0.7
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/19.0/19.0.7/changelog.md).
+
+The release includes 24 merged Pull Requests.
+
+Thanks to all our contributors: @app/vitess-bot, @frouioui, @systay, @timvaillancourt, @vitess-bot
+
diff --git a/changelog/19.0/README.md b/changelog/19.0/README.md
index cd43ee9bbd3..008c92c2aec 100644
--- a/changelog/19.0/README.md
+++ b/changelog/19.0/README.md
@@ -1,4 +1,8 @@
## v19.0
+* **[19.0.7](19.0.7)**
+ * [Changelog](19.0.7/changelog.md)
+ * [Release Notes](19.0.7/release_notes.md)
+
* **[19.0.6](19.0.6)**
* [Changelog](19.0.6/changelog.md)
* [Release Notes](19.0.6/release_notes.md)
From 7dc7e69962125d66304fb0fe1efddf6939b70c48 Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Tue, 5 Nov 2024 23:50:47 -0600
Subject: [PATCH 31/78] [main] Copy `v20.0.3` release notes (#17159)
Signed-off-by: Rohit Nayak
Co-authored-by: Rohit Nayak
---
changelog/20.0/20.0.3/changelog.md | 50 ++++++++++++++++++++++++++
changelog/20.0/20.0.3/release_notes.md | 7 ++++
changelog/20.0/README.md | 4 +++
3 files changed, 61 insertions(+)
create mode 100644 changelog/20.0/20.0.3/changelog.md
create mode 100644 changelog/20.0/20.0.3/release_notes.md
diff --git a/changelog/20.0/20.0.3/changelog.md b/changelog/20.0/20.0.3/changelog.md
new file mode 100644
index 00000000000..678a7e6a98c
--- /dev/null
+++ b/changelog/20.0/20.0.3/changelog.md
@@ -0,0 +1,50 @@
+# Changelog of Vitess v20.0.3
+
+### Bug fixes
+#### Backup and Restore
+ * [release-20.0] Fail fast when builtinbackup fails to restore a single file (#16856) [#16868](https://github.com/vitessio/vitess/pull/16868)
+#### Query Serving
+ * [release-20.0] VTGate MoveTables Buffering: Fix panic when buffering is disabled (#16922) [#16935](https://github.com/vitessio/vitess/pull/16935)
+ * [release-20.0] fixes bugs around expression precedence and LIKE (#16934 & #16649) [#16946](https://github.com/vitessio/vitess/pull/16946)
+ * [release-20.0] bugfix: add HAVING columns inside derived tables (#16976) [#16979](https://github.com/vitessio/vitess/pull/16979)
+ * [release-20.0] bugfix: treat EXPLAIN like SELECT (#17054) [#17057](https://github.com/vitessio/vitess/pull/17057)
+ * [release-20.0] Delegate Column Availability Checks to MySQL for Single-Route Queries (#17077) [#17086](https://github.com/vitessio/vitess/pull/17086)
+#### VReplication
+ * [release-20.0] Migrate Workflow: Scope vindex names correctly when target and source keyspace have different names (#16769) [#16815](https://github.com/vitessio/vitess/pull/16815)
+#### VTAdmin
+ * [release-20.0] VTAdmin: Fix serve-handler's path-to-regexp dep and add default schema refresh (#16778) [#16784](https://github.com/vitessio/vitess/pull/16784)
+#### VTGate
+ * [release-20.0] Support passing filters to `discovery.NewHealthCheck(…)` (#16170) [#16872](https://github.com/vitessio/vitess/pull/16872)
+ * [release-20.0] Fix deadlock between health check and topology watcher (#16995) [#17009](https://github.com/vitessio/vitess/pull/17009)
+#### VTTablet
+ * [release-20.0] Fix race in `replicationLagModule` of `go/vt/throttle` (#16078) [#16900](https://github.com/vitessio/vitess/pull/16900)
+### CI/Build
+#### General
+ * [release-20.0] Upgrade Golang to 1.22.8 [#16894](https://github.com/vitessio/vitess/pull/16894)
+### Dependencies
+#### Java
+ * [release-20.0] Bump com.google.protobuf:protobuf-java from 3.24.3 to 3.25.5 in /java (#16809) [#16838](https://github.com/vitessio/vitess/pull/16838)
+ * [release-20.0] Bump commons-io:commons-io from 2.7 to 2.14.0 in /java (#16889) [#16931](https://github.com/vitessio/vitess/pull/16931)
+#### VTAdmin
+ * [release-20.0] VTAdmin: Address security vuln in path-to-regexp node pkg (#16770) [#16773](https://github.com/vitessio/vitess/pull/16773)
+### Enhancement
+#### Build/CI
+ * [release-20.0] Change upgrade test to still use the older version of tests (#16937) [#16969](https://github.com/vitessio/vitess/pull/16969)
+#### Online DDL
+ * [release-20.0] Improve Schema Engine's TablesWithSize80 query (#17066) [#17090](https://github.com/vitessio/vitess/pull/17090)
+### Internal Cleanup
+#### VTAdmin
+ * [release-20.0] VTAdmin: Upgrade deps to address security vulns (#16843) [#16847](https://github.com/vitessio/vitess/pull/16847)
+### Regression
+#### Backup and Restore
+ * [release-20.0] Fix unreachable errors when taking a backup (#17062) [#17111](https://github.com/vitessio/vitess/pull/17111)
+#### Query Serving
+ * [release-20.0] fix: route engine to handle column truncation for execute after lookup (#16981) [#16985](https://github.com/vitessio/vitess/pull/16985)
+ * [release-20.0] Add support for `MultiEqual` opcode for lookup vindexes. (#16975) [#17040](https://github.com/vitessio/vitess/pull/17040)
+### Release
+#### General
+ * [release-20.0] Code Freeze for `v20.0.3` [#17145](https://github.com/vitessio/vitess/pull/17145)
+### Testing
+#### Cluster management
+ * [release-20.0] Flaky test fixes (#16940) [#16959](https://github.com/vitessio/vitess/pull/16959)
+
diff --git a/changelog/20.0/20.0.3/release_notes.md b/changelog/20.0/20.0.3/release_notes.md
new file mode 100644
index 00000000000..e2eaf22fd79
--- /dev/null
+++ b/changelog/20.0/20.0.3/release_notes.md
@@ -0,0 +1,7 @@
+# Release of Vitess v20.0.3
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/20.0/20.0.3/changelog.md).
+
+The release includes 23 merged Pull Requests.
+
+Thanks to all our contributors: @app/vitess-bot, @frouioui, @timvaillancourt, @vitess-bot
+
diff --git a/changelog/20.0/README.md b/changelog/20.0/README.md
index f8e12c1d453..f41ea711fb8 100644
--- a/changelog/20.0/README.md
+++ b/changelog/20.0/README.md
@@ -1,4 +1,8 @@
## v20.0
+* **[20.0.3](20.0.3)**
+ * [Changelog](20.0.3/changelog.md)
+ * [Release Notes](20.0.3/release_notes.md)
+
* **[20.0.2](20.0.2)**
* [Changelog](20.0.2/changelog.md)
* [Release Notes](20.0.2/release_notes.md)
From 5b699d8e0871525500a3bd720ffc372c78f644f6 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Wed, 6 Nov 2024 08:14:41 +0200
Subject: [PATCH 32/78] Parse enum/set values with `sqlparser` (#17133)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/schema/parser.go | 115 +++++++-----------
go/vt/schema/parser_test.go | 109 ++++++-----------
.../tabletserver/vstreamer/vstreamer.go | 23 ++--
3 files changed, 89 insertions(+), 158 deletions(-)
diff --git a/go/vt/schema/parser.go b/go/vt/schema/parser.go
index 7f5e133e01c..5d5bbc868ff 100644
--- a/go/vt/schema/parser.go
+++ b/go/vt/schema/parser.go
@@ -17,11 +17,15 @@ limitations under the License.
package schema
import (
+ "fmt"
"regexp"
"strings"
"vitess.io/vitess/go/sqltypes"
+ "vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/sqlparser"
+ "vitess.io/vitess/go/vt/vtenv"
+ "vitess.io/vitess/go/vt/vterrors"
)
// NormalizedDDLQuery contains a query which is online-ddl -normalized
@@ -49,9 +53,6 @@ var (
// ALTER TABLE tbl something
regexp.MustCompile(alterTableBasicPattern + `([\S]+)\s+(.*$)`),
}
-
- enumValuesRegexp = regexp.MustCompile("(?i)^enum[(](.*)[)]$")
- setValuesRegexp = regexp.MustCompile("(?i)^set[(](.*)[)]$")
)
// ParseAlterTableOptions parses a ALTER ... TABLE... statement into:
@@ -77,91 +78,57 @@ func ParseAlterTableOptions(alterStatement string) (explicitSchema, explicitTabl
return explicitSchema, explicitTable, alterOptions
}
-// ParseEnumValues parses the comma delimited part of an enum column definition
-func ParseEnumValues(enumColumnType string) string {
- if submatch := enumValuesRegexp.FindStringSubmatch(enumColumnType); len(submatch) > 0 {
- return submatch[1]
- }
- return enumColumnType
-}
-
-// ParseSetValues parses the comma delimited part of a set column definition
-func ParseSetValues(setColumnType string) string {
- if submatch := setValuesRegexp.FindStringSubmatch(setColumnType); len(submatch) > 0 {
- return submatch[1]
- }
- return setColumnType
-}
-
// parseEnumOrSetTokens parses the comma delimited part of an enum/set column definition and
// returns the (unquoted) text values
// Expected input: `'x-small','small','medium','large','x-large'`
// Unexpected input: `enum('x-small','small','medium','large','x-large')`
-func parseEnumOrSetTokens(enumOrSetValues string) []string {
- // We need to track both the start of the current value and current
- // position, since there might be quoted quotes inside the value
- // which we need to handle.
- start := 0
- pos := 1
- var tokens []string
- for {
- // If the input does not start with a quote, it's not a valid enum/set definition
- if enumOrSetValues[start] != '\'' {
- return nil
- }
- i := strings.IndexByte(enumOrSetValues[pos:], '\'')
- // If there's no closing quote, we have invalid input
- if i < 0 {
- return nil
- }
- // We're at the end here of the last quoted value,
- // so we add the last token and return them.
- if i == len(enumOrSetValues[pos:])-1 {
- tok, err := sqltypes.DecodeStringSQL(enumOrSetValues[start:])
- if err != nil {
- return nil
- }
- tokens = append(tokens, tok)
- return tokens
- }
- // MySQL double quotes things as escape value, so if we see another
- // single quote, we skip the character and remove it from the input.
- if enumOrSetValues[pos+i+1] == '\'' {
- pos = pos + i + 2
- continue
- }
- // Next value needs to be a comma as a separator, otherwise
- // the data is invalid so we return nil.
- if enumOrSetValues[pos+i+1] != ',' {
- return nil
- }
- // If we're at the end of the input here, it's invalid
- // since we have a trailing comma which is not what MySQL
- // returns.
- if pos+i+1 == len(enumOrSetValues) {
- return nil
- }
-
- tok, err := sqltypes.DecodeStringSQL(enumOrSetValues[start : pos+i+1])
+func parseEnumOrSetTokens(env *vtenv.Environment, enumOrSetValues string) ([]string, error) {
+ // sqlparser cannot directly parse enum/set values, so we create a dummy query to parse it.
+ dummyQuery := fmt.Sprintf("alter table t add column e enum(%s)", enumOrSetValues)
+ ddlStmt, err := env.Parser().ParseStrictDDL(dummyQuery)
+ if err != nil {
+ return nil, err
+ }
+ unexpectedError := func() error {
+ return vterrors.Errorf(vtrpc.Code_INTERNAL, "unexpected error parsing enum values: %v", enumOrSetValues)
+ }
+ alterTable, ok := ddlStmt.(*sqlparser.AlterTable)
+ if !ok {
+ return nil, unexpectedError()
+ }
+ if len(alterTable.AlterOptions) != 1 {
+ return nil, unexpectedError()
+ }
+ addColumn, ok := alterTable.AlterOptions[0].(*sqlparser.AddColumns)
+ if !ok {
+ return nil, unexpectedError()
+ }
+ if len(addColumn.Columns) != 1 {
+ return nil, unexpectedError()
+ }
+ enumValues := addColumn.Columns[0].Type.EnumValues
+ decodedEnumValues := make([]string, len(enumValues))
+ for i := range enumValues {
+ val, err := sqltypes.DecodeStringSQL(enumValues[i])
if err != nil {
- return nil
+ return nil, err
}
-
- tokens = append(tokens, tok)
- // We add 2 to the position to skip the closing quote & comma
- start = pos + i + 2
- pos = start + 1
+ decodedEnumValues[i] = val
}
+ return decodedEnumValues, nil
}
// ParseEnumOrSetTokensMap parses the comma delimited part of an enum column definition
// and returns a map where [1] is the first token, and [] is the last.
-func ParseEnumOrSetTokensMap(enumOrSetValues string) map[int]string {
- tokens := parseEnumOrSetTokens(enumOrSetValues)
+func ParseEnumOrSetTokensMap(env *vtenv.Environment, enumOrSetValues string) (map[int]string, error) {
+ tokens, err := parseEnumOrSetTokens(env, enumOrSetValues)
+ if err != nil {
+ return nil, err
+ }
tokensMap := map[int]string{}
for i, token := range tokens {
// SET and ENUM values are 1 indexed.
tokensMap[i+1] = token
}
- return tokensMap
+ return tokensMap, nil
}
diff --git a/go/vt/schema/parser_test.go b/go/vt/schema/parser_test.go
index dc696fd3d1d..e70bcfa68c5 100644
--- a/go/vt/schema/parser_test.go
+++ b/go/vt/schema/parser_test.go
@@ -20,6 +20,9 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/vt/vtenv"
)
func TestParseAlterTableOptions(t *testing.T) {
@@ -48,108 +51,50 @@ func TestParseAlterTableOptions(t *testing.T) {
}
}
-func TestParseEnumValues(t *testing.T) {
- {
- inputs := []string{
- `enum('x-small','small','medium','large','x-large')`,
- `ENUM('x-small','small','medium','large','x-large')`,
- `'x-small','small','medium','large','x-large'`,
- }
- for _, input := range inputs {
- enumValues := ParseEnumValues(input)
- assert.Equal(t, `'x-small','small','medium','large','x-large'`, enumValues)
- }
- }
- {
- inputs := []string{
- ``,
- `abc`,
- `func('x-small','small','medium','large','x-large')`,
- `set('x-small','small','medium','large','x-large')`,
- }
- for _, input := range inputs {
- enumValues := ParseEnumValues(input)
- assert.Equal(t, input, enumValues)
- }
- }
-
- {
- inputs := []string{
- ``,
- `abc`,
- `func('x small','small','medium','large','x large')`,
- `set('x small','small','medium','large','x large')`,
- }
- for _, input := range inputs {
- enumValues := ParseEnumValues(input)
- assert.Equal(t, input, enumValues)
- }
- }
-}
-
-func TestParseSetValues(t *testing.T) {
- {
- inputs := []string{
- `set('x-small','small','medium','large','x-large')`,
- `SET('x-small','small','medium','large','x-large')`,
- `'x-small','small','medium','large','x-large'`,
- }
- for _, input := range inputs {
- setValues := ParseSetValues(input)
- assert.Equal(t, `'x-small','small','medium','large','x-large'`, setValues)
- }
- }
- {
- inputs := []string{
- ``,
- `abc`,
- `func('x-small','small','medium','large','x-large')`,
- `enum('x-small','small','medium','large','x-large')`,
- `ENUM('x-small','small','medium','large','x-large')`,
- }
- for _, input := range inputs {
- setValues := ParseSetValues(input)
- assert.Equal(t, input, setValues)
- }
- }
-}
-
func TestParseEnumTokens(t *testing.T) {
+ env := vtenv.NewTestEnv()
{
input := `'x-small','small','medium','large','x-large'`
- enumTokens := parseEnumOrSetTokens(input)
+ enumTokens, err := parseEnumOrSetTokens(env, input)
+ require.NoError(t, err)
expect := []string{"x-small", "small", "medium", "large", "x-large"}
assert.Equal(t, expect, enumTokens)
}
{
input := `'x small','small','medium','large','x large'`
- enumTokens := parseEnumOrSetTokens(input)
+ enumTokens, err := parseEnumOrSetTokens(env, input)
+ require.NoError(t, err)
expect := []string{"x small", "small", "medium", "large", "x large"}
assert.Equal(t, expect, enumTokens)
}
{
input := `'with '' quote','and \n newline'`
- enumTokens := parseEnumOrSetTokens(input)
+ enumTokens, err := parseEnumOrSetTokens(env, input)
+ require.NoError(t, err)
expect := []string{"with ' quote", "and \n newline"}
assert.Equal(t, expect, enumTokens)
}
{
input := `enum('x-small','small','medium','large','x-large')`
- enumTokens := parseEnumOrSetTokens(input)
+ enumTokens, err := parseEnumOrSetTokens(env, input)
+ assert.Error(t, err)
assert.Nil(t, enumTokens)
}
{
input := `set('x-small','small','medium','large','x-large')`
- enumTokens := parseEnumOrSetTokens(input)
+ enumTokens, err := parseEnumOrSetTokens(env, input)
+ assert.Error(t, err)
assert.Nil(t, enumTokens)
}
}
func TestParseEnumTokensMap(t *testing.T) {
+ env := vtenv.NewTestEnv()
{
input := `'x-small','small','medium','large','x-large'`
- enumTokensMap := ParseEnumOrSetTokensMap(input)
+ enumTokensMap, err := ParseEnumOrSetTokensMap(env, input)
+ require.NoError(t, err)
expect := map[int]string{
1: "x-small",
2: "small",
@@ -165,9 +110,23 @@ func TestParseEnumTokensMap(t *testing.T) {
`set('x-small','small','medium','large','x-large')`,
}
for _, input := range inputs {
- enumTokensMap := ParseEnumOrSetTokensMap(input)
- expect := map[int]string{}
- assert.Equal(t, expect, enumTokensMap)
+ enumTokensMap, err := ParseEnumOrSetTokensMap(env, input)
+ assert.Error(t, err)
+ assert.Nil(t, enumTokensMap)
+ }
+ }
+ {
+ input := `'x-small','small','med''ium','large','x-large'`
+
+ enumTokensMap, err := ParseEnumOrSetTokensMap(env, input)
+ require.NoError(t, err)
+ expect := map[int]string{
+ 1: "x-small",
+ 2: "small",
+ 3: "med'ium",
+ 4: "large",
+ 5: "x-large",
}
+ assert.Equal(t, expect, enumTokensMap)
}
}
diff --git a/go/vt/vttablet/tabletserver/vstreamer/vstreamer.go b/go/vt/vttablet/tabletserver/vstreamer/vstreamer.go
index e7453b2b70f..ea7f75cdc38 100644
--- a/go/vt/vttablet/tabletserver/vstreamer/vstreamer.go
+++ b/go/vt/vttablet/tabletserver/vstreamer/vstreamer.go
@@ -37,6 +37,7 @@ import (
"vitess.io/vitess/go/vt/logutil"
vtschema "vitess.io/vitess/go/vt/schema"
"vitess.io/vitess/go/vt/sqlparser"
+ "vitess.io/vitess/go/vt/vtenv"
"vitess.io/vitess/go/vt/vterrors"
vttablet "vitess.io/vitess/go/vt/vttablet/common"
"vitess.io/vitess/go/vt/vttablet/tabletserver/schema"
@@ -783,7 +784,7 @@ func (vs *vstreamer) buildTablePlan(id uint64, tm *mysql.TableMap) (*binlogdatap
vs.plans[id] = nil
return nil, nil
}
- if err := addEnumAndSetMappingstoPlan(plan, cols, tm.Metadata); err != nil {
+ if err := addEnumAndSetMappingstoPlan(vs.se.Environment(), plan, cols, tm.Metadata); err != nil {
return nil, vterrors.Wrapf(err, "failed to build ENUM and SET column integer to string mappings")
}
vs.plans[id] = &streamerPlan{
@@ -1097,13 +1098,13 @@ func (vs *vstreamer) extractRowAndFilter(plan *streamerPlan, data []byte, dataCo
// Convert the integer values in the binlog event for any SET and ENUM fields into their
// string representations.
if plan.Table.Fields[colNum].Type == querypb.Type_ENUM || mysqlType == mysqlbinlog.TypeEnum {
- value, err = buildEnumStringValue(plan, colNum, value)
+ value, err = buildEnumStringValue(vs.se.Environment(), plan, colNum, value)
if err != nil {
return false, nil, false, vterrors.Wrapf(err, "failed to perform ENUM column integer to string value mapping")
}
}
if plan.Table.Fields[colNum].Type == querypb.Type_SET || mysqlType == mysqlbinlog.TypeSet {
- value, err = buildSetStringValue(plan, colNum, value)
+ value, err = buildSetStringValue(vs.se.Environment(), plan, colNum, value)
if err != nil {
return false, nil, false, vterrors.Wrapf(err, "failed to perform SET column integer to string value mapping")
}
@@ -1120,7 +1121,7 @@ func (vs *vstreamer) extractRowAndFilter(plan *streamerPlan, data []byte, dataCo
}
// addEnumAndSetMappingstoPlan sets up any necessary ENUM and SET integer to string mappings.
-func addEnumAndSetMappingstoPlan(plan *Plan, cols []*querypb.Field, metadata []uint16) error {
+func addEnumAndSetMappingstoPlan(env *vtenv.Environment, plan *Plan, cols []*querypb.Field, metadata []uint16) error {
plan.EnumSetValuesMap = make(map[int]map[int]string)
for i, col := range cols {
// If the column is a CHAR based type with a binary collation (e.g. utf8mb4_bin) then
@@ -1139,21 +1140,25 @@ func addEnumAndSetMappingstoPlan(plan *Plan, cols []*querypb.Field, metadata []u
return fmt.Errorf("enum or set column %s does not have valid string values: %s",
col.Name, col.ColumnType)
}
- plan.EnumSetValuesMap[i] = vtschema.ParseEnumOrSetTokensMap(col.ColumnType[begin+1 : end])
+ var err error
+ plan.EnumSetValuesMap[i], err = vtschema.ParseEnumOrSetTokensMap(env, col.ColumnType[begin+1:end])
+ if err != nil {
+ return err
+ }
}
}
return nil
}
// buildEnumStringValue takes the integer value of an ENUM column and returns the string value.
-func buildEnumStringValue(plan *streamerPlan, colNum int, value sqltypes.Value) (sqltypes.Value, error) {
+func buildEnumStringValue(env *vtenv.Environment, plan *streamerPlan, colNum int, value sqltypes.Value) (sqltypes.Value, error) {
if value.IsNull() { // No work is needed
return value, nil
}
// Add the mappings just-in-time in case we haven't properly received and processed a
// table map event to initialize it.
if plan.EnumSetValuesMap == nil {
- if err := addEnumAndSetMappingstoPlan(plan.Plan, plan.Table.Fields, plan.TableMap.Metadata); err != nil {
+ if err := addEnumAndSetMappingstoPlan(env, plan.Plan, plan.Table.Fields, plan.TableMap.Metadata); err != nil {
return sqltypes.Value{}, err
}
}
@@ -1181,14 +1186,14 @@ func buildEnumStringValue(plan *streamerPlan, colNum int, value sqltypes.Value)
}
// buildSetStringValue takes the integer value of a SET column and returns the string value.
-func buildSetStringValue(plan *streamerPlan, colNum int, value sqltypes.Value) (sqltypes.Value, error) {
+func buildSetStringValue(env *vtenv.Environment, plan *streamerPlan, colNum int, value sqltypes.Value) (sqltypes.Value, error) {
if value.IsNull() { // No work is needed
return value, nil
}
// Add the mappings just-in-time in case we haven't properly received and processed a
// table map event to initialize it.
if plan.EnumSetValuesMap == nil {
- if err := addEnumAndSetMappingstoPlan(plan.Plan, plan.Table.Fields, plan.TableMap.Metadata); err != nil {
+ if err := addEnumAndSetMappingstoPlan(env, plan.Plan, plan.Table.Fields, plan.TableMap.Metadata); err != nil {
return sqltypes.Value{}, err
}
}
From a5759828ce0ad97962ad6477e1e2d1368931a6e7 Mon Sep 17 00:00:00 2001
From: Tim Vaillancourt
Date: Wed, 6 Nov 2024 18:34:38 +0100
Subject: [PATCH 33/78] Improve efficiency of `vtorc` topo calls (#17071)
Signed-off-by: Tim Vaillancourt
Co-authored-by: Matt Lord
---
go/flags/endtoend/vtorc.txt | 1 +
go/vt/topo/keyspace.go | 1 +
go/vt/topo/shard.go | 86 ++++++-
go/vt/topo/tablet.go | 21 +-
go/vt/topo/tablet_test.go | 349 +++++++++++++++++++++++---
go/vt/vtorc/logic/tablet_discovery.go | 7 +-
6 files changed, 410 insertions(+), 55 deletions(-)
diff --git a/go/flags/endtoend/vtorc.txt b/go/flags/endtoend/vtorc.txt
index 3917522a2f8..d34b4404df7 100644
--- a/go/flags/endtoend/vtorc.txt
+++ b/go/flags/endtoend/vtorc.txt
@@ -99,6 +99,7 @@ Flags:
--topo_global_root string the path of the global topology data in the global topology server
--topo_global_server_address string the address of the global topology server
--topo_implementation string the topology implementation to use
+ --topo_read_concurrency int Concurrency of topo reads. (default 32)
--topo_zk_auth_file string auth to use when connecting to the zk topo server, file contents should be :, e.g., digest:user:pass
--topo_zk_base_timeout duration zk base timeout (see zk.Connect) (default 30s)
--topo_zk_max_concurrency int maximum number of pending requests to send to a Zookeeper server. (default 64)
diff --git a/go/vt/topo/keyspace.go b/go/vt/topo/keyspace.go
index dced769ca78..08b1c59f4cc 100755
--- a/go/vt/topo/keyspace.go
+++ b/go/vt/topo/keyspace.go
@@ -57,6 +57,7 @@ func init() {
servenv.OnParseFor("vtcombo", registerFlags)
servenv.OnParseFor("vtctld", registerFlags)
servenv.OnParseFor("vtgate", registerFlags)
+ servenv.OnParseFor("vtorc", registerFlags)
}
// KeyspaceInfo is a meta struct that contains metadata to give the
diff --git a/go/vt/topo/shard.go b/go/vt/topo/shard.go
index ba3a02a68ca..974a4fdbc6a 100644
--- a/go/vt/topo/shard.go
+++ b/go/vt/topo/shard.go
@@ -20,7 +20,6 @@ import (
"context"
"encoding/hex"
"errors"
- "fmt"
"path"
"slices"
"sort"
@@ -28,20 +27,20 @@ import (
"sync"
"time"
- "vitess.io/vitess/go/constants/sidecar"
- "vitess.io/vitess/go/protoutil"
- "vitess.io/vitess/go/vt/proto/vtrpc"
- "vitess.io/vitess/go/vt/vterrors"
+ "golang.org/x/sync/errgroup"
+ "vitess.io/vitess/go/constants/sidecar"
"vitess.io/vitess/go/event"
+ "vitess.io/vitess/go/protoutil"
"vitess.io/vitess/go/trace"
"vitess.io/vitess/go/vt/concurrency"
"vitess.io/vitess/go/vt/key"
"vitess.io/vitess/go/vt/log"
+ topodatapb "vitess.io/vitess/go/vt/proto/topodata"
+ "vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/topo/events"
"vitess.io/vitess/go/vt/topo/topoproto"
-
- topodatapb "vitess.io/vitess/go/vt/proto/topodata"
+ "vitess.io/vitess/go/vt/vterrors"
)
const (
@@ -553,7 +552,6 @@ func (ts *Server) FindAllTabletAliasesInShardByCell(ctx context.Context, keyspac
span.Annotate("shard", shard)
span.Annotate("num_cells", len(cells))
defer span.Finish()
- ctx = trace.NewContext(ctx, span)
var err error
// The caller intents to all cells
@@ -597,7 +595,7 @@ func (ts *Server) FindAllTabletAliasesInShardByCell(ctx context.Context, keyspac
case IsErrType(err, NoNode):
// There is no shard replication for this shard in this cell. NOOP
default:
- rec.RecordError(vterrors.Wrap(err, fmt.Sprintf("GetShardReplication(%v, %v, %v) failed.", cell, keyspace, shard)))
+ rec.RecordError(vterrors.Wrapf(err, "GetShardReplication(%v, %v, %v) failed.", cell, keyspace, shard))
return
}
}(cell)
@@ -616,6 +614,76 @@ func (ts *Server) FindAllTabletAliasesInShardByCell(ctx context.Context, keyspac
return result, err
}
+// GetTabletsByShard returns the tablets in the given shard using all cells.
+// It can return ErrPartialResult if it couldn't read all the cells, or all
+// the individual tablets, in which case the result is valid, but partial.
+func (ts *Server) GetTabletsByShard(ctx context.Context, keyspace, shard string) ([]*TabletInfo, error) {
+ return ts.GetTabletsByShardCell(ctx, keyspace, shard, nil)
+}
+
+// GetTabletsByShardCell returns the tablets in the given shard. It can return
+// ErrPartialResult if it couldn't read all the cells, or all the individual
+// tablets, in which case the result is valid, but partial.
+func (ts *Server) GetTabletsByShardCell(ctx context.Context, keyspace, shard string, cells []string) ([]*TabletInfo, error) {
+ span, ctx := trace.NewSpan(ctx, "topo.GetTabletsByShardCell")
+ span.Annotate("keyspace", keyspace)
+ span.Annotate("shard", shard)
+ span.Annotate("num_cells", len(cells))
+ defer span.Finish()
+ var err error
+
+ if len(cells) == 0 {
+ cells, err = ts.GetCellInfoNames(ctx)
+ if err != nil {
+ return nil, err
+ }
+ if len(cells) == 0 { // Nothing to do
+ return nil, nil
+ }
+ }
+
+ // Divide the concurrency limit by the number of cells. If there are more
+ // cells than the limit, default to concurrency of 1.
+ cellConcurrency := 1
+ if len(cells) < DefaultConcurrency {
+ cellConcurrency = DefaultConcurrency / len(cells)
+ }
+
+ mu := sync.Mutex{}
+ eg, ctx := errgroup.WithContext(ctx)
+ eg.SetLimit(DefaultConcurrency)
+
+ tablets := make([]*TabletInfo, 0, len(cells))
+ var kss *KeyspaceShard
+ if keyspace != "" {
+ kss = &KeyspaceShard{
+ Keyspace: keyspace,
+ Shard: shard,
+ }
+ }
+ options := &GetTabletsByCellOptions{
+ Concurrency: cellConcurrency,
+ KeyspaceShard: kss,
+ }
+ for _, cell := range cells {
+ eg.Go(func() error {
+ t, err := ts.GetTabletsByCell(ctx, cell, options)
+ if err != nil {
+ return vterrors.Wrapf(err, "GetTabletsByCell for %v failed.", cell)
+ }
+ mu.Lock()
+ defer mu.Unlock()
+ tablets = append(tablets, t...)
+ return nil
+ })
+ }
+ if err := eg.Wait(); err != nil {
+ log.Warningf("GetTabletsByShardCell(%v,%v): got partial result: %v", keyspace, shard, err)
+ return tablets, NewError(PartialResult, shard)
+ }
+ return tablets, nil
+}
+
// GetTabletMapForShard returns the tablets for a shard. It can return
// ErrPartialResult if it couldn't read all the cells, or all
// the individual tablets, in which case the map is valid, but partial.
diff --git a/go/vt/topo/tablet.go b/go/vt/topo/tablet.go
index 671a0f43905..e52e753a36b 100644
--- a/go/vt/topo/tablet.go
+++ b/go/vt/topo/tablet.go
@@ -236,6 +236,9 @@ func (ts *Server) GetTabletAliasesByCell(ctx context.Context, cell string) ([]*t
type GetTabletsByCellOptions struct {
// Concurrency controls the maximum number of concurrent calls to GetTablet.
Concurrency int
+ // KeyspaceShard is the optional keyspace/shard that tablets must match.
+ // An empty shard value will match all shards in the keyspace.
+ KeyspaceShard *KeyspaceShard
}
// GetTabletsByCell returns all the tablets in the cell.
@@ -263,15 +266,27 @@ func (ts *Server) GetTabletsByCell(ctx context.Context, cellAlias string, opt *G
return nil, err
}
- tablets := make([]*TabletInfo, len(listResults))
+ var capHint int
+ if opt != nil && opt.KeyspaceShard == nil {
+ capHint = len(listResults)
+ }
+
+ tablets := make([]*TabletInfo, 0, capHint)
for n := range listResults {
tablet := &topodatapb.Tablet{}
if err := tablet.UnmarshalVT(listResults[n].Value); err != nil {
return nil, err
}
- tablets[n] = &TabletInfo{Tablet: tablet, version: listResults[n].Version}
+ if opt != nil && opt.KeyspaceShard != nil && opt.KeyspaceShard.Keyspace != "" {
+ if opt.KeyspaceShard.Keyspace != tablet.Keyspace {
+ continue
+ }
+ if opt.KeyspaceShard.Shard != "" && opt.KeyspaceShard.Shard != tablet.Shard {
+ continue
+ }
+ }
+ tablets = append(tablets, &TabletInfo{Tablet: tablet, version: listResults[n].Version})
}
-
return tablets, nil
}
diff --git a/go/vt/topo/tablet_test.go b/go/vt/topo/tablet_test.go
index 3a0153a11b5..e659a0d01b9 100644
--- a/go/vt/topo/tablet_test.go
+++ b/go/vt/topo/tablet_test.go
@@ -17,8 +17,10 @@ limitations under the License.
package topo_test
import (
+ "cmp"
"context"
"errors"
+ "slices"
"testing"
"github.com/stretchr/testify/assert"
@@ -34,43 +36,296 @@ import (
// GetTabletsByCell first tries to get all the tablets using List.
// If the response is too large, we will get an error, and fall back to one tablet at a time.
func TestServerGetTabletsByCell(t *testing.T) {
+ const cell = "zone1"
+ const keyspace = "keyspace"
+ const shard = "shard"
+
tests := []struct {
- name string
- tablets int
- opt *topo.GetTabletsByCellOptions
- listError error
+ name string
+ createShardTablets int
+ expectedTablets []*topodatapb.Tablet
+ opt *topo.GetTabletsByCellOptions
+ listError error
+ keyspaceShards []*topo.KeyspaceShard
}{
{
- name: "negative concurrency",
- tablets: 1,
+ name: "negative concurrency",
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ },
+ createShardTablets: 1,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
// Ensure this doesn't panic.
opt: &topo.GetTabletsByCellOptions{Concurrency: -1},
},
{
- name: "single",
- tablets: 1,
+ name: "single",
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ },
+ createShardTablets: 1,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
// Make sure the defaults apply as expected.
opt: nil,
},
{
name: "multiple",
- // should work with more than 1 tablet
- tablets: 32,
- opt: &topo.GetTabletsByCellOptions{Concurrency: 8},
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ },
+ // Should work with more than 1 tablet
+ createShardTablets: 4,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(2),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(2),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(3),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(3),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(4),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(4),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
+ opt: &topo.GetTabletsByCellOptions{Concurrency: 8},
},
{
name: "multiple with list error",
- // should work with more than 1 tablet when List returns an error
- tablets: 32,
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ },
+ // Should work with more than 1 tablet when List returns an error
+ createShardTablets: 4,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(2),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(2),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(3),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(3),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(4),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(4),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
opt: &topo.GetTabletsByCellOptions{Concurrency: 8},
listError: topo.NewError(topo.ResourceExhausted, ""),
},
+ {
+ name: "filtered by keyspace and shard",
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ {Keyspace: "filtered", Shard: "-"},
+ },
+ // Should create 2 tablets in 2 different shards (4 total)
+ // but only a single shard is returned
+ createShardTablets: 2,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(2),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(2),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
+ opt: &topo.GetTabletsByCellOptions{
+ Concurrency: 1,
+ KeyspaceShard: &topo.KeyspaceShard{
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ },
+ },
+ {
+ name: "filtered by keyspace and no shard",
+ keyspaceShards: []*topo.KeyspaceShard{
+ {Keyspace: keyspace, Shard: shard},
+ {Keyspace: keyspace, Shard: shard + "2"},
+ },
+ // Should create 2 tablets in 2 different shards (4 total)
+ // in the same keyspace and both shards are returned due to
+ // empty shard
+ createShardTablets: 2,
+ expectedTablets: []*topodatapb.Tablet{
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(1),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(1),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(2),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(2),
+ },
+ Keyspace: keyspace,
+ Shard: shard,
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(3),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(3),
+ },
+ Keyspace: keyspace,
+ Shard: shard + "2",
+ },
+ {
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uint32(4),
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(4),
+ },
+ Keyspace: keyspace,
+ Shard: shard + "2",
+ },
+ },
+ opt: &topo.GetTabletsByCellOptions{
+ Concurrency: 1,
+ KeyspaceShard: &topo.KeyspaceShard{
+ Keyspace: keyspace,
+ Shard: "",
+ },
+ },
+ },
}
- const cell = "zone1"
- const keyspace = "keyspace"
- const shard = "shard"
-
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
@@ -84,37 +339,53 @@ func TestServerGetTabletsByCell(t *testing.T) {
// Create an ephemeral keyspace and generate shard records within
// the keyspace to fetch later.
- require.NoError(t, ts.CreateKeyspace(ctx, keyspace, &topodatapb.Keyspace{}))
- require.NoError(t, ts.CreateShard(ctx, keyspace, shard))
-
- tablets := make([]*topo.TabletInfo, tt.tablets)
+ createdKeyspaces := make(map[string]bool, len(tt.keyspaceShards))
+ for _, kss := range tt.keyspaceShards {
+ if !createdKeyspaces[kss.Keyspace] {
+ require.NoError(t, ts.CreateKeyspace(ctx, kss.Keyspace, &topodatapb.Keyspace{}))
+ createdKeyspaces[kss.Keyspace] = true
+ }
+ require.NoError(t, ts.CreateShard(ctx, kss.Keyspace, kss.Shard))
+ }
- for i := 0; i < tt.tablets; i++ {
- tablet := &topodatapb.Tablet{
- Alias: &topodatapb.TabletAlias{
- Cell: cell,
- Uid: uint32(i),
- },
- Hostname: "host1",
- PortMap: map[string]int32{
- "vt": int32(i),
- },
- Keyspace: keyspace,
- Shard: shard,
+ var uid uint32 = 1
+ for _, kss := range tt.keyspaceShards {
+ for i := 0; i < tt.createShardTablets; i++ {
+ tablet := &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: cell,
+ Uid: uid,
+ },
+ Hostname: "host1",
+ PortMap: map[string]int32{
+ "vt": int32(uid),
+ },
+ Keyspace: kss.Keyspace,
+ Shard: kss.Shard,
+ }
+ require.NoError(t, ts.CreateTablet(ctx, tablet))
+ uid++
}
- tInfo := &topo.TabletInfo{Tablet: tablet}
- tablets[i] = tInfo
- require.NoError(t, ts.CreateTablet(ctx, tablet))
}
// Verify that we return a complete list of tablets and that each
// tablet matches what we expect.
out, err := ts.GetTabletsByCell(ctx, cell, tt.opt)
require.NoError(t, err)
- require.Len(t, out, tt.tablets)
+ require.Len(t, out, len(tt.expectedTablets))
+
+ slices.SortFunc(out, func(i, j *topo.TabletInfo) int {
+ return cmp.Compare(i.Alias.Uid, j.Alias.Uid)
+ })
+ slices.SortFunc(tt.expectedTablets, func(i, j *topodatapb.Tablet) int {
+ return cmp.Compare(i.Alias.Uid, j.Alias.Uid)
+ })
- for i, tab := range tablets {
- require.Equal(t, tab.Tablet, tablets[i].Tablet)
+ for i, tablet := range out {
+ expected := tt.expectedTablets[i]
+ require.Equal(t, expected.Alias.String(), tablet.Alias.String())
+ require.Equal(t, expected.Keyspace, tablet.Keyspace)
+ require.Equal(t, expected.Shard, tablet.Shard)
}
})
}
diff --git a/go/vt/vtorc/logic/tablet_discovery.go b/go/vt/vtorc/logic/tablet_discovery.go
index 25820bc5184..e9bbcee35cb 100644
--- a/go/vt/vtorc/logic/tablet_discovery.go
+++ b/go/vt/vtorc/logic/tablet_discovery.go
@@ -35,7 +35,6 @@ import (
"vitess.io/vitess/go/vt/log"
"vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/topo/topoproto"
- "vitess.io/vitess/go/vt/topotools"
"vitess.io/vitess/go/vt/vtorc/config"
"vitess.io/vitess/go/vt/vtorc/db"
"vitess.io/vitess/go/vt/vtorc/inst"
@@ -156,7 +155,7 @@ func refreshTabletsUsing(loader func(tabletAlias string), forceRefresh bool) {
}
func refreshTabletsInCell(ctx context.Context, cell string, loader func(tabletAlias string), forceRefresh bool) {
- tablets, err := topotools.GetTabletMapForCell(ctx, ts, cell)
+ tablets, err := ts.GetTabletsByCell(ctx, cell, &topo.GetTabletsByCellOptions{Concurrency: topo.DefaultConcurrency})
if err != nil {
log.Errorf("Error fetching topo info for cell %v: %v", cell, err)
return
@@ -188,7 +187,7 @@ func refreshTabletInfoOfShard(ctx context.Context, keyspace, shard string) {
}
func refreshTabletsInKeyspaceShard(ctx context.Context, keyspace, shard string, loader func(tabletAlias string), forceRefresh bool, tabletsToIgnore []string) {
- tablets, err := ts.GetTabletMapForShard(ctx, keyspace, shard)
+ tablets, err := ts.GetTabletsByShard(ctx, keyspace, shard)
if err != nil {
log.Errorf("Error fetching tablets for keyspace/shard %v/%v: %v", keyspace, shard, err)
return
@@ -198,7 +197,7 @@ func refreshTabletsInKeyspaceShard(ctx context.Context, keyspace, shard string,
refreshTablets(tablets, query, args, loader, forceRefresh, tabletsToIgnore)
}
-func refreshTablets(tablets map[string]*topo.TabletInfo, query string, args []any, loader func(tabletAlias string), forceRefresh bool, tabletsToIgnore []string) {
+func refreshTablets(tablets []*topo.TabletInfo, query string, args []any, loader func(tabletAlias string), forceRefresh bool, tabletsToIgnore []string) {
// Discover new tablets.
latestInstances := make(map[string]bool)
var wg sync.WaitGroup
From e87457ee2401a8bb121a0befda756708fe826414 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Wed, 6 Nov 2024 14:11:05 -0500
Subject: [PATCH 34/78] VReplication: Relax restrictions on Cancel and
ReverseTraffic when writes not involved (#17128)
Signed-off-by: Matt Lord
---
.../vreplication/multi_tenant_test.go | 12 +
.../vreplication_vtctldclient_cli_test.go | 24 +-
go/vt/vtctl/workflow/server.go | 76 +++--
go/vt/vtctl/workflow/server_test.go | 285 ++++++++++++++++--
go/vt/vtctl/workflow/utils.go | 2 +-
5 files changed, 344 insertions(+), 55 deletions(-)
diff --git a/go/test/endtoend/vreplication/multi_tenant_test.go b/go/test/endtoend/vreplication/multi_tenant_test.go
index c82ee8a620f..6bceaeefc6e 100644
--- a/go/test/endtoend/vreplication/multi_tenant_test.go
+++ b/go/test/endtoend/vreplication/multi_tenant_test.go
@@ -214,6 +214,18 @@ func TestMultiTenantSimple(t *testing.T) {
require.Zero(t, rowCount)
})
+ t.Run("cancel after switching reads", func(t *testing.T) {
+ // First let's test canceling the workflow after only switching reads
+ // to ensure that it properly cleans up all of the state.
+ createFunc()
+ mt.SwitchReads()
+ confirmOnlyReadsSwitched(t)
+ mt.Cancel()
+ confirmNoRoutingRules(t)
+ rowCount := getRowCount(t, vtgateConn, fmt.Sprintf("%s.%s", targetKeyspace, "t1"))
+ require.Zero(t, rowCount)
+ })
+
// Create again and run it to completion.
createFunc()
diff --git a/go/test/endtoend/vreplication/vreplication_vtctldclient_cli_test.go b/go/test/endtoend/vreplication/vreplication_vtctldclient_cli_test.go
index 4b556955815..4ee977c4d74 100644
--- a/go/test/endtoend/vreplication/vreplication_vtctldclient_cli_test.go
+++ b/go/test/endtoend/vreplication/vreplication_vtctldclient_cli_test.go
@@ -304,6 +304,22 @@ func testMoveTablesFlags3(t *testing.T, sourceKeyspace, targetKeyspace string, t
// Confirm that the source tables were renamed.
require.True(t, checkTablesExist(t, "zone1-100", []string{"_customer2_old"}))
require.False(t, checkTablesExist(t, "zone1-100", []string{"customer2"}))
+
+ // Confirm that we can cancel a workflow after ONLY switching read traffic.
+ mt = createMoveTables(t, sourceKeyspace, targetKeyspace, workflowName, "customer", createFlags, nil, nil)
+ mt.Start() // Need to start because we set stop-after-copy to true.
+ waitForWorkflowState(t, vc, ksWorkflow, binlogdatapb.VReplicationWorkflowState_Running.String())
+ for _, tab := range targetTabs {
+ catchup(t, tab, workflowName, "MoveTables")
+ }
+ mt.SwitchReads()
+ wf := mt.(iWorkflow)
+ validateReadsRouteToTarget(t, "replica")
+ validateTableRoutingRule(t, "customer", "replica", sourceKs, targetKs)
+ validateTableRoutingRule(t, "customer", "", targetKs, sourceKs)
+ confirmStates(t, &wf, wrangler.WorkflowStateNotSwitched, wrangler.WorkflowStateReadsSwitched)
+ mt.Cancel()
+ confirmNoRoutingRules(t)
}
// Create two workflows in order to confirm that listing all workflows works.
@@ -450,6 +466,7 @@ func splitShard(t *testing.T, keyspace, workflowName, sourceShards, targetShards
"--all-cells", "--format=json",
"--config-overrides", mapToCSV(overrides),
}
+
rs := newReshard(vc, &reshardWorkflow{
workflowInfo: &workflowInfo{
vc: vc,
@@ -460,7 +477,6 @@ func splitShard(t *testing.T, keyspace, workflowName, sourceShards, targetShards
targetShards: targetShards,
createFlags: createFlags,
}, workflowFlavorVtctld)
-
ksWorkflow := fmt.Sprintf("%s.%s", keyspace, workflowName)
wf := rs.(iWorkflow)
rs.Create()
@@ -769,8 +785,10 @@ func getRoutingRules(t *testing.T) *vschemapb.RoutingRules {
}
func confirmNoRoutingRules(t *testing.T) {
- routingRulesResponse := getRoutingRules(t)
- require.Zero(t, len(routingRulesResponse.Rules))
+ rrRes := getRoutingRules(t)
+ require.Zero(t, len(rrRes.Rules))
+ krrRes := getKeyspaceRoutingRules(t, vc)
+ require.Zero(t, len(krrRes.Rules))
}
func confirmRoutingRulesExist(t *testing.T) {
diff --git a/go/vt/vtctl/workflow/server.go b/go/vt/vtctl/workflow/server.go
index b47d99118ce..7c49de58c9b 100644
--- a/go/vt/vtctl/workflow/server.go
+++ b/go/vt/vtctl/workflow/server.go
@@ -148,9 +148,9 @@ var (
// ErrMultipleTargetKeyspaces occurs when a workflow somehow has multiple
// target keyspaces across different shard primaries. This should be
// impossible.
- ErrMultipleTargetKeyspaces = errors.New("multiple target keyspaces for a single workflow")
- ErrWorkflowNotFullySwitched = errors.New("cannot complete workflow because you have not yet switched all read and write traffic")
- ErrWorkflowPartiallySwitched = errors.New("cannot cancel workflow because you have already switched some or all read and write traffic")
+ ErrMultipleTargetKeyspaces = errors.New("multiple target keyspaces for a single workflow")
+ ErrWorkflowCompleteNotFullySwitched = errors.New("cannot complete workflow because you have not yet switched all read and write traffic")
+ ErrWorkflowDeleteWritesSwitched = errors.New("cannot delete workflow because you have already switched write traffic")
)
// Server provides an API to work with Vitess workflows, like vreplication
@@ -1736,7 +1736,7 @@ func (s *Server) MoveTablesComplete(ctx context.Context, req *vtctldatapb.MoveTa
}
if !state.WritesSwitched || len(state.ReplicaCellsNotSwitched) > 0 || len(state.RdonlyCellsNotSwitched) > 0 {
- return nil, ErrWorkflowNotFullySwitched
+ return nil, ErrWorkflowCompleteNotFullySwitched
}
var renameTable TableRemovalType
if req.RenameTables {
@@ -2111,10 +2111,12 @@ func (s *Server) WorkflowDelete(ctx context.Context, req *vtctldatapb.WorkflowDe
}
if ts.workflowType != binlogdatapb.VReplicationWorkflowType_CreateLookupIndex {
- // Return an error if the workflow traffic is partially switched.
- if state.WritesSwitched || len(state.ReplicaCellsSwitched) > 0 || len(state.RdonlyCellsSwitched) > 0 {
- return nil, ErrWorkflowPartiallySwitched
+ // Return an error if the write workflow traffic is switched.
+ if state.WritesSwitched {
+ return nil, ErrWorkflowDeleteWritesSwitched
}
+ // If only reads have been switched, then we can delete the
+ // workflow and its related artifacts.
}
// Lock the workflow for deletion.
@@ -2158,22 +2160,21 @@ func (s *Server) WorkflowDelete(ctx context.Context, req *vtctldatapb.WorkflowDe
ts.workflowType)
}
// We need to delete the rows that the target tables would have for the tenant.
- // We don't cleanup other related artifacts since they are not tied to the tenant.
if !req.GetKeepData() {
if err := s.deleteTenantData(ctx, ts, req.DeleteBatchSize); err != nil {
return nil, vterrors.Wrapf(err, "failed to fully delete all migrated data for tenant %s, please retry the operation",
ts.options.TenantId)
}
}
- } else {
- // Cleanup related data and artifacts. There are none for a LookupVindex workflow.
- if ts.workflowType != binlogdatapb.VReplicationWorkflowType_CreateLookupIndex {
- if _, err := s.dropTargets(ctx, ts, req.GetKeepData(), req.GetKeepRoutingRules(), false); err != nil {
- if topo.IsErrType(err, topo.NoNode) {
- return nil, vterrors.Wrapf(err, "%s keyspace does not exist", req.GetKeyspace())
- }
- return nil, err
+ }
+
+ // Cleanup related data and artifacts. There are none for a LookupVindex workflow.
+ if ts.workflowType != binlogdatapb.VReplicationWorkflowType_CreateLookupIndex {
+ if _, err := s.dropTargets(ctx, ts, req.GetKeepData(), req.GetKeepRoutingRules(), false); err != nil {
+ if topo.IsErrType(err, topo.NoNode) {
+ return nil, vterrors.Wrapf(err, "%s keyspace does not exist", req.GetKeyspace())
}
+ return nil, err
}
}
@@ -2697,8 +2698,10 @@ func (s *Server) dropTargets(ctx context.Context, ts *trafficSwitcher, keepData,
if !keepData {
switch ts.MigrationType() {
case binlogdatapb.MigrationType_TABLES:
- if err := sw.removeTargetTables(ctx); err != nil {
- return nil, err
+ if !ts.IsMultiTenantMigration() {
+ if err := sw.removeTargetTables(ctx); err != nil {
+ return nil, err
+ }
}
if err := sw.dropSourceDeniedTables(ctx); err != nil {
return nil, err
@@ -3239,12 +3242,13 @@ func (s *Server) WorkflowSwitchTraffic(ctx context.Context, req *vtctldatapb.Wor
return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "invalid action for Migrate workflow: SwitchTraffic")
}
- if direction == DirectionBackward && ts.IsMultiTenantMigration() {
- // In a multi-tenant migration, multiple migrations would be writing to the same
- // table, so we can't stop writes like we do with MoveTables, using denied tables,
- // since it would block all other migrations as well as traffic for tenants which
- // have already been migrated.
- return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "cannot reverse traffic for multi-tenant migrations")
+ if ts.IsMultiTenantMigration() {
+ // Multi-tenant migrations use keyspace routing rules, so we need to update the state
+ // using them.
+ err = updateKeyspaceRoutingState(ctx, ts.TopoServer(), ts.sourceKeyspace, ts.targetKeyspace, startState)
+ if err != nil {
+ return nil, vterrors.Wrap(err, "failed to update multi-tenant workflow state using keyspace routing rules")
+ }
}
// We need this to know when there isn't a (non-FROZEN) reverse workflow to use.
@@ -3255,6 +3259,13 @@ func (s *Server) WorkflowSwitchTraffic(ctx context.Context, req *vtctldatapb.Wor
(direction == DirectionBackward && !startState.WritesSwitched)
if direction == DirectionBackward && !onlySwitchingReads {
+ if ts.IsMultiTenantMigration() {
+ // In a multi-tenant migration, multiple migrations would be writing to the same
+ // table, so we can't stop writes like we do with MoveTables, using denied tables,
+ // since it would block all other migrations as well as traffic for tenants which
+ // have already been migrated.
+ return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "cannot reverse write traffic for multi-tenant migrations")
+ }
// This means that the main workflow is FROZEN and the reverse workflow
// exists. So we update the starting state so that we're using the reverse
// workflow and we can move forward with a normal traffic switch forward
@@ -3336,6 +3347,15 @@ func (s *Server) WorkflowSwitchTraffic(ctx context.Context, req *vtctldatapb.Wor
resp.StartState = startState.String()
s.Logger().Infof("Before reloading workflow state after switching traffic: %+v\n", resp.StartState)
_, currentState, err := s.getWorkflowState(ctx, ts.targetKeyspace, ts.workflow)
+ if ts.IsMultiTenantMigration() {
+ // Multi-tenant migrations use keyspace routing rules, so we need to update the state
+ // using them.
+ sourceKs, targetKs := ts.sourceKeyspace, ts.targetKeyspace
+ if TrafficSwitchDirection(req.Direction) == DirectionBackward {
+ sourceKs, targetKs = targetKs, sourceKs
+ }
+ err = updateKeyspaceRoutingState(ctx, ts.TopoServer(), sourceKs, targetKs, currentState)
+ }
if err != nil {
resp.CurrentState = fmt.Sprintf("Error reloading workflow state after switching traffic: %v", err)
} else {
@@ -3387,11 +3407,7 @@ func (s *Server) switchReads(ctx context.Context, req *vtctldatapb.WorkflowSwitc
// shard level traffic switching is all or nothing
trafficSwitchingIsAllOrNothing = true
case ts.MigrationType() == binlogdatapb.MigrationType_TABLES && ts.IsMultiTenantMigration():
- if direction == DirectionBackward {
- return defaultErrorHandler(ts.Logger(), "invalid request", vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT,
- "requesting reversal of read traffic for multi-tenant migrations is not supported"))
- }
- // For multi-tenant migrations, we only support switching traffic to all cells at once
+ // For multi-tenant migrations, we only support switching traffic to all cells at once.
allCells, err := ts.TopoServer().GetCellInfoNames(ctx)
if err != nil {
return nil, err
@@ -3415,7 +3431,7 @@ func (s *Server) switchReads(ctx context.Context, req *vtctldatapb.WorkflowSwitc
}
if direction == DirectionBackward && switchRdonly && len(state.RdonlyCellsSwitched) == 0 {
return defaultErrorHandler(ts.Logger(), "invalid request", vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION,
- "requesting reversal of SwitchReads for RDONLYs but RDONLY reads have not been switched"))
+ "requesting reversal of read traffic for RDONLYs but RDONLY reads have not been switched"))
}
}
diff --git a/go/vt/vtctl/workflow/server_test.go b/go/vt/vtctl/workflow/server_test.go
index b7783fc2945..dbe06ab1a47 100644
--- a/go/vt/vtctl/workflow/server_test.go
+++ b/go/vt/vtctl/workflow/server_test.go
@@ -753,6 +753,139 @@ func TestWorkflowDelete(t *testing.T) {
postFunc func(t *testing.T, env *testEnv)
expectedLogs []string
}{
+ {
+ name: "delete workflow",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ expectedTargetQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table1Name),
+ result: &querypb.QueryResult{},
+ },
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table2Name),
+ result: &querypb.QueryResult{},
+ },
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table3Name),
+ result: &querypb.QueryResult{},
+ },
+ },
+ want: &vtctldatapb.WorkflowDeleteResponse{
+ Summary: fmt.Sprintf("Successfully cancelled the %s workflow in the %s keyspace",
+ workflowName, targetKeyspaceName),
+ Details: []*vtctldatapb.WorkflowDeleteResponse_TabletInfo{
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID},
+ Deleted: true,
+ },
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID + tabletUIDStep},
+ Deleted: true,
+ },
+ },
+ },
+ },
+ {
+ name: "delete workflow with only reads switched",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ expectedSourceQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("delete from _vt.vreplication where db_name = 'vt_%s' and workflow = '%s'",
+ sourceKeyspaceName, ReverseWorkflowName(workflowName)),
+ result: &querypb.QueryResult{},
+ },
+ },
+ expectedTargetQueries: []*queryResult{
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table1Name),
+ result: &querypb.QueryResult{},
+ },
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table2Name),
+ result: &querypb.QueryResult{},
+ },
+ {
+ query: fmt.Sprintf("drop table `vt_%s`.`%s`", targetKeyspaceName, table3Name),
+ result: &querypb.QueryResult{},
+ },
+ },
+ preFunc: func(t *testing.T, env *testEnv) {
+ // Setup the routing rules as they would be after having previously done SwitchTraffic
+ // for replica and rdonly tablets.
+ env.updateTableRoutingRules(t, ctx, roTabletTypes, []string{table1Name, table2Name, table3Name},
+ sourceKeyspaceName, targetKeyspaceName, targetKeyspaceName)
+ },
+ want: &vtctldatapb.WorkflowDeleteResponse{
+ Summary: fmt.Sprintf("Successfully cancelled the %s workflow in the %s keyspace",
+ workflowName, targetKeyspaceName),
+ Details: []*vtctldatapb.WorkflowDeleteResponse_TabletInfo{
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID},
+ Deleted: true,
+ },
+ {
+ Tablet: &topodatapb.TabletAlias{Cell: defaultCellName, Uid: startingTargetTabletUID + tabletUIDStep},
+ Deleted: true,
+ },
+ },
+ },
+ },
+ {
+ name: "delete workflow with writes switched",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowDeleteRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ },
+ preFunc: func(t *testing.T, env *testEnv) {
+ // Setup the routing rules as they would be after having previously
+ // done SwitchTraffic with for all tablet types.
+ env.updateTableRoutingRules(t, ctx, allTabletTypes, []string{table1Name, table2Name, table3Name},
+ sourceKeyspaceName, targetKeyspaceName, targetKeyspaceName)
+ },
+ wantErr: ErrWorkflowDeleteWritesSwitched.Error(),
+ postFunc: func(t *testing.T, env *testEnv) {
+ // Clear out the routing rules we put in place.
+ err := env.ts.SaveRoutingRules(ctx, &vschemapb.RoutingRules{})
+ require.NoError(t, err)
+ },
+ },
{
name: "missing table",
sourceKeyspace: &testKeyspace{
@@ -983,7 +1116,7 @@ func TestWorkflowDelete(t *testing.T) {
wantErr: "unsupported workflow type \"Reshard\" for multi-tenant migration",
},
{
- name: "multi-tenant workflow without predicate ",
+ name: "multi-tenant workflow without predicate",
sourceKeyspace: &testKeyspace{
KeyspaceName: sourceKeyspaceName,
ShardNames: []string{"0"},
@@ -1339,6 +1472,7 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
name string
sourceKeyspace, targetKeyspace *testKeyspace
req *vtctldatapb.WorkflowSwitchTrafficRequest
+ multiTenant bool
preFunc func(env *testEnv)
want *vtctldatapb.WorkflowSwitchTrafficResponse
wantErr bool
@@ -1409,6 +1543,48 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
CurrentState: "Reads Not Switched. Writes Not Switched",
},
},
+ {
+ name: "backward for multi-tenant workflow and read-only tablets",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ req: &vtctldatapb.WorkflowSwitchTrafficRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ Direction: int32(DirectionBackward),
+ TabletTypes: roTabletTypes,
+ },
+ multiTenant: true,
+ want: &vtctldatapb.WorkflowSwitchTrafficResponse{
+ Summary: fmt.Sprintf("ReverseTraffic was successful for workflow %s.%s", targetKeyspaceName, workflowName),
+ StartState: "All Reads Switched. Writes Not Switched",
+ CurrentState: "Reads Not Switched. Writes Not Switched",
+ },
+ },
+ {
+ name: "backward for multi-tenant workflow for all tablet types",
+ sourceKeyspace: &testKeyspace{
+ KeyspaceName: sourceKeyspaceName,
+ ShardNames: []string{"0"},
+ },
+ targetKeyspace: &testKeyspace{
+ KeyspaceName: targetKeyspaceName,
+ ShardNames: []string{"-80", "80-"},
+ },
+ multiTenant: true,
+ req: &vtctldatapb.WorkflowSwitchTrafficRequest{
+ Keyspace: targetKeyspaceName,
+ Workflow: workflowName,
+ Direction: int32(DirectionBackward),
+ TabletTypes: allTabletTypes,
+ },
+ wantErr: true,
+ },
{
name: "forward with tablet refresh error",
sourceKeyspace: &testKeyspace{
@@ -1459,6 +1635,7 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
},
},
}
+
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
require.NotNil(t, tc.sourceKeyspace)
@@ -1467,6 +1644,7 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
env := newTestEnv(t, ctx, defaultCellName, tc.sourceKeyspace, tc.targetKeyspace)
defer env.close()
env.tmc.schema = schema
+
if tc.req.Direction == int32(DirectionForward) {
env.tmc.expectVRQueryResultOnKeyspaceTablets(tc.targetKeyspace.KeyspaceName, copyTableQR)
env.tmc.expectVRQueryResultOnKeyspaceTablets(tc.targetKeyspace.KeyspaceName, cutoverQR)
@@ -1508,9 +1686,47 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
env.tmc.expectVRQueryResultOnKeyspaceTablets(tc.sourceKeyspace.KeyspaceName, freezeReverseWFQR)
}
}
+
if tc.preFunc != nil {
tc.preFunc(env)
}
+
+ if tc.multiTenant {
+ rwr := &readVReplicationWorkflowRequestResponse{
+ req: &tabletmanagerdatapb.ReadVReplicationWorkflowRequest{
+ Workflow: workflowName,
+ },
+ res: &tabletmanagerdatapb.ReadVReplicationWorkflowResponse{
+ Options: `{"tenant_id": "1"}`, // This is all we need for it to be considered a multi-tenant workflow
+ Streams: []*tabletmanagerdatapb.ReadVReplicationWorkflowResponse_Stream{
+ {
+ Id: 1,
+ Bls: &binlogdatapb.BinlogSource{
+ Keyspace: sourceKeyspaceName,
+ Shard: "0",
+ Filter: &binlogdatapb.Filter{
+ Rules: []*binlogdatapb.Rule{
+ {
+ Match: "t1",
+ Filter: "select * from t1",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+ env.tmc.expectReadVReplicationWorkflowRequestOnTargetTablets(rwr)
+ // Multi-tenant workflows also use keyspace routing rules. So we set those
+ // up as if we've already switched the traffic.
+ if tc.req.Direction == int32(DirectionBackward) {
+ err := changeKeyspaceRouting(ctx, env.ts, tc.req.TabletTypes, tc.sourceKeyspace.KeyspaceName,
+ tc.targetKeyspace.KeyspaceName, "SwitchTraffic")
+ require.NoError(t, err)
+ }
+ }
+
got, err := env.ws.WorkflowSwitchTraffic(ctx, tc.req)
if tc.wantErr {
require.Error(t, err)
@@ -1519,34 +1735,61 @@ func TestMoveTablesTrafficSwitching(t *testing.T) {
require.NoError(t, err)
require.Equal(t, tc.want.String(), got.String(), "Server.WorkflowSwitchTraffic() = %v, want %v", got, tc.want)
- // Confirm that we have the expected routing rules.
- rr, err := env.ts.GetRoutingRules(ctx)
- require.NoError(t, err)
- for _, rr := range rr.Rules {
- _, rrTabletType, found := strings.Cut(rr.FromTable, "@")
- if !found { // No @ is primary
- rrTabletType = topodatapb.TabletType_PRIMARY.String()
+ if tc.multiTenant { // Confirm the keyspace routing rules
+ gotKrrs, err := env.ts.GetKeyspaceRoutingRules(ctx)
+ require.NoError(t, err)
+ sort.Slice(gotKrrs.Rules, func(i, j int) bool {
+ return gotKrrs.Rules[i].FromKeyspace < gotKrrs.Rules[j].FromKeyspace
+ })
+ expectedKrrs := &vschemapb.KeyspaceRoutingRules{}
+ for _, tabletType := range tc.req.TabletTypes {
+ suffix := ""
+ if tabletType != topodatapb.TabletType_PRIMARY {
+ suffix = fmt.Sprintf("@%s", strings.ToLower(tabletType.String()))
+ }
+ toKs, fromKs := tc.sourceKeyspace.KeyspaceName, tc.targetKeyspace.KeyspaceName
+ if tc.req.Direction == int32(DirectionBackward) {
+ fromKs, toKs = toKs, fromKs
+ }
+ expectedKrrs.Rules = append(expectedKrrs.Rules, &vschemapb.KeyspaceRoutingRule{
+ FromKeyspace: fromKs + suffix,
+ ToKeyspace: toKs,
+ })
}
- tabletType, err := topoproto.ParseTabletType(rrTabletType)
+ sort.Slice(expectedKrrs.Rules, func(i, j int) bool {
+ return expectedKrrs.Rules[i].FromKeyspace < expectedKrrs.Rules[j].FromKeyspace
+ })
+ require.Equal(t, expectedKrrs.String(), gotKrrs.String())
+ } else { // Confirm the [table] routing rules
+ rr, err := env.ts.GetRoutingRules(ctx)
require.NoError(t, err)
+ for _, rr := range rr.Rules {
+ _, rrTabletType, found := strings.Cut(rr.FromTable, "@")
+ if !found { // No @ is primary
+ rrTabletType = topodatapb.TabletType_PRIMARY.String()
+ }
+ tabletType, err := topoproto.ParseTabletType(rrTabletType)
+ require.NoError(t, err)
- var to string
- if slices.Contains(tc.req.TabletTypes, tabletType) {
- to = fmt.Sprintf("%s.%s", tc.targetKeyspace.KeyspaceName, tableName)
- if tc.req.Direction == int32(DirectionBackward) {
+ var to string
+ if slices.Contains(tc.req.TabletTypes, tabletType) {
+ to = fmt.Sprintf("%s.%s", tc.targetKeyspace.KeyspaceName, tableName)
+ if tc.req.Direction == int32(DirectionBackward) {
+ to = fmt.Sprintf("%s.%s", tc.sourceKeyspace.KeyspaceName, tableName)
+ }
+ } else {
to = fmt.Sprintf("%s.%s", tc.sourceKeyspace.KeyspaceName, tableName)
+ if tc.req.Direction == int32(DirectionBackward) {
+ to = fmt.Sprintf("%s.%s", tc.targetKeyspace.KeyspaceName, tableName)
+ }
}
- } else {
- to = fmt.Sprintf("%s.%s", tc.sourceKeyspace.KeyspaceName, tableName)
- if tc.req.Direction == int32(DirectionBackward) {
- to = fmt.Sprintf("%s.%s", tc.targetKeyspace.KeyspaceName, tableName)
+ for _, tt := range rr.ToTables {
+ require.Equal(t, to, tt, "Additional info: tablet type: %s, rr.FromTable: %s, rr.ToTables: %v, to string: %s",
+ tabletType.String(), rr.FromTable, rr.ToTables, to)
}
}
- for _, tt := range rr.ToTables {
- require.Equal(t, to, tt, "Additional info: tablet type: %s, rr.FromTable: %s, rr.ToTables: %v, to string: %s",
- tabletType.String(), rr.FromTable, rr.ToTables, to)
- }
}
+
// Confirm that we have the expected denied tables entries.
if slices.Contains(tc.req.TabletTypes, topodatapb.TabletType_PRIMARY) {
for _, keyspace := range []*testKeyspace{tc.sourceKeyspace, tc.targetKeyspace} {
diff --git a/go/vt/vtctl/workflow/utils.go b/go/vt/vtctl/workflow/utils.go
index 2850dd1678e..50f35667eaf 100644
--- a/go/vt/vtctl/workflow/utils.go
+++ b/go/vt/vtctl/workflow/utils.go
@@ -910,7 +910,7 @@ func validateTenantId(dataType querypb.Type, value string) error {
}
func updateKeyspaceRoutingState(ctx context.Context, ts *topo.Server, sourceKeyspace, targetKeyspace string, state *State) error {
- // For multi-tenant migrations, we only support switching traffic to all cells at once
+ // For multi-tenant migrations, we only support switching traffic to all cells at once.
cells, err := ts.GetCellInfoNames(ctx)
if err != nil {
return err
From 9946ce820321661229b129e620f85211f11c7b04 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Thu, 7 Nov 2024 08:55:13 -0600
Subject: [PATCH 35/78] List join predicates used in `GetVExplainKeys` (#17130)
Signed-off-by: Florent Poinsard
Signed-off-by: Andres Taylor
Co-authored-by: Andres Taylor
---
go/vt/vtgate/planbuilder/operators/keys.go | 93 ++++++-
.../vtgate/planbuilder/operators/keys_test.go | 7 +-
go/vt/vtgate/testdata/executor_vexplain.json | 257 +++++++++---------
3 files changed, 216 insertions(+), 141 deletions(-)
diff --git a/go/vt/vtgate/planbuilder/operators/keys.go b/go/vt/vtgate/planbuilder/operators/keys.go
index f5b592b2291..8d75b260aeb 100644
--- a/go/vt/vtgate/planbuilder/operators/keys.go
+++ b/go/vt/vtgate/planbuilder/operators/keys.go
@@ -36,16 +36,32 @@ type (
Column Column
Uses sqlparser.ComparisonExprOperator
}
+ JoinPredicate struct {
+ LHS, RHS Column
+ Uses sqlparser.ComparisonExprOperator
+ }
VExplainKeys struct {
- StatementType string `json:"statementType"`
- TableName []string `json:"tableName,omitempty"`
- GroupingColumns []Column `json:"groupingColumns,omitempty"`
- JoinColumns []ColumnUse `json:"joinColumns,omitempty"`
- FilterColumns []ColumnUse `json:"filterColumns,omitempty"`
- SelectColumns []Column `json:"selectColumns,omitempty"`
+ StatementType string `json:"statementType"`
+ TableName []string `json:"tableName,omitempty"`
+ GroupingColumns []Column `json:"groupingColumns,omitempty"`
+ FilterColumns []ColumnUse `json:"filterColumns,omitempty"`
+ SelectColumns []Column `json:"selectColumns,omitempty"`
+ JoinPredicates []JoinPredicate `json:"joinPredicates,omitempty"`
}
)
+func newJoinPredicate(lhs, rhs Column, op sqlparser.ComparisonExprOperator) JoinPredicate {
+ // we want to try to keep the columns in the same order, no matter how the query was written
+ if lhs.String() > rhs.String() {
+ var success bool
+ op, success = op.SwitchSides()
+ if success {
+ lhs, rhs = rhs, lhs
+ }
+ }
+ return JoinPredicate{LHS: lhs, RHS: rhs, Uses: op}
+}
+
func (c Column) MarshalJSON() ([]byte, error) {
if c.Table != "" {
return json.Marshal(fmt.Sprintf("%s.%s", c.Table, c.Name))
@@ -111,6 +127,35 @@ func (cu *ColumnUse) UnmarshalJSON(data []byte) error {
return nil
}
+func (jp *JoinPredicate) MarshalJSON() ([]byte, error) {
+ return json.Marshal(jp.String())
+}
+
+func (jp *JoinPredicate) UnmarshalJSON(data []byte) error {
+ var s string
+ if err := json.Unmarshal(data, &s); err != nil {
+ return err
+ }
+ subStrings := strings.Split(s, " ")
+ if len(subStrings) != 3 {
+ return fmt.Errorf("invalid JoinPredicate format: %s", s)
+ }
+
+ op, err := sqlparser.ComparisonExprOperatorFromJson(subStrings[1])
+ if err != nil {
+ return fmt.Errorf("invalid comparison operator: %w", err)
+ }
+ jp.Uses = op
+
+ if err = jp.LHS.UnmarshalJSON([]byte(`"` + subStrings[0] + `"`)); err != nil {
+ return err
+ }
+ if err = jp.RHS.UnmarshalJSON([]byte(`"` + subStrings[2] + `"`)); err != nil {
+ return err
+ }
+ return nil
+}
+
func (c Column) String() string {
return fmt.Sprintf("%s.%s", c.Table, c.Name)
}
@@ -119,14 +164,25 @@ func (cu ColumnUse) String() string {
return fmt.Sprintf("%s %s", cu.Column, cu.Uses.JSONString())
}
+func (jp JoinPredicate) String() string {
+ return fmt.Sprintf("%s %s %s", jp.LHS.String(), jp.Uses.JSONString(), jp.RHS.String())
+}
+
type columnUse struct {
col *sqlparser.ColName
use sqlparser.ComparisonExprOperator
}
+type joinPredicate struct {
+ lhs *sqlparser.ColName
+ rhs *sqlparser.ColName
+ uses sqlparser.ComparisonExprOperator
+}
+
func GetVExplainKeys(ctx *plancontext.PlanningContext, stmt sqlparser.Statement) (result VExplainKeys) {
var groupingColumns, selectColumns []*sqlparser.ColName
var filterColumns, joinColumns []columnUse
+ var jps []joinPredicate
addPredicate := func(predicate sqlparser.Expr) {
predicates := sqlparser.SplitAndExpression(nil, predicate)
@@ -140,6 +196,7 @@ func GetVExplainKeys(ctx *plancontext.PlanningContext, stmt sqlparser.Statement)
if lhsOK && rhsOK && ctx.SemTable.RecursiveDeps(lhs) != ctx.SemTable.RecursiveDeps(rhs) {
// If the columns are from different tables, they are considered join columns
output = &joinColumns
+ jps = append(jps, joinPredicate{lhs: lhs, rhs: rhs, uses: cmp.Operator})
}
if lhsOK {
@@ -189,12 +246,34 @@ func GetVExplainKeys(ctx *plancontext.PlanningContext, stmt sqlparser.Statement)
return VExplainKeys{
SelectColumns: getUniqueColNames(ctx, selectColumns),
GroupingColumns: getUniqueColNames(ctx, groupingColumns),
- JoinColumns: getUniqueColUsages(ctx, joinColumns),
FilterColumns: getUniqueColUsages(ctx, filterColumns),
StatementType: sqlparser.ASTToStatementType(stmt).String(),
+ JoinPredicates: getUniqueJoinPredicates(ctx, jps),
}
}
+func getUniqueJoinPredicates(ctx *plancontext.PlanningContext, joinPredicates []joinPredicate) []JoinPredicate {
+ var result []JoinPredicate
+ for _, predicate := range joinPredicates {
+ lhs := createColumn(ctx, predicate.lhs)
+ rhs := createColumn(ctx, predicate.rhs)
+ if lhs == nil || rhs == nil {
+ continue
+ }
+
+ result = append(result, newJoinPredicate(*lhs, *rhs, predicate.uses))
+ }
+
+ sort.Slice(result, func(i, j int) bool {
+ if result[i].LHS.Name == result[j].LHS.Name {
+ return result[i].RHS.Name < result[j].RHS.Name
+ }
+ return result[i].LHS.Name < result[j].LHS.Name
+ })
+
+ return slices.Compact(result)
+}
+
func getUniqueColNames(ctx *plancontext.PlanningContext, inCols []*sqlparser.ColName) (columns []Column) {
for _, col := range inCols {
column := createColumn(ctx, col)
diff --git a/go/vt/vtgate/planbuilder/operators/keys_test.go b/go/vt/vtgate/planbuilder/operators/keys_test.go
index 5c60e62c70c..3fcd69f0b5b 100644
--- a/go/vt/vtgate/planbuilder/operators/keys_test.go
+++ b/go/vt/vtgate/planbuilder/operators/keys_test.go
@@ -35,10 +35,6 @@ func TestMarshalUnmarshal(t *testing.T) {
{Table: "orders", Name: "category"},
{Table: "users", Name: "department"},
},
- JoinColumns: []ColumnUse{
- {Column: Column{Table: "users", Name: "id"}, Uses: sqlparser.EqualOp},
- {Column: Column{Table: "orders", Name: "user_id"}, Uses: sqlparser.EqualOp},
- },
FilterColumns: []ColumnUse{
{Column: Column{Table: "users", Name: "age"}, Uses: sqlparser.GreaterThanOp},
{Column: Column{Table: "orders", Name: "total"}, Uses: sqlparser.LessThanOp},
@@ -49,6 +45,9 @@ func TestMarshalUnmarshal(t *testing.T) {
{Table: "users", Name: "email"},
{Table: "orders", Name: "amount"},
},
+ JoinPredicates: []JoinPredicate{
+ {LHS: Column{Table: "users", Name: "id"}, RHS: Column{Table: "orders", Name: "user_id"}, Uses: sqlparser.EqualOp},
+ },
}
jsonData, err := json.Marshal(original)
diff --git a/go/vt/vtgate/testdata/executor_vexplain.json b/go/vt/vtgate/testdata/executor_vexplain.json
index 5b70354f158..2b893588aa5 100644
--- a/go/vt/vtgate/testdata/executor_vexplain.json
+++ b/go/vt/vtgate/testdata/executor_vexplain.json
@@ -1,132 +1,129 @@
[
- {
- "query": "select count(*), col2 from music group by col2",
- "expected": {
- "statementType": "SELECT",
- "groupingColumns": [
- "music.col2"
- ],
- "selectColumns": [
- "music.col2"
- ]
- }
- },
- {
- "query": "select * from user u join user_extra ue on u.id = ue.user_id where u.col1 \u003e 100 and ue.noLimit = 'foo'",
- "expected": {
- "statementType": "SELECT",
- "joinColumns": [
- "`user`.id =",
- "user_extra.user_id ="
- ],
- "filterColumns": [
- "`user`.col1 gt",
- "user_extra.noLimit ="
- ]
- }
- },
- {
- "query": "select * from user_extra ue, user u where ue.noLimit = 'foo' and u.col1 \u003e 100 and ue.user_id = u.id",
- "expected": {
- "statementType": "SELECT",
- "joinColumns": [
- "`user`.id =",
- "user_extra.user_id ="
- ],
- "filterColumns": [
- "`user`.col1 gt",
- "user_extra.noLimit ="
- ]
- }
- },
- {
- "query": "select u.foo, ue.bar, count(*) from user u join user_extra ue on u.id = ue.user_id where u.name = 'John Doe' group by 1, 2",
- "expected": {
- "statementType": "SELECT",
- "groupingColumns": [
- "`user`.foo",
- "user_extra.bar"
- ],
- "joinColumns": [
- "`user`.id =",
- "user_extra.user_id ="
- ],
- "filterColumns": [
- "`user`.`name` ="
- ],
- "selectColumns": [
- "`user`.foo",
- "user_extra.bar"
- ]
- }
- },
- {
- "query": "select * from (select * from user) as derived where derived.amount \u003e 1000",
- "expected": {
- "statementType": "SELECT"
- }
- },
- {
- "query": "select name, sum(amount) from user group by name",
- "expected": {
- "statementType": "SELECT",
- "groupingColumns": [
- "`user`.`name`"
- ],
- "selectColumns": [
- "`user`.`name`",
- "`user`.amount"
- ]
- }
- },
- {
- "query": "select name from user where age \u003e 30",
- "expected": {
- "statementType": "SELECT",
- "filterColumns": [
- "`user`.age gt"
- ],
- "selectColumns": [
- "`user`.`name`"
- ]
- }
- },
- {
- "query": "select * from user where name = 'apa' union select * from user_extra where name = 'monkey'",
- "expected": {
- "statementType": "SELECT",
- "filterColumns": [
- "`user`.`name` =",
- "user_extra.`name` ="
- ]
- }
- },
- {
- "query": "update user set name = 'Jane Doe' where id = 1",
- "expected": {
- "statementType": "UPDATE",
- "filterColumns": [
- "`user`.id ="
- ]
- }
- },
- {
- "query": "delete from user where order_date \u003c '2023-01-01'",
- "expected": {
- "statementType": "DELETE",
- "filterColumns": [
- "`user`.order_date lt"
- ]
- }
- },
- {
- "query": "select * from user where name between 'A' and 'C'",
- "expected": {
- "statementType": "SELECT",
- "filterColumns": [
- "`user`.`name` ge",
- "`user`.`name` le"
- ]
- }
- }
+ {
+ "query": "select count(*), col2 from music group by col2",
+ "expected": {
+ "statementType": "SELECT",
+ "groupingColumns": [
+ "music.col2"
+ ],
+ "selectColumns": [
+ "music.col2"
+ ]
+ }
+ },
+ {
+ "query": "select * from user u join user_extra ue on u.id = ue.user_id where u.col1 \u003e 100 and ue.noLimit = 'foo'",
+ "expected": {
+ "statementType": "SELECT",
+ "filterColumns": [
+ "`user`.col1 gt",
+ "user_extra.noLimit ="
+ ],
+ "joinPredicates": [
+ "`user`.id = user_extra.user_id"
+ ]
+ }
+ },
+ {
+ "query": "select * from user_extra ue, user u where ue.noLimit = 'foo' and u.col1 \u003e 100 and ue.user_id = u.id",
+ "expected": {
+ "statementType": "SELECT",
+ "filterColumns": [
+ "`user`.col1 gt",
+ "user_extra.noLimit ="
+ ],
+ "joinPredicates": [
+ "`user`.id = user_extra.user_id"
+ ]
+ }
+ },
+ {
+ "query": "select u.foo, ue.bar, count(*) from user u join user_extra ue on u.id = ue.user_id where u.name = 'John Doe' group by 1, 2",
+ "expected": {
+ "statementType": "SELECT",
+ "groupingColumns": [
+ "`user`.foo",
+ "user_extra.bar"
+ ],
+ "filterColumns": [
+ "`user`.`name` ="
+ ],
+ "selectColumns": [
+ "`user`.foo",
+ "user_extra.bar"
+ ],
+ "joinPredicates": [
+ "`user`.id = user_extra.user_id"
+ ]
+ }
+ },
+ {
+ "query": "select * from (select * from user) as derived where derived.amount \u003e 1000",
+ "expected": {
+ "statementType": "SELECT"
+ }
+ },
+ {
+ "query": "select name, sum(amount) from user group by name",
+ "expected": {
+ "statementType": "SELECT",
+ "groupingColumns": [
+ "`user`.`name`"
+ ],
+ "selectColumns": [
+ "`user`.`name`",
+ "`user`.amount"
+ ]
+ }
+ },
+ {
+ "query": "select name from user where age \u003e 30",
+ "expected": {
+ "statementType": "SELECT",
+ "filterColumns": [
+ "`user`.age gt"
+ ],
+ "selectColumns": [
+ "`user`.`name`"
+ ]
+ }
+ },
+ {
+ "query": "select * from user where name = 'apa' union select * from user_extra where name = 'monkey'",
+ "expected": {
+ "statementType": "SELECT",
+ "filterColumns": [
+ "`user`.`name` =",
+ "user_extra.`name` ="
+ ]
+ }
+ },
+ {
+ "query": "update user set name = 'Jane Doe' where id = 1",
+ "expected": {
+ "statementType": "UPDATE",
+ "filterColumns": [
+ "`user`.id ="
+ ]
+ }
+ },
+ {
+ "query": "delete from user where order_date \u003c '2023-01-01'",
+ "expected": {
+ "statementType": "DELETE",
+ "filterColumns": [
+ "`user`.order_date lt"
+ ]
+ }
+ },
+ {
+ "query": "select * from user where name between 'A' and 'C'",
+ "expected": {
+ "statementType": "SELECT",
+ "filterColumns": [
+ "`user`.`name` ge",
+ "`user`.`name` le"
+ ]
+ }
+ }
]
\ No newline at end of file
From 31b956b637373ca8b14249e6f854d5eadc271775 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Thu, 7 Nov 2024 15:29:31 -0500
Subject: [PATCH 36/78] VReplication: Qualify and SQL escape tables in created
AutoIncrement VSchema definitions (#17174)
Signed-off-by: Matt Lord
---
go/vt/vtctl/workflow/materializer.go | 21 ++++++++++++++++---
go/vt/vtctl/workflow/materializer_env_test.go | 2 +-
go/vt/vtctl/workflow/materializer_test.go | 10 ++++-----
go/vt/vtctl/workflow/utils.go | 12 ++++++++---
4 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/go/vt/vtctl/workflow/materializer.go b/go/vt/vtctl/workflow/materializer.go
index 3f4115579eb..c65a00bf614 100644
--- a/go/vt/vtctl/workflow/materializer.go
+++ b/go/vt/vtctl/workflow/materializer.go
@@ -386,9 +386,9 @@ func (mz *materializer) deploySchema() error {
}
if removeAutoInc {
- var replaceFunc func(columnName string)
+ var replaceFunc func(columnName string) error
if mz.ms.GetWorkflowOptions().ShardedAutoIncrementHandling == vtctldatapb.ShardedAutoIncrementHandling_REPLACE {
- replaceFunc = func(columnName string) {
+ replaceFunc = func(columnName string) error {
mu.Lock()
defer mu.Unlock()
// At this point we've already confirmed that the table exists in the target
@@ -396,7 +396,21 @@ func (mz *materializer) deploySchema() error {
table := targetVSchema.Tables[ts.TargetTable]
// Don't override or redo anything that already exists.
if table != nil && table.AutoIncrement == nil {
- seqTableName := fmt.Sprintf(autoSequenceTableFormat, ts.TargetTable)
+ tableName, err := sqlescape.UnescapeID(ts.TargetTable)
+ if err != nil {
+ return err
+ }
+ seqTableName, err := sqlescape.EnsureEscaped(fmt.Sprintf(autoSequenceTableFormat, tableName))
+ if err != nil {
+ return err
+ }
+ if mz.ms.GetWorkflowOptions().GlobalKeyspace != "" {
+ seqKeyspace, err := sqlescape.EnsureEscaped(mz.ms.WorkflowOptions.GlobalKeyspace)
+ if err != nil {
+ return err
+ }
+ seqTableName = fmt.Sprintf("%s.%s", seqKeyspace, seqTableName)
+ }
// Create a Vitess AutoIncrement definition -- which uses a sequence -- to
// replace the MySQL auto_increment definition that we removed.
table.AutoIncrement = &vschemapb.AutoIncrement{
@@ -405,6 +419,7 @@ func (mz *materializer) deploySchema() error {
}
updatedVSchema = true
}
+ return nil
}
}
ddl, err = stripAutoIncrement(ddl, mz.env.Parser(), replaceFunc)
diff --git a/go/vt/vtctl/workflow/materializer_env_test.go b/go/vt/vtctl/workflow/materializer_env_test.go
index 20374f7ef46..fb5064137cd 100644
--- a/go/vt/vtctl/workflow/materializer_env_test.go
+++ b/go/vt/vtctl/workflow/materializer_env_test.go
@@ -121,7 +121,7 @@ func newTestMaterializerEnv(t *testing.T, ctx context.Context, ms *vtctldatapb.M
tableName := ts.TargetTable
table, err := venv.Parser().TableFromStatement(ts.SourceExpression)
if err == nil {
- tableName = table.Name.String()
+ tableName = sqlparser.String(table.Name)
}
var (
cols []string
diff --git a/go/vt/vtctl/workflow/materializer_test.go b/go/vt/vtctl/workflow/materializer_test.go
index fa3f25ca917..746c5fe2bae 100644
--- a/go/vt/vtctl/workflow/materializer_test.go
+++ b/go/vt/vtctl/workflow/materializer_test.go
@@ -613,12 +613,12 @@ func TestMoveTablesDDLFlag(t *testing.T) {
// 2. REMOVE the tables' MySQL auto_increment clauses
// 3. REPLACE the table's MySQL auto_increment clauses with Vitess sequences
func TestShardedAutoIncHandling(t *testing.T) {
- tableName := "t1"
+ tableName := "`t-1`"
tableDDL := fmt.Sprintf("create table %s (id int not null auto_increment primary key, c1 varchar(10))", tableName)
- validateEmptyTableQuery := fmt.Sprintf("select 1 from `%s` limit 1", tableName)
+ validateEmptyTableQuery := fmt.Sprintf("select 1 from %s limit 1", tableName)
ms := &vtctldatapb.MaterializeSettings{
Workflow: "workflow",
- SourceKeyspace: "sourceks",
+ SourceKeyspace: "source-ks",
TargetKeyspace: "targetks",
TableSettings: []*vtctldatapb.TableMaterializeSettings{{
TargetTable: tableName,
@@ -863,7 +863,7 @@ func TestShardedAutoIncHandling(t *testing.T) {
},
AutoIncrement: &vschemapb.AutoIncrement{ // AutoIncrement definition added
Column: "id",
- Sequence: fmt.Sprintf(autoSequenceTableFormat, tableName),
+ Sequence: fmt.Sprintf("`%s`.`%s`", ms.SourceKeyspace, fmt.Sprintf(autoSequenceTableFormat, strings.ReplaceAll(tableName, "`", ""))),
},
},
},
@@ -931,7 +931,7 @@ func TestShardedAutoIncHandling(t *testing.T) {
if tc.wantTargetVSchema != nil {
targetVSchema, err := env.ws.ts.GetVSchema(ctx, ms.TargetKeyspace)
require.NoError(t, err)
- require.True(t, proto.Equal(targetVSchema, tc.wantTargetVSchema))
+ require.True(t, proto.Equal(targetVSchema, tc.wantTargetVSchema), "got: %v, want: %v", targetVSchema, tc.wantTargetVSchema)
}
}
})
diff --git a/go/vt/vtctl/workflow/utils.go b/go/vt/vtctl/workflow/utils.go
index 50f35667eaf..65fa49fde86 100644
--- a/go/vt/vtctl/workflow/utils.go
+++ b/go/vt/vtctl/workflow/utils.go
@@ -222,24 +222,30 @@ func stripTableForeignKeys(ddl string, parser *sqlparser.Parser) (string, error)
// table definition. If an optional replace function is specified then that
// callback will be used to e.g. replace the MySQL clause with a Vitess
// VSchema AutoIncrement definition.
-func stripAutoIncrement(ddl string, parser *sqlparser.Parser, replace func(columnName string)) (string, error) {
+func stripAutoIncrement(ddl string, parser *sqlparser.Parser, replace func(columnName string) error) (string, error) {
newDDL, err := parser.ParseStrictDDL(ddl)
if err != nil {
return "", err
}
- _ = sqlparser.Walk(func(node sqlparser.SQLNode) (kontinue bool, err error) {
+ err = sqlparser.Walk(func(node sqlparser.SQLNode) (kontinue bool, err error) {
switch node := node.(type) {
case *sqlparser.ColumnDefinition:
if node.Type.Options.Autoincrement {
node.Type.Options.Autoincrement = false
if replace != nil {
- replace(sqlparser.String(node.Name))
+ if err := replace(sqlparser.String(node.Name)); err != nil {
+ return false, vterrors.Wrapf(err, "failed to replace auto_increment column %q in %q", sqlparser.String(node.Name), ddl)
+ }
+
}
}
}
return true, nil
}, newDDL)
+ if err != nil {
+ return "", err
+ }
return sqlparser.String(newDDL), nil
}
From f6ca94f01361019232d434c28500a875358a1d4f Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Thu, 7 Nov 2024 14:44:48 -0600
Subject: [PATCH 37/78] Skip `TestRunFailsToStartTabletManager` for now
(#17167)
Signed-off-by: Florent Poinsard
---
go/cmd/vttablet/cli/cli_test.go | 3 +++
1 file changed, 3 insertions(+)
diff --git a/go/cmd/vttablet/cli/cli_test.go b/go/cmd/vttablet/cli/cli_test.go
index c88ebd1b8ae..603234b3c64 100644
--- a/go/cmd/vttablet/cli/cli_test.go
+++ b/go/cmd/vttablet/cli/cli_test.go
@@ -32,6 +32,9 @@ import (
// When starting, the TabletManager checks if it needs to restore, in tm.handleRestore but this step will
// fail if we do not provide a cnf file and if the flag --restore_from_backup is provided.
func TestRunFailsToStartTabletManager(t *testing.T) {
+ // Skipping the test for now, the test is unveiling some race conditions in the code.
+ // While working on a fix, this test will be skipped: https://github.com/vitessio/vitess/pull/17165
+ t.Skip()
ts, factory := memorytopo.NewServerAndFactory(context.Background(), "cell")
topo.RegisterFactory("test", factory)
From d9ab9f7a1cf3cae19a1ea06963798a7646e8fb27 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Fri, 8 Nov 2024 11:38:59 +0530
Subject: [PATCH 38/78] Add RPC to read the statements to be executed in an
unresolved prepared transaction (#17131)
Signed-off-by: Manan Gupta
---
changelog/22.0/22.0.0/summary.md | 15 +
changelog/22.0/README.md | 2 +
changelog/README.md | 1 +
go/cmd/vtctldclient/command/transactions.go | 56 +
.../transaction/twopc/stress/stress_test.go | 25 +-
.../endtoend/transaction/twopc/twopc_test.go | 70 +-
.../endtoend/transaction/twopc/utils/utils.go | 22 +
.../tabletmanagerdata/tabletmanagerdata.pb.go | 2975 +++++++++--------
.../tabletmanagerdata_vtproto.pb.go | 432 +++
.../tabletmanagerservice.pb.go | 1012 +++---
.../tabletmanagerservice_grpc.pb.go | 36 +
go/vt/proto/vtctldata/vtctldata.pb.go | 2325 +++++++------
go/vt/proto/vtctldata/vtctldata_vtproto.pb.go | 1346 ++++++--
go/vt/proto/vtctlservice/vtctlservice.pb.go | 1541 ++++-----
.../vtctlservice/vtctlservice_grpc.pb.go | 38 +
go/vt/vtcombo/tablet_map.go | 6 +-
go/vt/vtctl/grpcvtctldclient/client_gen.go | 9 +
go/vt/vtctl/grpcvtctldserver/server.go | 80 +-
go/vt/vtctl/grpcvtctldserver/server_test.go | 102 +
.../testutil/test_tmclient.go | 15 +-
go/vt/vtctl/localvtctldclient/client_gen.go | 5 +
go/vt/vttablet/faketmclient/fake_client.go | 6 +-
go/vt/vttablet/grpctmclient/client.go | 23 +-
go/vt/vttablet/grpctmserver/server.go | 12 +
go/vt/vttablet/tabletmanager/rpc_agent.go | 2 +
.../vttablet/tabletmanager/rpc_transaction.go | 11 +
go/vt/vttablet/tabletserver/controller.go | 4 +
go/vt/vttablet/tabletserver/dt_executor.go | 9 +
go/vt/vttablet/tabletserver/tabletserver.go | 15 +
go/vt/vttablet/tabletserver/twopc.go | 62 +
go/vt/vttablet/tabletservermock/controller.go | 7 +
go/vt/vttablet/tmclient/rpc_client_api.go | 4 +-
go/vt/vttablet/tmrpctest/test_tm_rpc.go | 23 +-
proto/tabletmanagerdata.proto | 12 +
proto/tabletmanagerservice.proto | 2 +
proto/vtctldata.proto | 18 +
proto/vtctlservice.proto | 2 +
web/vtadmin/src/proto/vtadmin.d.ts | 533 +++
web/vtadmin/src/proto/vtadmin.js | 1290 +++++++
39 files changed, 8076 insertions(+), 4072 deletions(-)
create mode 100644 changelog/22.0/22.0.0/summary.md
create mode 100644 changelog/22.0/README.md
diff --git a/changelog/22.0/22.0.0/summary.md b/changelog/22.0/22.0.0/summary.md
new file mode 100644
index 00000000000..6846913bed5
--- /dev/null
+++ b/changelog/22.0/22.0.0/summary.md
@@ -0,0 +1,15 @@
+## Summary
+
+### Table of Contents
+
+- **[Major Changes](#major-changes)**
+ - **[RPC Changes](#rpc-changes)**
+
+
+## Major Changes
+
+### RPC Changes
+
+These are the RPC changes made in this release -
+
+1. `GetTransactionInfo` RPC has been added to both `VtctldServer`, and `TabletManagerClient` interface. These RPCs are used to fecilitate the users in reading the state of an unresolved distributed transaction. This can be useful in debugging what went wrong and how to fix the problem.
diff --git a/changelog/22.0/README.md b/changelog/22.0/README.md
new file mode 100644
index 00000000000..0e790e5dc0b
--- /dev/null
+++ b/changelog/22.0/README.md
@@ -0,0 +1,2 @@
+## v22.0
+* **[22.0.0](22.0.0)**
diff --git a/changelog/README.md b/changelog/README.md
index 9feda6440c6..7cade673d26 100644
--- a/changelog/README.md
+++ b/changelog/README.md
@@ -1,4 +1,5 @@
## Releases
+* [22.0](22.0)
* [21.0](21.0)
* [20.0](20.0)
* [19.0](19.0)
diff --git a/go/cmd/vtctldclient/command/transactions.go b/go/cmd/vtctldclient/command/transactions.go
index c576acf2041..93d31196fbe 100644
--- a/go/cmd/vtctldclient/command/transactions.go
+++ b/go/cmd/vtctldclient/command/transactions.go
@@ -64,6 +64,21 @@ var (
DisableFlagsInUseLine: true,
}
+
+ getTransactionInfoOptions = struct {
+ Dtid string
+ }{}
+
+ // GetTransactionInfo makes a GetTransactionInfo gRPC call to a vtctld.
+ GetTransactionInfo = &cobra.Command{
+ Use: "get-info --dtid ",
+ Short: "Reads the state of the unresolved transaction by querying each participating shard.",
+ Aliases: []string{"Read"},
+ Args: cobra.NoArgs,
+ RunE: commandGetTransactionInfo,
+
+ DisableFlagsInUseLine: true,
+ }
)
type ConcludeTransactionOutput struct {
@@ -72,6 +87,12 @@ type ConcludeTransactionOutput struct {
Error string `json:"error,omitempty"`
}
+type GetTransactionInfoOutput struct {
+ Dtid string `json:"dtid"`
+ Message string `json:"message"`
+ Error string `json:"error,omitempty"`
+}
+
const (
concludeSuccess = "Successfully concluded the distributed transaction"
concludeFailure = "Failed to conclude the distributed transaction"
@@ -86,11 +107,13 @@ func commandGetUnresolvedTransactions(cmd *cobra.Command, args []string) error {
AbandonAge: unresolvedTransactionsOptions.AbandonAge,
})
if err != nil {
+ prettyPrintError(err)
return err
}
data, err := cli.MarshalJSON(resp.Transactions)
if err != nil {
+ prettyPrintError(err)
return err
}
fmt.Println(string(data))
@@ -120,6 +143,36 @@ func commandConcludeTransaction(cmd *cobra.Command, args []string) (err error) {
return err
}
+func commandGetTransactionInfo(cmd *cobra.Command, args []string) error {
+ cli.FinishedParsing(cmd)
+
+ rts, err := client.GetTransactionInfo(commandCtx,
+ &vtctldatapb.GetTransactionInfoRequest{
+ Dtid: getTransactionInfoOptions.Dtid,
+ })
+
+ if err != nil || rts == nil {
+ prettyPrintError(err)
+ return err
+ }
+
+ fmt.Println(string(rts.String()))
+ return nil
+}
+
+func prettyPrintError(err error) {
+ if err == nil {
+ return
+ }
+ st := struct {
+ Error string `json:"error"`
+ }{
+ Error: err.Error(),
+ }
+ data, _ := cli.MarshalJSON(st)
+ fmt.Println(string(data))
+}
+
func init() {
GetUnresolvedTransactions.Flags().StringVarP(&unresolvedTransactionsOptions.Keyspace, "keyspace", "k", "", "unresolved transactions list for the given keyspace.")
GetUnresolvedTransactions.Flags().Int64VarP(&unresolvedTransactionsOptions.AbandonAge, "abandon-age", "a", 0, "unresolved transactions list which are older than the specified age(in seconds).")
@@ -128,5 +181,8 @@ func init() {
ConcludeTransaction.Flags().StringVarP(&concludeTransactionOptions.Dtid, "dtid", "d", "", "conclude transaction for the given distributed transaction ID.")
DistributedTransaction.AddCommand(ConcludeTransaction)
+ GetTransactionInfo.Flags().StringVarP(&getTransactionInfoOptions.Dtid, "dtid", "d", "", "read transaction state for the given distributed transaction ID.")
+ DistributedTransaction.AddCommand(GetTransactionInfo)
+
Root.AddCommand(DistributedTransaction)
}
diff --git a/go/test/endtoend/transaction/twopc/stress/stress_test.go b/go/test/endtoend/transaction/twopc/stress/stress_test.go
index 05a89b780dc..f97e1558eb6 100644
--- a/go/test/endtoend/transaction/twopc/stress/stress_test.go
+++ b/go/test/endtoend/transaction/twopc/stress/stress_test.go
@@ -128,7 +128,7 @@ func TestSettings(t *testing.T) {
defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitShard)
defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitTime)
var wg sync.WaitGroup
- runMultiShardCommitWithDelay(t, conn, tt.commitDelayTime, &wg, tt.queries)
+ twopcutil.RunMultiShardCommitWithDelay(t, conn, tt.commitDelayTime, &wg, tt.queries)
// Allow enough time for the commit to have started.
time.Sleep(1 * time.Second)
// Run the vttablet restart to ensure that the transaction needs to be redone.
@@ -218,7 +218,7 @@ func TestDisruptions(t *testing.T) {
defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitShard)
defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitTime)
var wg sync.WaitGroup
- runMultiShardCommitWithDelay(t, conn, tt.commitDelayTime, &wg, append([]string{"begin"}, getMultiShardInsertQueries()...))
+ twopcutil.RunMultiShardCommitWithDelay(t, conn, tt.commitDelayTime, &wg, append([]string{"begin"}, getMultiShardInsertQueries()...))
// Allow enough time for the commit to have started.
time.Sleep(1 * time.Second)
writeCtx, writeCancel := context.WithCancel(context.Background())
@@ -261,27 +261,6 @@ func getMultiShardInsertQueries() []string {
return queries
}
-// runMultiShardCommitWithDelay runs a multi shard commit and configures it to wait for a certain amount of time in the commit phase.
-func runMultiShardCommitWithDelay(t *testing.T, conn *mysql.Conn, commitDelayTime string, wg *sync.WaitGroup, queries []string) {
- // Run all the queries to start the transaction.
- for _, query := range queries {
- utils.Exec(t, conn, query)
- }
- // We want to delay the commit on one of the shards to simulate slow commits on a shard.
- twopcutil.WriteTestCommunicationFile(t, twopcutil.DebugDelayCommitShard, "80-")
- twopcutil.WriteTestCommunicationFile(t, twopcutil.DebugDelayCommitTime, commitDelayTime)
- // We will execute a commit in a go routine, because we know it will take some time to complete.
- // While the commit is ongoing, we would like to run the disruption.
- wg.Add(1)
- go func() {
- defer wg.Done()
- _, err := utils.ExecAllowError(t, conn, "commit")
- if err != nil {
- log.Errorf("Error in commit - %v", err)
- }
- }()
-}
-
func mergeShards(t *testing.T) error {
return twopcutil.RunReshard(t, clusterInstance, "TestDisruptions", keyspaceName, "40-80,80-", "40-")
}
diff --git a/go/test/endtoend/transaction/twopc/twopc_test.go b/go/test/endtoend/transaction/twopc/twopc_test.go
index 95d962655ba..7ed3b18643d 100644
--- a/go/test/endtoend/transaction/twopc/twopc_test.go
+++ b/go/test/endtoend/transaction/twopc/twopc_test.go
@@ -38,7 +38,9 @@ import (
"vitess.io/vitess/go/vt/callerid"
binlogdatapb "vitess.io/vitess/go/vt/proto/binlogdata"
querypb "vitess.io/vitess/go/vt/proto/query"
+ tabletpb "vitess.io/vitess/go/vt/proto/topodata"
"vitess.io/vitess/go/vt/vtgate/vtgateconn"
+ "vitess.io/vitess/go/vt/vttablet/grpctmclient"
)
// TestDTCommit tests distributed transaction commit for insert, update and delete operations
@@ -1349,7 +1351,12 @@ func TestSemiSyncRequiredWithTwoPC(t *testing.T) {
out, err := clusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("SetKeyspaceDurabilityPolicy", keyspaceName, "--durability-policy=none")
require.NoError(t, err, out)
- defer clusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("SetKeyspaceDurabilityPolicy", keyspaceName, "--durability-policy=semi_sync")
+ defer func() {
+ clusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("SetKeyspaceDurabilityPolicy", keyspaceName, "--durability-policy=semi_sync")
+ for _, shard := range clusterInstance.Keyspaces[0].Shards {
+ clusterInstance.VtctldClientProcess.PlannedReparentShard(keyspaceName, shard.Name, shard.Vttablets[0].Alias)
+ }
+ }()
// After changing the durability policy for the given keyspace to none, we run PRS.
shard := clusterInstance.Keyspaces[0].Shards[2]
@@ -1369,3 +1376,64 @@ func TestSemiSyncRequiredWithTwoPC(t *testing.T) {
require.Error(t, err)
require.ErrorContains(t, err, "two-pc is enabled, but semi-sync is not")
}
+
+// TestReadTransactionStatus tests that read transaction state rpc works as expected.
+func TestReadTransactionStatus(t *testing.T) {
+ conn, closer := start(t)
+ defer closer()
+ defer conn.Close()
+ defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitShard)
+ defer twopcutil.DeleteFile(twopcutil.DebugDelayCommitTime)
+
+ // We create a multi shard commit and delay its commit on one of the shards.
+ // This allows us to query to transaction status and actually get some data back.
+ var wg sync.WaitGroup
+ twopcutil.RunMultiShardCommitWithDelay(t, conn, "10", &wg, []string{
+ "begin",
+ "insert into twopc_t1(id, col) values(4, 4)",
+ "insert into twopc_t1(id, col) values(6, 4)",
+ "insert into twopc_t1(id, col) values(9, 4)",
+ })
+ // Allow enough time for the commit to have started.
+ time.Sleep(1 * time.Second)
+
+ // Create a tablet manager client and use it to read the transaction state.
+ tmc := grpctmclient.NewClient()
+ defer tmc.Close()
+ ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
+ defer cancel()
+
+ primaryTablet := getTablet(clusterInstance.Keyspaces[0].Shards[2].FindPrimaryTablet().GrpcPort)
+ var unresTransaction *querypb.TransactionMetadata
+ for _, shard := range clusterInstance.Keyspaces[0].Shards {
+ urtRes, err := tmc.GetUnresolvedTransactions(ctx, getTablet(shard.FindPrimaryTablet().GrpcPort), 1)
+ require.NoError(t, err)
+ if len(urtRes) > 0 {
+ unresTransaction = urtRes[0]
+ }
+ }
+ require.NotNil(t, unresTransaction)
+ res, err := tmc.GetTransactionInfo(ctx, primaryTablet, unresTransaction.Dtid)
+ require.NoError(t, err)
+ assert.Equal(t, "PREPARED", res.State)
+ assert.Equal(t, "", res.Message)
+ assert.Equal(t, []string{"insert into twopc_t1(id, col) values (9, 4)"}, res.Statements)
+
+ // Also try running the RPC from vtctld and verify we see the same values.
+ out, err := clusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("DistributedTransaction",
+ "Read",
+ fmt.Sprintf(`--dtid=%s`, unresTransaction.Dtid),
+ )
+ require.NoError(t, err)
+ require.Contains(t, out, "insert into twopc_t1(id, col) values (9, 4)")
+ require.Contains(t, out, unresTransaction.Dtid)
+
+ // Wait for the commit to have returned.
+ wg.Wait()
+}
+
+func getTablet(tabletGrpcPort int) *tabletpb.Tablet {
+ portMap := make(map[string]int32)
+ portMap["grpc"] = int32(tabletGrpcPort)
+ return &tabletpb.Tablet{Hostname: hostname, PortMap: portMap}
+}
diff --git a/go/test/endtoend/transaction/twopc/utils/utils.go b/go/test/endtoend/transaction/twopc/utils/utils.go
index 695dd0dd93f..2bed39c2b87 100644
--- a/go/test/endtoend/transaction/twopc/utils/utils.go
+++ b/go/test/endtoend/transaction/twopc/utils/utils.go
@@ -23,6 +23,7 @@ import (
"path"
"slices"
"strings"
+ "sync"
"testing"
"time"
@@ -94,6 +95,27 @@ func WriteTestCommunicationFile(t *testing.T, fileName string, content string) {
require.NoError(t, err)
}
+// RunMultiShardCommitWithDelay runs a multi shard commit and configures it to wait for a certain amount of time in the commit phase.
+func RunMultiShardCommitWithDelay(t *testing.T, conn *mysql.Conn, commitDelayTime string, wg *sync.WaitGroup, queries []string) {
+ // Run all the queries to start the transaction.
+ for _, query := range queries {
+ utils.Exec(t, conn, query)
+ }
+ // We want to delay the commit on one of the shards to simulate slow commits on a shard.
+ WriteTestCommunicationFile(t, DebugDelayCommitShard, "80-")
+ WriteTestCommunicationFile(t, DebugDelayCommitTime, commitDelayTime)
+ // We will execute a commit in a go routine, because we know it will take some time to complete.
+ // While the commit is ongoing, we would like to run the disruption.
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ _, err := utils.ExecAllowError(t, conn, "commit")
+ if err != nil {
+ log.Errorf("Error in commit - %v", err)
+ }
+ }()
+}
+
// DeleteFile deletes the file specified.
func DeleteFile(fileName string) {
_ = os.Remove(path.Join(os.Getenv("VTDATAROOT"), fileName))
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
index 13aeac113c4..eb29cd462c4 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
@@ -2877,6 +2877,124 @@ func (x *ReadTransactionResponse) GetTransaction() *query.TransactionMetadata {
return nil
}
+type GetTransactionInfoRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Dtid string `protobuf:"bytes,1,opt,name=dtid,proto3" json:"dtid,omitempty"`
+}
+
+func (x *GetTransactionInfoRequest) Reset() {
+ *x = GetTransactionInfoRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetTransactionInfoRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetTransactionInfoRequest) ProtoMessage() {}
+
+func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[52]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetTransactionInfoRequest.ProtoReflect.Descriptor instead.
+func (*GetTransactionInfoRequest) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *GetTransactionInfoRequest) GetDtid() string {
+ if x != nil {
+ return x.Dtid
+ }
+ return ""
+}
+
+type GetTransactionInfoResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
+ Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+ TimeCreated int64 `protobuf:"varint,3,opt,name=time_created,json=timeCreated,proto3" json:"time_created,omitempty"`
+ Statements []string `protobuf:"bytes,4,rep,name=statements,proto3" json:"statements,omitempty"`
+}
+
+func (x *GetTransactionInfoResponse) Reset() {
+ *x = GetTransactionInfoResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_tabletmanagerdata_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetTransactionInfoResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetTransactionInfoResponse) ProtoMessage() {}
+
+func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_tabletmanagerdata_proto_msgTypes[53]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetTransactionInfoResponse.ProtoReflect.Descriptor instead.
+func (*GetTransactionInfoResponse) Descriptor() ([]byte, []int) {
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *GetTransactionInfoResponse) GetState() string {
+ if x != nil {
+ return x.State
+ }
+ return ""
+}
+
+func (x *GetTransactionInfoResponse) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *GetTransactionInfoResponse) GetTimeCreated() int64 {
+ if x != nil {
+ return x.TimeCreated
+ }
+ return 0
+}
+
+func (x *GetTransactionInfoResponse) GetStatements() []string {
+ if x != nil {
+ return x.Statements
+ }
+ return nil
+}
+
type ConcludeTransactionRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -2889,7 +3007,7 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[52]
+ mi := &file_tabletmanagerdata_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2902,7 +3020,7 @@ func (x *ConcludeTransactionRequest) String() string {
func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[52]
+ mi := &file_tabletmanagerdata_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2915,7 +3033,7 @@ func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConcludeTransactionRequest.ProtoReflect.Descriptor instead.
func (*ConcludeTransactionRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{52}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{54}
}
func (x *ConcludeTransactionRequest) GetDtid() string {
@@ -2941,7 +3059,7 @@ type ConcludeTransactionResponse struct {
func (x *ConcludeTransactionResponse) Reset() {
*x = ConcludeTransactionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[53]
+ mi := &file_tabletmanagerdata_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2954,7 +3072,7 @@ func (x *ConcludeTransactionResponse) String() string {
func (*ConcludeTransactionResponse) ProtoMessage() {}
func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[53]
+ mi := &file_tabletmanagerdata_proto_msgTypes[55]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2967,7 +3085,7 @@ func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConcludeTransactionResponse.ProtoReflect.Descriptor instead.
func (*ConcludeTransactionResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{53}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{55}
}
type MysqlHostMetricsRequest struct {
@@ -2979,7 +3097,7 @@ type MysqlHostMetricsRequest struct {
func (x *MysqlHostMetricsRequest) Reset() {
*x = MysqlHostMetricsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[54]
+ mi := &file_tabletmanagerdata_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2992,7 +3110,7 @@ func (x *MysqlHostMetricsRequest) String() string {
func (*MysqlHostMetricsRequest) ProtoMessage() {}
func (x *MysqlHostMetricsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[54]
+ mi := &file_tabletmanagerdata_proto_msgTypes[56]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3005,7 +3123,7 @@ func (x *MysqlHostMetricsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MysqlHostMetricsRequest.ProtoReflect.Descriptor instead.
func (*MysqlHostMetricsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{54}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{56}
}
type MysqlHostMetricsResponse struct {
@@ -3019,7 +3137,7 @@ type MysqlHostMetricsResponse struct {
func (x *MysqlHostMetricsResponse) Reset() {
*x = MysqlHostMetricsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[55]
+ mi := &file_tabletmanagerdata_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3032,7 +3150,7 @@ func (x *MysqlHostMetricsResponse) String() string {
func (*MysqlHostMetricsResponse) ProtoMessage() {}
func (x *MysqlHostMetricsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[55]
+ mi := &file_tabletmanagerdata_proto_msgTypes[57]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3045,7 +3163,7 @@ func (x *MysqlHostMetricsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MysqlHostMetricsResponse.ProtoReflect.Descriptor instead.
func (*MysqlHostMetricsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{55}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{57}
}
func (x *MysqlHostMetricsResponse) GetHostMetrics() *mysqlctl.HostMetricsResponse {
@@ -3064,7 +3182,7 @@ type ReplicationStatusRequest struct {
func (x *ReplicationStatusRequest) Reset() {
*x = ReplicationStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[56]
+ mi := &file_tabletmanagerdata_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3077,7 +3195,7 @@ func (x *ReplicationStatusRequest) String() string {
func (*ReplicationStatusRequest) ProtoMessage() {}
func (x *ReplicationStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[56]
+ mi := &file_tabletmanagerdata_proto_msgTypes[58]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3090,7 +3208,7 @@ func (x *ReplicationStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicationStatusRequest.ProtoReflect.Descriptor instead.
func (*ReplicationStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{56}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{58}
}
type ReplicationStatusResponse struct {
@@ -3104,7 +3222,7 @@ type ReplicationStatusResponse struct {
func (x *ReplicationStatusResponse) Reset() {
*x = ReplicationStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[57]
+ mi := &file_tabletmanagerdata_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3117,7 +3235,7 @@ func (x *ReplicationStatusResponse) String() string {
func (*ReplicationStatusResponse) ProtoMessage() {}
func (x *ReplicationStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[57]
+ mi := &file_tabletmanagerdata_proto_msgTypes[59]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3130,7 +3248,7 @@ func (x *ReplicationStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicationStatusResponse.ProtoReflect.Descriptor instead.
func (*ReplicationStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{57}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{59}
}
func (x *ReplicationStatusResponse) GetStatus() *replicationdata.Status {
@@ -3149,7 +3267,7 @@ type PrimaryStatusRequest struct {
func (x *PrimaryStatusRequest) Reset() {
*x = PrimaryStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[58]
+ mi := &file_tabletmanagerdata_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3162,7 +3280,7 @@ func (x *PrimaryStatusRequest) String() string {
func (*PrimaryStatusRequest) ProtoMessage() {}
func (x *PrimaryStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[58]
+ mi := &file_tabletmanagerdata_proto_msgTypes[60]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3175,7 +3293,7 @@ func (x *PrimaryStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PrimaryStatusRequest.ProtoReflect.Descriptor instead.
func (*PrimaryStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{58}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{60}
}
type PrimaryStatusResponse struct {
@@ -3189,7 +3307,7 @@ type PrimaryStatusResponse struct {
func (x *PrimaryStatusResponse) Reset() {
*x = PrimaryStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[59]
+ mi := &file_tabletmanagerdata_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3202,7 +3320,7 @@ func (x *PrimaryStatusResponse) String() string {
func (*PrimaryStatusResponse) ProtoMessage() {}
func (x *PrimaryStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[59]
+ mi := &file_tabletmanagerdata_proto_msgTypes[61]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3215,7 +3333,7 @@ func (x *PrimaryStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PrimaryStatusResponse.ProtoReflect.Descriptor instead.
func (*PrimaryStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{59}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{61}
}
func (x *PrimaryStatusResponse) GetStatus() *replicationdata.PrimaryStatus {
@@ -3234,7 +3352,7 @@ type PrimaryPositionRequest struct {
func (x *PrimaryPositionRequest) Reset() {
*x = PrimaryPositionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[60]
+ mi := &file_tabletmanagerdata_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3247,7 +3365,7 @@ func (x *PrimaryPositionRequest) String() string {
func (*PrimaryPositionRequest) ProtoMessage() {}
func (x *PrimaryPositionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[60]
+ mi := &file_tabletmanagerdata_proto_msgTypes[62]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3260,7 +3378,7 @@ func (x *PrimaryPositionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PrimaryPositionRequest.ProtoReflect.Descriptor instead.
func (*PrimaryPositionRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{60}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{62}
}
type PrimaryPositionResponse struct {
@@ -3274,7 +3392,7 @@ type PrimaryPositionResponse struct {
func (x *PrimaryPositionResponse) Reset() {
*x = PrimaryPositionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[61]
+ mi := &file_tabletmanagerdata_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3287,7 +3405,7 @@ func (x *PrimaryPositionResponse) String() string {
func (*PrimaryPositionResponse) ProtoMessage() {}
func (x *PrimaryPositionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[61]
+ mi := &file_tabletmanagerdata_proto_msgTypes[63]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3300,7 +3418,7 @@ func (x *PrimaryPositionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PrimaryPositionResponse.ProtoReflect.Descriptor instead.
func (*PrimaryPositionResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{61}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{63}
}
func (x *PrimaryPositionResponse) GetPosition() string {
@@ -3321,7 +3439,7 @@ type WaitForPositionRequest struct {
func (x *WaitForPositionRequest) Reset() {
*x = WaitForPositionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[62]
+ mi := &file_tabletmanagerdata_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3334,7 +3452,7 @@ func (x *WaitForPositionRequest) String() string {
func (*WaitForPositionRequest) ProtoMessage() {}
func (x *WaitForPositionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[62]
+ mi := &file_tabletmanagerdata_proto_msgTypes[64]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3347,7 +3465,7 @@ func (x *WaitForPositionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WaitForPositionRequest.ProtoReflect.Descriptor instead.
func (*WaitForPositionRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{62}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{64}
}
func (x *WaitForPositionRequest) GetPosition() string {
@@ -3366,7 +3484,7 @@ type WaitForPositionResponse struct {
func (x *WaitForPositionResponse) Reset() {
*x = WaitForPositionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[63]
+ mi := &file_tabletmanagerdata_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3379,7 +3497,7 @@ func (x *WaitForPositionResponse) String() string {
func (*WaitForPositionResponse) ProtoMessage() {}
func (x *WaitForPositionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[63]
+ mi := &file_tabletmanagerdata_proto_msgTypes[65]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3392,7 +3510,7 @@ func (x *WaitForPositionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WaitForPositionResponse.ProtoReflect.Descriptor instead.
func (*WaitForPositionResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{63}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{65}
}
type StopReplicationRequest struct {
@@ -3404,7 +3522,7 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[64]
+ mi := &file_tabletmanagerdata_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3417,7 +3535,7 @@ func (x *StopReplicationRequest) String() string {
func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[64]
+ mi := &file_tabletmanagerdata_proto_msgTypes[66]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3430,7 +3548,7 @@ func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{64}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{66}
}
type StopReplicationResponse struct {
@@ -3442,7 +3560,7 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[65]
+ mi := &file_tabletmanagerdata_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3455,7 +3573,7 @@ func (x *StopReplicationResponse) String() string {
func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[65]
+ mi := &file_tabletmanagerdata_proto_msgTypes[67]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3468,7 +3586,7 @@ func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{65}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{67}
}
type StopReplicationMinimumRequest struct {
@@ -3483,7 +3601,7 @@ type StopReplicationMinimumRequest struct {
func (x *StopReplicationMinimumRequest) Reset() {
*x = StopReplicationMinimumRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[66]
+ mi := &file_tabletmanagerdata_proto_msgTypes[68]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3496,7 +3614,7 @@ func (x *StopReplicationMinimumRequest) String() string {
func (*StopReplicationMinimumRequest) ProtoMessage() {}
func (x *StopReplicationMinimumRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[66]
+ mi := &file_tabletmanagerdata_proto_msgTypes[68]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3509,7 +3627,7 @@ func (x *StopReplicationMinimumRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationMinimumRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationMinimumRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{66}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{68}
}
func (x *StopReplicationMinimumRequest) GetPosition() string {
@@ -3537,7 +3655,7 @@ type StopReplicationMinimumResponse struct {
func (x *StopReplicationMinimumResponse) Reset() {
*x = StopReplicationMinimumResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[67]
+ mi := &file_tabletmanagerdata_proto_msgTypes[69]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3550,7 +3668,7 @@ func (x *StopReplicationMinimumResponse) String() string {
func (*StopReplicationMinimumResponse) ProtoMessage() {}
func (x *StopReplicationMinimumResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[67]
+ mi := &file_tabletmanagerdata_proto_msgTypes[69]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3563,7 +3681,7 @@ func (x *StopReplicationMinimumResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationMinimumResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationMinimumResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{67}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{69}
}
func (x *StopReplicationMinimumResponse) GetPosition() string {
@@ -3584,7 +3702,7 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[68]
+ mi := &file_tabletmanagerdata_proto_msgTypes[70]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3597,7 +3715,7 @@ func (x *StartReplicationRequest) String() string {
func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[68]
+ mi := &file_tabletmanagerdata_proto_msgTypes[70]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3610,7 +3728,7 @@ func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationRequest.ProtoReflect.Descriptor instead.
func (*StartReplicationRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{68}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{70}
}
func (x *StartReplicationRequest) GetSemiSync() bool {
@@ -3629,7 +3747,7 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[69]
+ mi := &file_tabletmanagerdata_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3642,7 +3760,7 @@ func (x *StartReplicationResponse) String() string {
func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[69]
+ mi := &file_tabletmanagerdata_proto_msgTypes[71]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3655,7 +3773,7 @@ func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationResponse.ProtoReflect.Descriptor instead.
func (*StartReplicationResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{69}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{71}
}
type StartReplicationUntilAfterRequest struct {
@@ -3670,7 +3788,7 @@ type StartReplicationUntilAfterRequest struct {
func (x *StartReplicationUntilAfterRequest) Reset() {
*x = StartReplicationUntilAfterRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[70]
+ mi := &file_tabletmanagerdata_proto_msgTypes[72]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3683,7 +3801,7 @@ func (x *StartReplicationUntilAfterRequest) String() string {
func (*StartReplicationUntilAfterRequest) ProtoMessage() {}
func (x *StartReplicationUntilAfterRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[70]
+ mi := &file_tabletmanagerdata_proto_msgTypes[72]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3696,7 +3814,7 @@ func (x *StartReplicationUntilAfterRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use StartReplicationUntilAfterRequest.ProtoReflect.Descriptor instead.
func (*StartReplicationUntilAfterRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{70}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{72}
}
func (x *StartReplicationUntilAfterRequest) GetPosition() string {
@@ -3722,7 +3840,7 @@ type StartReplicationUntilAfterResponse struct {
func (x *StartReplicationUntilAfterResponse) Reset() {
*x = StartReplicationUntilAfterResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[71]
+ mi := &file_tabletmanagerdata_proto_msgTypes[73]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3735,7 +3853,7 @@ func (x *StartReplicationUntilAfterResponse) String() string {
func (*StartReplicationUntilAfterResponse) ProtoMessage() {}
func (x *StartReplicationUntilAfterResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[71]
+ mi := &file_tabletmanagerdata_proto_msgTypes[73]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3748,7 +3866,7 @@ func (x *StartReplicationUntilAfterResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use StartReplicationUntilAfterResponse.ProtoReflect.Descriptor instead.
func (*StartReplicationUntilAfterResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{71}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{73}
}
type GetReplicasRequest struct {
@@ -3760,7 +3878,7 @@ type GetReplicasRequest struct {
func (x *GetReplicasRequest) Reset() {
*x = GetReplicasRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[72]
+ mi := &file_tabletmanagerdata_proto_msgTypes[74]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3773,7 +3891,7 @@ func (x *GetReplicasRequest) String() string {
func (*GetReplicasRequest) ProtoMessage() {}
func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[72]
+ mi := &file_tabletmanagerdata_proto_msgTypes[74]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3786,7 +3904,7 @@ func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetReplicasRequest.ProtoReflect.Descriptor instead.
func (*GetReplicasRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{72}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{74}
}
type GetReplicasResponse struct {
@@ -3800,7 +3918,7 @@ type GetReplicasResponse struct {
func (x *GetReplicasResponse) Reset() {
*x = GetReplicasResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[73]
+ mi := &file_tabletmanagerdata_proto_msgTypes[75]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3813,7 +3931,7 @@ func (x *GetReplicasResponse) String() string {
func (*GetReplicasResponse) ProtoMessage() {}
func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[73]
+ mi := &file_tabletmanagerdata_proto_msgTypes[75]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3826,7 +3944,7 @@ func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetReplicasResponse.ProtoReflect.Descriptor instead.
func (*GetReplicasResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{73}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{75}
}
func (x *GetReplicasResponse) GetAddrs() []string {
@@ -3845,7 +3963,7 @@ type ResetReplicationRequest struct {
func (x *ResetReplicationRequest) Reset() {
*x = ResetReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[74]
+ mi := &file_tabletmanagerdata_proto_msgTypes[76]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3858,7 +3976,7 @@ func (x *ResetReplicationRequest) String() string {
func (*ResetReplicationRequest) ProtoMessage() {}
func (x *ResetReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[74]
+ mi := &file_tabletmanagerdata_proto_msgTypes[76]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3871,7 +3989,7 @@ func (x *ResetReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetReplicationRequest.ProtoReflect.Descriptor instead.
func (*ResetReplicationRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{74}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{76}
}
type ResetReplicationResponse struct {
@@ -3883,7 +4001,7 @@ type ResetReplicationResponse struct {
func (x *ResetReplicationResponse) Reset() {
*x = ResetReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[75]
+ mi := &file_tabletmanagerdata_proto_msgTypes[77]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3896,7 +4014,7 @@ func (x *ResetReplicationResponse) String() string {
func (*ResetReplicationResponse) ProtoMessage() {}
func (x *ResetReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[75]
+ mi := &file_tabletmanagerdata_proto_msgTypes[77]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3909,7 +4027,7 @@ func (x *ResetReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetReplicationResponse.ProtoReflect.Descriptor instead.
func (*ResetReplicationResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{75}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{77}
}
type VReplicationExecRequest struct {
@@ -3923,7 +4041,7 @@ type VReplicationExecRequest struct {
func (x *VReplicationExecRequest) Reset() {
*x = VReplicationExecRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[76]
+ mi := &file_tabletmanagerdata_proto_msgTypes[78]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3936,7 +4054,7 @@ func (x *VReplicationExecRequest) String() string {
func (*VReplicationExecRequest) ProtoMessage() {}
func (x *VReplicationExecRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[76]
+ mi := &file_tabletmanagerdata_proto_msgTypes[78]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3949,7 +4067,7 @@ func (x *VReplicationExecRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VReplicationExecRequest.ProtoReflect.Descriptor instead.
func (*VReplicationExecRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{76}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{78}
}
func (x *VReplicationExecRequest) GetQuery() string {
@@ -3970,7 +4088,7 @@ type VReplicationExecResponse struct {
func (x *VReplicationExecResponse) Reset() {
*x = VReplicationExecResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[77]
+ mi := &file_tabletmanagerdata_proto_msgTypes[79]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3983,7 +4101,7 @@ func (x *VReplicationExecResponse) String() string {
func (*VReplicationExecResponse) ProtoMessage() {}
func (x *VReplicationExecResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[77]
+ mi := &file_tabletmanagerdata_proto_msgTypes[79]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3996,7 +4114,7 @@ func (x *VReplicationExecResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VReplicationExecResponse.ProtoReflect.Descriptor instead.
func (*VReplicationExecResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{77}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{79}
}
func (x *VReplicationExecResponse) GetResult() *query.QueryResult {
@@ -4018,7 +4136,7 @@ type VReplicationWaitForPosRequest struct {
func (x *VReplicationWaitForPosRequest) Reset() {
*x = VReplicationWaitForPosRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[78]
+ mi := &file_tabletmanagerdata_proto_msgTypes[80]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4031,7 +4149,7 @@ func (x *VReplicationWaitForPosRequest) String() string {
func (*VReplicationWaitForPosRequest) ProtoMessage() {}
func (x *VReplicationWaitForPosRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[78]
+ mi := &file_tabletmanagerdata_proto_msgTypes[80]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4044,7 +4162,7 @@ func (x *VReplicationWaitForPosRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VReplicationWaitForPosRequest.ProtoReflect.Descriptor instead.
func (*VReplicationWaitForPosRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{78}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{80}
}
func (x *VReplicationWaitForPosRequest) GetId() int32 {
@@ -4070,7 +4188,7 @@ type VReplicationWaitForPosResponse struct {
func (x *VReplicationWaitForPosResponse) Reset() {
*x = VReplicationWaitForPosResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[79]
+ mi := &file_tabletmanagerdata_proto_msgTypes[81]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4083,7 +4201,7 @@ func (x *VReplicationWaitForPosResponse) String() string {
func (*VReplicationWaitForPosResponse) ProtoMessage() {}
func (x *VReplicationWaitForPosResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[79]
+ mi := &file_tabletmanagerdata_proto_msgTypes[81]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4096,7 +4214,7 @@ func (x *VReplicationWaitForPosResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VReplicationWaitForPosResponse.ProtoReflect.Descriptor instead.
func (*VReplicationWaitForPosResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{79}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{81}
}
type InitPrimaryRequest struct {
@@ -4110,7 +4228,7 @@ type InitPrimaryRequest struct {
func (x *InitPrimaryRequest) Reset() {
*x = InitPrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[80]
+ mi := &file_tabletmanagerdata_proto_msgTypes[82]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4123,7 +4241,7 @@ func (x *InitPrimaryRequest) String() string {
func (*InitPrimaryRequest) ProtoMessage() {}
func (x *InitPrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[80]
+ mi := &file_tabletmanagerdata_proto_msgTypes[82]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4136,7 +4254,7 @@ func (x *InitPrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitPrimaryRequest.ProtoReflect.Descriptor instead.
func (*InitPrimaryRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{80}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{82}
}
func (x *InitPrimaryRequest) GetSemiSync() bool {
@@ -4157,7 +4275,7 @@ type InitPrimaryResponse struct {
func (x *InitPrimaryResponse) Reset() {
*x = InitPrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[81]
+ mi := &file_tabletmanagerdata_proto_msgTypes[83]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4170,7 +4288,7 @@ func (x *InitPrimaryResponse) String() string {
func (*InitPrimaryResponse) ProtoMessage() {}
func (x *InitPrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[81]
+ mi := &file_tabletmanagerdata_proto_msgTypes[83]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4183,7 +4301,7 @@ func (x *InitPrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitPrimaryResponse.ProtoReflect.Descriptor instead.
func (*InitPrimaryResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{81}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{83}
}
func (x *InitPrimaryResponse) GetPosition() string {
@@ -4207,7 +4325,7 @@ type PopulateReparentJournalRequest struct {
func (x *PopulateReparentJournalRequest) Reset() {
*x = PopulateReparentJournalRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[82]
+ mi := &file_tabletmanagerdata_proto_msgTypes[84]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4220,7 +4338,7 @@ func (x *PopulateReparentJournalRequest) String() string {
func (*PopulateReparentJournalRequest) ProtoMessage() {}
func (x *PopulateReparentJournalRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[82]
+ mi := &file_tabletmanagerdata_proto_msgTypes[84]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4233,7 +4351,7 @@ func (x *PopulateReparentJournalRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PopulateReparentJournalRequest.ProtoReflect.Descriptor instead.
func (*PopulateReparentJournalRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{82}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{84}
}
func (x *PopulateReparentJournalRequest) GetTimeCreatedNs() int64 {
@@ -4273,7 +4391,7 @@ type PopulateReparentJournalResponse struct {
func (x *PopulateReparentJournalResponse) Reset() {
*x = PopulateReparentJournalResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[83]
+ mi := &file_tabletmanagerdata_proto_msgTypes[85]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4286,7 +4404,7 @@ func (x *PopulateReparentJournalResponse) String() string {
func (*PopulateReparentJournalResponse) ProtoMessage() {}
func (x *PopulateReparentJournalResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[83]
+ mi := &file_tabletmanagerdata_proto_msgTypes[85]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4299,7 +4417,7 @@ func (x *PopulateReparentJournalResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PopulateReparentJournalResponse.ProtoReflect.Descriptor instead.
func (*PopulateReparentJournalResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{83}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{85}
}
type ReadReparentJournalInfoRequest struct {
@@ -4311,7 +4429,7 @@ type ReadReparentJournalInfoRequest struct {
func (x *ReadReparentJournalInfoRequest) Reset() {
*x = ReadReparentJournalInfoRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ mi := &file_tabletmanagerdata_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4324,7 +4442,7 @@ func (x *ReadReparentJournalInfoRequest) String() string {
func (*ReadReparentJournalInfoRequest) ProtoMessage() {}
func (x *ReadReparentJournalInfoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ mi := &file_tabletmanagerdata_proto_msgTypes[86]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4337,7 +4455,7 @@ func (x *ReadReparentJournalInfoRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadReparentJournalInfoRequest.ProtoReflect.Descriptor instead.
func (*ReadReparentJournalInfoRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{84}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{86}
}
type ReadReparentJournalInfoResponse struct {
@@ -4351,7 +4469,7 @@ type ReadReparentJournalInfoResponse struct {
func (x *ReadReparentJournalInfoResponse) Reset() {
*x = ReadReparentJournalInfoResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ mi := &file_tabletmanagerdata_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4364,7 +4482,7 @@ func (x *ReadReparentJournalInfoResponse) String() string {
func (*ReadReparentJournalInfoResponse) ProtoMessage() {}
func (x *ReadReparentJournalInfoResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ mi := &file_tabletmanagerdata_proto_msgTypes[87]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4377,7 +4495,7 @@ func (x *ReadReparentJournalInfoResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadReparentJournalInfoResponse.ProtoReflect.Descriptor instead.
func (*ReadReparentJournalInfoResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{85}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{87}
}
func (x *ReadReparentJournalInfoResponse) GetLength() int32 {
@@ -4401,7 +4519,7 @@ type InitReplicaRequest struct {
func (x *InitReplicaRequest) Reset() {
*x = InitReplicaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[86]
+ mi := &file_tabletmanagerdata_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4414,7 +4532,7 @@ func (x *InitReplicaRequest) String() string {
func (*InitReplicaRequest) ProtoMessage() {}
func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[86]
+ mi := &file_tabletmanagerdata_proto_msgTypes[88]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4427,7 +4545,7 @@ func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitReplicaRequest.ProtoReflect.Descriptor instead.
func (*InitReplicaRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{86}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{88}
}
func (x *InitReplicaRequest) GetParent() *topodata.TabletAlias {
@@ -4467,7 +4585,7 @@ type InitReplicaResponse struct {
func (x *InitReplicaResponse) Reset() {
*x = InitReplicaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[87]
+ mi := &file_tabletmanagerdata_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4480,7 +4598,7 @@ func (x *InitReplicaResponse) String() string {
func (*InitReplicaResponse) ProtoMessage() {}
func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[87]
+ mi := &file_tabletmanagerdata_proto_msgTypes[89]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4493,7 +4611,7 @@ func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitReplicaResponse.ProtoReflect.Descriptor instead.
func (*InitReplicaResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{87}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{89}
}
type DemotePrimaryRequest struct {
@@ -4505,7 +4623,7 @@ type DemotePrimaryRequest struct {
func (x *DemotePrimaryRequest) Reset() {
*x = DemotePrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[88]
+ mi := &file_tabletmanagerdata_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4518,7 +4636,7 @@ func (x *DemotePrimaryRequest) String() string {
func (*DemotePrimaryRequest) ProtoMessage() {}
func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[88]
+ mi := &file_tabletmanagerdata_proto_msgTypes[90]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4531,7 +4649,7 @@ func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DemotePrimaryRequest.ProtoReflect.Descriptor instead.
func (*DemotePrimaryRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{88}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{90}
}
type DemotePrimaryResponse struct {
@@ -4546,7 +4664,7 @@ type DemotePrimaryResponse struct {
func (x *DemotePrimaryResponse) Reset() {
*x = DemotePrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[89]
+ mi := &file_tabletmanagerdata_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4559,7 +4677,7 @@ func (x *DemotePrimaryResponse) String() string {
func (*DemotePrimaryResponse) ProtoMessage() {}
func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[89]
+ mi := &file_tabletmanagerdata_proto_msgTypes[91]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4572,7 +4690,7 @@ func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DemotePrimaryResponse.ProtoReflect.Descriptor instead.
func (*DemotePrimaryResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{89}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{91}
}
func (x *DemotePrimaryResponse) GetPrimaryStatus() *replicationdata.PrimaryStatus {
@@ -4593,7 +4711,7 @@ type UndoDemotePrimaryRequest struct {
func (x *UndoDemotePrimaryRequest) Reset() {
*x = UndoDemotePrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[90]
+ mi := &file_tabletmanagerdata_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4606,7 +4724,7 @@ func (x *UndoDemotePrimaryRequest) String() string {
func (*UndoDemotePrimaryRequest) ProtoMessage() {}
func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[90]
+ mi := &file_tabletmanagerdata_proto_msgTypes[92]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4619,7 +4737,7 @@ func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UndoDemotePrimaryRequest.ProtoReflect.Descriptor instead.
func (*UndoDemotePrimaryRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{90}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{92}
}
func (x *UndoDemotePrimaryRequest) GetSemiSync() bool {
@@ -4638,7 +4756,7 @@ type UndoDemotePrimaryResponse struct {
func (x *UndoDemotePrimaryResponse) Reset() {
*x = UndoDemotePrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[91]
+ mi := &file_tabletmanagerdata_proto_msgTypes[93]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4651,7 +4769,7 @@ func (x *UndoDemotePrimaryResponse) String() string {
func (*UndoDemotePrimaryResponse) ProtoMessage() {}
func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[91]
+ mi := &file_tabletmanagerdata_proto_msgTypes[93]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4664,7 +4782,7 @@ func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UndoDemotePrimaryResponse.ProtoReflect.Descriptor instead.
func (*UndoDemotePrimaryResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{91}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{93}
}
type ReplicaWasPromotedRequest struct {
@@ -4676,7 +4794,7 @@ type ReplicaWasPromotedRequest struct {
func (x *ReplicaWasPromotedRequest) Reset() {
*x = ReplicaWasPromotedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[92]
+ mi := &file_tabletmanagerdata_proto_msgTypes[94]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4689,7 +4807,7 @@ func (x *ReplicaWasPromotedRequest) String() string {
func (*ReplicaWasPromotedRequest) ProtoMessage() {}
func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[92]
+ mi := &file_tabletmanagerdata_proto_msgTypes[94]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4702,7 +4820,7 @@ func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasPromotedRequest.ProtoReflect.Descriptor instead.
func (*ReplicaWasPromotedRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{92}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{94}
}
type ReplicaWasPromotedResponse struct {
@@ -4714,7 +4832,7 @@ type ReplicaWasPromotedResponse struct {
func (x *ReplicaWasPromotedResponse) Reset() {
*x = ReplicaWasPromotedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[93]
+ mi := &file_tabletmanagerdata_proto_msgTypes[95]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4727,7 +4845,7 @@ func (x *ReplicaWasPromotedResponse) String() string {
func (*ReplicaWasPromotedResponse) ProtoMessage() {}
func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[93]
+ mi := &file_tabletmanagerdata_proto_msgTypes[95]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4740,7 +4858,7 @@ func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasPromotedResponse.ProtoReflect.Descriptor instead.
func (*ReplicaWasPromotedResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{93}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{95}
}
type ResetReplicationParametersRequest struct {
@@ -4752,7 +4870,7 @@ type ResetReplicationParametersRequest struct {
func (x *ResetReplicationParametersRequest) Reset() {
*x = ResetReplicationParametersRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[94]
+ mi := &file_tabletmanagerdata_proto_msgTypes[96]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4765,7 +4883,7 @@ func (x *ResetReplicationParametersRequest) String() string {
func (*ResetReplicationParametersRequest) ProtoMessage() {}
func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[94]
+ mi := &file_tabletmanagerdata_proto_msgTypes[96]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4778,7 +4896,7 @@ func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use ResetReplicationParametersRequest.ProtoReflect.Descriptor instead.
func (*ResetReplicationParametersRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{94}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{96}
}
type ResetReplicationParametersResponse struct {
@@ -4790,7 +4908,7 @@ type ResetReplicationParametersResponse struct {
func (x *ResetReplicationParametersResponse) Reset() {
*x = ResetReplicationParametersResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[95]
+ mi := &file_tabletmanagerdata_proto_msgTypes[97]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4803,7 +4921,7 @@ func (x *ResetReplicationParametersResponse) String() string {
func (*ResetReplicationParametersResponse) ProtoMessage() {}
func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[95]
+ mi := &file_tabletmanagerdata_proto_msgTypes[97]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4816,7 +4934,7 @@ func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ResetReplicationParametersResponse.ProtoReflect.Descriptor instead.
func (*ResetReplicationParametersResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{95}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{97}
}
type FullStatusRequest struct {
@@ -4828,7 +4946,7 @@ type FullStatusRequest struct {
func (x *FullStatusRequest) Reset() {
*x = FullStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[96]
+ mi := &file_tabletmanagerdata_proto_msgTypes[98]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4841,7 +4959,7 @@ func (x *FullStatusRequest) String() string {
func (*FullStatusRequest) ProtoMessage() {}
func (x *FullStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[96]
+ mi := &file_tabletmanagerdata_proto_msgTypes[98]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4854,7 +4972,7 @@ func (x *FullStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FullStatusRequest.ProtoReflect.Descriptor instead.
func (*FullStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{96}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{98}
}
type FullStatusResponse struct {
@@ -4868,7 +4986,7 @@ type FullStatusResponse struct {
func (x *FullStatusResponse) Reset() {
*x = FullStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[97]
+ mi := &file_tabletmanagerdata_proto_msgTypes[99]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4881,7 +4999,7 @@ func (x *FullStatusResponse) String() string {
func (*FullStatusResponse) ProtoMessage() {}
func (x *FullStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[97]
+ mi := &file_tabletmanagerdata_proto_msgTypes[99]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4894,7 +5012,7 @@ func (x *FullStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FullStatusResponse.ProtoReflect.Descriptor instead.
func (*FullStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{97}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{99}
}
func (x *FullStatusResponse) GetStatus() *replicationdata.FullStatus {
@@ -4920,7 +5038,7 @@ type SetReplicationSourceRequest struct {
func (x *SetReplicationSourceRequest) Reset() {
*x = SetReplicationSourceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[98]
+ mi := &file_tabletmanagerdata_proto_msgTypes[100]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4933,7 +5051,7 @@ func (x *SetReplicationSourceRequest) String() string {
func (*SetReplicationSourceRequest) ProtoMessage() {}
func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[98]
+ mi := &file_tabletmanagerdata_proto_msgTypes[100]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4946,7 +5064,7 @@ func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationSourceRequest.ProtoReflect.Descriptor instead.
func (*SetReplicationSourceRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{98}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{100}
}
func (x *SetReplicationSourceRequest) GetParent() *topodata.TabletAlias {
@@ -5000,7 +5118,7 @@ type SetReplicationSourceResponse struct {
func (x *SetReplicationSourceResponse) Reset() {
*x = SetReplicationSourceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[99]
+ mi := &file_tabletmanagerdata_proto_msgTypes[101]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5013,7 +5131,7 @@ func (x *SetReplicationSourceResponse) String() string {
func (*SetReplicationSourceResponse) ProtoMessage() {}
func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[99]
+ mi := &file_tabletmanagerdata_proto_msgTypes[101]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5026,7 +5144,7 @@ func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationSourceResponse.ProtoReflect.Descriptor instead.
func (*SetReplicationSourceResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{99}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{101}
}
type ReplicaWasRestartedRequest struct {
@@ -5041,7 +5159,7 @@ type ReplicaWasRestartedRequest struct {
func (x *ReplicaWasRestartedRequest) Reset() {
*x = ReplicaWasRestartedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[100]
+ mi := &file_tabletmanagerdata_proto_msgTypes[102]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5054,7 +5172,7 @@ func (x *ReplicaWasRestartedRequest) String() string {
func (*ReplicaWasRestartedRequest) ProtoMessage() {}
func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[100]
+ mi := &file_tabletmanagerdata_proto_msgTypes[102]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5067,7 +5185,7 @@ func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasRestartedRequest.ProtoReflect.Descriptor instead.
func (*ReplicaWasRestartedRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{100}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{102}
}
func (x *ReplicaWasRestartedRequest) GetParent() *topodata.TabletAlias {
@@ -5086,7 +5204,7 @@ type ReplicaWasRestartedResponse struct {
func (x *ReplicaWasRestartedResponse) Reset() {
*x = ReplicaWasRestartedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[101]
+ mi := &file_tabletmanagerdata_proto_msgTypes[103]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5099,7 +5217,7 @@ func (x *ReplicaWasRestartedResponse) String() string {
func (*ReplicaWasRestartedResponse) ProtoMessage() {}
func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[101]
+ mi := &file_tabletmanagerdata_proto_msgTypes[103]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5112,7 +5230,7 @@ func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReplicaWasRestartedResponse.ProtoReflect.Descriptor instead.
func (*ReplicaWasRestartedResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{101}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{103}
}
type StopReplicationAndGetStatusRequest struct {
@@ -5126,7 +5244,7 @@ type StopReplicationAndGetStatusRequest struct {
func (x *StopReplicationAndGetStatusRequest) Reset() {
*x = StopReplicationAndGetStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[102]
+ mi := &file_tabletmanagerdata_proto_msgTypes[104]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5139,7 +5257,7 @@ func (x *StopReplicationAndGetStatusRequest) String() string {
func (*StopReplicationAndGetStatusRequest) ProtoMessage() {}
func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[102]
+ mi := &file_tabletmanagerdata_proto_msgTypes[104]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5152,7 +5270,7 @@ func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use StopReplicationAndGetStatusRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationAndGetStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{102}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{104}
}
func (x *StopReplicationAndGetStatusRequest) GetStopReplicationMode() replicationdata.StopReplicationMode {
@@ -5174,7 +5292,7 @@ type StopReplicationAndGetStatusResponse struct {
func (x *StopReplicationAndGetStatusResponse) Reset() {
*x = StopReplicationAndGetStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[103]
+ mi := &file_tabletmanagerdata_proto_msgTypes[105]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5187,7 +5305,7 @@ func (x *StopReplicationAndGetStatusResponse) String() string {
func (*StopReplicationAndGetStatusResponse) ProtoMessage() {}
func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[103]
+ mi := &file_tabletmanagerdata_proto_msgTypes[105]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5200,7 +5318,7 @@ func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use StopReplicationAndGetStatusResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationAndGetStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{103}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{105}
}
func (x *StopReplicationAndGetStatusResponse) GetStatus() *replicationdata.StopReplicationStatus {
@@ -5221,7 +5339,7 @@ type PromoteReplicaRequest struct {
func (x *PromoteReplicaRequest) Reset() {
*x = PromoteReplicaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[104]
+ mi := &file_tabletmanagerdata_proto_msgTypes[106]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5234,7 +5352,7 @@ func (x *PromoteReplicaRequest) String() string {
func (*PromoteReplicaRequest) ProtoMessage() {}
func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[104]
+ mi := &file_tabletmanagerdata_proto_msgTypes[106]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5247,7 +5365,7 @@ func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PromoteReplicaRequest.ProtoReflect.Descriptor instead.
func (*PromoteReplicaRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{104}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{106}
}
func (x *PromoteReplicaRequest) GetSemiSync() bool {
@@ -5268,7 +5386,7 @@ type PromoteReplicaResponse struct {
func (x *PromoteReplicaResponse) Reset() {
*x = PromoteReplicaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[105]
+ mi := &file_tabletmanagerdata_proto_msgTypes[107]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5281,7 +5399,7 @@ func (x *PromoteReplicaResponse) String() string {
func (*PromoteReplicaResponse) ProtoMessage() {}
func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[105]
+ mi := &file_tabletmanagerdata_proto_msgTypes[107]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5294,7 +5412,7 @@ func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PromoteReplicaResponse.ProtoReflect.Descriptor instead.
func (*PromoteReplicaResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{105}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{107}
}
func (x *PromoteReplicaResponse) GetPosition() string {
@@ -5324,7 +5442,7 @@ type BackupRequest struct {
func (x *BackupRequest) Reset() {
*x = BackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[106]
+ mi := &file_tabletmanagerdata_proto_msgTypes[108]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5337,7 +5455,7 @@ func (x *BackupRequest) String() string {
func (*BackupRequest) ProtoMessage() {}
func (x *BackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[106]
+ mi := &file_tabletmanagerdata_proto_msgTypes[108]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5350,7 +5468,7 @@ func (x *BackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use BackupRequest.ProtoReflect.Descriptor instead.
func (*BackupRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{106}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{108}
}
func (x *BackupRequest) GetConcurrency() int32 {
@@ -5399,7 +5517,7 @@ type BackupResponse struct {
func (x *BackupResponse) Reset() {
*x = BackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[107]
+ mi := &file_tabletmanagerdata_proto_msgTypes[109]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5412,7 +5530,7 @@ func (x *BackupResponse) String() string {
func (*BackupResponse) ProtoMessage() {}
func (x *BackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[107]
+ mi := &file_tabletmanagerdata_proto_msgTypes[109]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5425,7 +5543,7 @@ func (x *BackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use BackupResponse.ProtoReflect.Descriptor instead.
func (*BackupResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{107}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{109}
}
func (x *BackupResponse) GetEvent() *logutil.Event {
@@ -5457,7 +5575,7 @@ type RestoreFromBackupRequest struct {
func (x *RestoreFromBackupRequest) Reset() {
*x = RestoreFromBackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[108]
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5470,7 +5588,7 @@ func (x *RestoreFromBackupRequest) String() string {
func (*RestoreFromBackupRequest) ProtoMessage() {}
func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[108]
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5483,7 +5601,7 @@ func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupRequest.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{108}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
}
func (x *RestoreFromBackupRequest) GetBackupTime() *vttime.Time {
@@ -5532,7 +5650,7 @@ type RestoreFromBackupResponse struct {
func (x *RestoreFromBackupResponse) Reset() {
*x = RestoreFromBackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[109]
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5545,7 +5663,7 @@ func (x *RestoreFromBackupResponse) String() string {
func (*RestoreFromBackupResponse) ProtoMessage() {}
func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[109]
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5558,7 +5676,7 @@ func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupResponse.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{109}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
}
func (x *RestoreFromBackupResponse) GetEvent() *logutil.Event {
@@ -5595,7 +5713,7 @@ type CreateVReplicationWorkflowRequest struct {
func (x *CreateVReplicationWorkflowRequest) Reset() {
*x = CreateVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5608,7 +5726,7 @@ func (x *CreateVReplicationWorkflowRequest) String() string {
func (*CreateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5621,7 +5739,7 @@ func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use CreateVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*CreateVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{110}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
}
func (x *CreateVReplicationWorkflowRequest) GetWorkflow() string {
@@ -5712,7 +5830,7 @@ type CreateVReplicationWorkflowResponse struct {
func (x *CreateVReplicationWorkflowResponse) Reset() {
*x = CreateVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5725,7 +5843,7 @@ func (x *CreateVReplicationWorkflowResponse) String() string {
func (*CreateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5738,7 +5856,7 @@ func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use CreateVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*CreateVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{111}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
}
func (x *CreateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -5764,7 +5882,7 @@ type DeleteTableDataRequest struct {
func (x *DeleteTableDataRequest) Reset() {
*x = DeleteTableDataRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5777,7 +5895,7 @@ func (x *DeleteTableDataRequest) String() string {
func (*DeleteTableDataRequest) ProtoMessage() {}
func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5790,7 +5908,7 @@ func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteTableDataRequest.ProtoReflect.Descriptor instead.
func (*DeleteTableDataRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{112}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
}
func (x *DeleteTableDataRequest) GetTableFilters() map[string]string {
@@ -5816,7 +5934,7 @@ type DeleteTableDataResponse struct {
func (x *DeleteTableDataResponse) Reset() {
*x = DeleteTableDataResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5829,7 +5947,7 @@ func (x *DeleteTableDataResponse) String() string {
func (*DeleteTableDataResponse) ProtoMessage() {}
func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5842,7 +5960,7 @@ func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DeleteTableDataResponse.ProtoReflect.Descriptor instead.
func (*DeleteTableDataResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{113}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
}
type DeleteVReplicationWorkflowRequest struct {
@@ -5856,7 +5974,7 @@ type DeleteVReplicationWorkflowRequest struct {
func (x *DeleteVReplicationWorkflowRequest) Reset() {
*x = DeleteVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5869,7 +5987,7 @@ func (x *DeleteVReplicationWorkflowRequest) String() string {
func (*DeleteVReplicationWorkflowRequest) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5882,7 +6000,7 @@ func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{114}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
}
func (x *DeleteVReplicationWorkflowRequest) GetWorkflow() string {
@@ -5903,7 +6021,7 @@ type DeleteVReplicationWorkflowResponse struct {
func (x *DeleteVReplicationWorkflowResponse) Reset() {
*x = DeleteVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5916,7 +6034,7 @@ func (x *DeleteVReplicationWorkflowResponse) String() string {
func (*DeleteVReplicationWorkflowResponse) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5929,7 +6047,7 @@ func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use DeleteVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*DeleteVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{115}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
}
func (x *DeleteVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -5948,7 +6066,7 @@ type HasVReplicationWorkflowsRequest struct {
func (x *HasVReplicationWorkflowsRequest) Reset() {
*x = HasVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5961,7 +6079,7 @@ func (x *HasVReplicationWorkflowsRequest) String() string {
func (*HasVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5974,7 +6092,7 @@ func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{116}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
}
type HasVReplicationWorkflowsResponse struct {
@@ -5988,7 +6106,7 @@ type HasVReplicationWorkflowsResponse struct {
func (x *HasVReplicationWorkflowsResponse) Reset() {
*x = HasVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6001,7 +6119,7 @@ func (x *HasVReplicationWorkflowsResponse) String() string {
func (*HasVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6014,7 +6132,7 @@ func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use HasVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*HasVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{117}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
}
func (x *HasVReplicationWorkflowsResponse) GetHas() bool {
@@ -6040,7 +6158,7 @@ type ReadVReplicationWorkflowsRequest struct {
func (x *ReadVReplicationWorkflowsRequest) Reset() {
*x = ReadVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6053,7 +6171,7 @@ func (x *ReadVReplicationWorkflowsRequest) String() string {
func (*ReadVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6066,7 +6184,7 @@ func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{118}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
}
func (x *ReadVReplicationWorkflowsRequest) GetIncludeIds() []int32 {
@@ -6122,7 +6240,7 @@ type ReadVReplicationWorkflowsResponse struct {
func (x *ReadVReplicationWorkflowsResponse) Reset() {
*x = ReadVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6135,7 +6253,7 @@ func (x *ReadVReplicationWorkflowsResponse) String() string {
func (*ReadVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6148,7 +6266,7 @@ func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ReadVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{119}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
}
func (x *ReadVReplicationWorkflowsResponse) GetWorkflows() []*ReadVReplicationWorkflowResponse {
@@ -6169,7 +6287,7 @@ type ReadVReplicationWorkflowRequest struct {
func (x *ReadVReplicationWorkflowRequest) Reset() {
*x = ReadVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6182,7 +6300,7 @@ func (x *ReadVReplicationWorkflowRequest) String() string {
func (*ReadVReplicationWorkflowRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6195,7 +6313,7 @@ func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{120}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
}
func (x *ReadVReplicationWorkflowRequest) GetWorkflow() string {
@@ -6227,7 +6345,7 @@ type ReadVReplicationWorkflowResponse struct {
func (x *ReadVReplicationWorkflowResponse) Reset() {
*x = ReadVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6240,7 +6358,7 @@ func (x *ReadVReplicationWorkflowResponse) String() string {
func (*ReadVReplicationWorkflowResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6253,7 +6371,7 @@ func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReadVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
}
func (x *ReadVReplicationWorkflowResponse) GetWorkflow() string {
@@ -6349,7 +6467,7 @@ type ValidateVReplicationPermissionsRequest struct {
func (x *ValidateVReplicationPermissionsRequest) Reset() {
*x = ValidateVReplicationPermissionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6362,7 +6480,7 @@ func (x *ValidateVReplicationPermissionsRequest) String() string {
func (*ValidateVReplicationPermissionsRequest) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6375,7 +6493,7 @@ func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Mes
// Deprecated: Use ValidateVReplicationPermissionsRequest.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{122}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
}
type ValidateVReplicationPermissionsResponse struct {
@@ -6393,7 +6511,7 @@ type ValidateVReplicationPermissionsResponse struct {
func (x *ValidateVReplicationPermissionsResponse) Reset() {
*x = ValidateVReplicationPermissionsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6406,7 +6524,7 @@ func (x *ValidateVReplicationPermissionsResponse) String() string {
func (*ValidateVReplicationPermissionsResponse) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6419,7 +6537,7 @@ func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Me
// Deprecated: Use ValidateVReplicationPermissionsResponse.ProtoReflect.Descriptor instead.
func (*ValidateVReplicationPermissionsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
}
func (x *ValidateVReplicationPermissionsResponse) GetUser() string {
@@ -6452,7 +6570,7 @@ type VDiffRequest struct {
func (x *VDiffRequest) Reset() {
*x = VDiffRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6465,7 +6583,7 @@ func (x *VDiffRequest) String() string {
func (*VDiffRequest) ProtoMessage() {}
func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6478,7 +6596,7 @@ func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffRequest.ProtoReflect.Descriptor instead.
func (*VDiffRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{124}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
}
func (x *VDiffRequest) GetKeyspace() string {
@@ -6536,7 +6654,7 @@ type VDiffResponse struct {
func (x *VDiffResponse) Reset() {
*x = VDiffResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6549,7 +6667,7 @@ func (x *VDiffResponse) String() string {
func (*VDiffResponse) ProtoMessage() {}
func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6562,7 +6680,7 @@ func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffResponse.ProtoReflect.Descriptor instead.
func (*VDiffResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{125}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
}
func (x *VDiffResponse) GetId() int64 {
@@ -6600,7 +6718,7 @@ type VDiffPickerOptions struct {
func (x *VDiffPickerOptions) Reset() {
*x = VDiffPickerOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6613,7 +6731,7 @@ func (x *VDiffPickerOptions) String() string {
func (*VDiffPickerOptions) ProtoMessage() {}
func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6626,7 +6744,7 @@ func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffPickerOptions.ProtoReflect.Descriptor instead.
func (*VDiffPickerOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{126}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
}
func (x *VDiffPickerOptions) GetTabletTypes() string {
@@ -6666,7 +6784,7 @@ type VDiffReportOptions struct {
func (x *VDiffReportOptions) Reset() {
*x = VDiffReportOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6679,7 +6797,7 @@ func (x *VDiffReportOptions) String() string {
func (*VDiffReportOptions) ProtoMessage() {}
func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6692,7 +6810,7 @@ func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffReportOptions.ProtoReflect.Descriptor instead.
func (*VDiffReportOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{127}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
}
func (x *VDiffReportOptions) GetOnlyPks() bool {
@@ -6750,7 +6868,7 @@ type VDiffCoreOptions struct {
func (x *VDiffCoreOptions) Reset() {
*x = VDiffCoreOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6763,7 +6881,7 @@ func (x *VDiffCoreOptions) String() string {
func (*VDiffCoreOptions) ProtoMessage() {}
func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6776,7 +6894,7 @@ func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCoreOptions.ProtoReflect.Descriptor instead.
func (*VDiffCoreOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{128}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
}
func (x *VDiffCoreOptions) GetTables() string {
@@ -6862,7 +6980,7 @@ type VDiffOptions struct {
func (x *VDiffOptions) Reset() {
*x = VDiffOptions{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6875,7 +6993,7 @@ func (x *VDiffOptions) String() string {
func (*VDiffOptions) ProtoMessage() {}
func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6888,7 +7006,7 @@ func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffOptions.ProtoReflect.Descriptor instead.
func (*VDiffOptions) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{129}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
}
func (x *VDiffOptions) GetPickerOptions() *VDiffPickerOptions {
@@ -6935,7 +7053,7 @@ type UpdateVReplicationWorkflowRequest struct {
func (x *UpdateVReplicationWorkflowRequest) Reset() {
*x = UpdateVReplicationWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6948,7 +7066,7 @@ func (x *UpdateVReplicationWorkflowRequest) String() string {
func (*UpdateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6961,7 +7079,7 @@ func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{130}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
}
func (x *UpdateVReplicationWorkflowRequest) GetWorkflow() string {
@@ -7024,7 +7142,7 @@ type UpdateVReplicationWorkflowResponse struct {
func (x *UpdateVReplicationWorkflowResponse) Reset() {
*x = UpdateVReplicationWorkflowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7037,7 +7155,7 @@ func (x *UpdateVReplicationWorkflowResponse) String() string {
func (*UpdateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7050,7 +7168,7 @@ func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{131}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
}
func (x *UpdateVReplicationWorkflowResponse) GetResult() *query.QueryResult {
@@ -7082,7 +7200,7 @@ type UpdateVReplicationWorkflowsRequest struct {
func (x *UpdateVReplicationWorkflowsRequest) Reset() {
*x = UpdateVReplicationWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7095,7 +7213,7 @@ func (x *UpdateVReplicationWorkflowsRequest) String() string {
func (*UpdateVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7108,7 +7226,7 @@ func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use UpdateVReplicationWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{132}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
}
func (x *UpdateVReplicationWorkflowsRequest) GetAllWorkflows() bool {
@@ -7164,7 +7282,7 @@ type UpdateVReplicationWorkflowsResponse struct {
func (x *UpdateVReplicationWorkflowsResponse) Reset() {
*x = UpdateVReplicationWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7177,7 +7295,7 @@ func (x *UpdateVReplicationWorkflowsResponse) String() string {
func (*UpdateVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7190,7 +7308,7 @@ func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use UpdateVReplicationWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*UpdateVReplicationWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{133}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
}
func (x *UpdateVReplicationWorkflowsResponse) GetResult() *query.QueryResult {
@@ -7211,7 +7329,7 @@ type ResetSequencesRequest struct {
func (x *ResetSequencesRequest) Reset() {
*x = ResetSequencesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7224,7 +7342,7 @@ func (x *ResetSequencesRequest) String() string {
func (*ResetSequencesRequest) ProtoMessage() {}
func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7237,7 +7355,7 @@ func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesRequest.ProtoReflect.Descriptor instead.
func (*ResetSequencesRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{134}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
}
func (x *ResetSequencesRequest) GetTables() []string {
@@ -7256,7 +7374,7 @@ type ResetSequencesResponse struct {
func (x *ResetSequencesResponse) Reset() {
*x = ResetSequencesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7269,7 +7387,7 @@ func (x *ResetSequencesResponse) String() string {
func (*ResetSequencesResponse) ProtoMessage() {}
func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7282,7 +7400,7 @@ func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ResetSequencesResponse.ProtoReflect.Descriptor instead.
func (*ResetSequencesResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{135}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
}
type CheckThrottlerRequest struct {
@@ -7304,7 +7422,7 @@ type CheckThrottlerRequest struct {
func (x *CheckThrottlerRequest) Reset() {
*x = CheckThrottlerRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7317,7 +7435,7 @@ func (x *CheckThrottlerRequest) String() string {
func (*CheckThrottlerRequest) ProtoMessage() {}
func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7330,7 +7448,7 @@ func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerRequest.ProtoReflect.Descriptor instead.
func (*CheckThrottlerRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{136}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{138}
}
func (x *CheckThrottlerRequest) GetAppName() string {
@@ -7400,7 +7518,7 @@ type CheckThrottlerResponse struct {
func (x *CheckThrottlerResponse) Reset() {
*x = CheckThrottlerResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7413,7 +7531,7 @@ func (x *CheckThrottlerResponse) String() string {
func (*CheckThrottlerResponse) ProtoMessage() {}
func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7426,7 +7544,7 @@ func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139}
}
func (x *CheckThrottlerResponse) GetStatusCode() int32 {
@@ -7508,7 +7626,7 @@ type GetThrottlerStatusRequest struct {
func (x *GetThrottlerStatusRequest) Reset() {
*x = GetThrottlerStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[138]
+ mi := &file_tabletmanagerdata_proto_msgTypes[140]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7521,7 +7639,7 @@ func (x *GetThrottlerStatusRequest) String() string {
func (*GetThrottlerStatusRequest) ProtoMessage() {}
func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[138]
+ mi := &file_tabletmanagerdata_proto_msgTypes[140]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7534,7 +7652,7 @@ func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusRequest.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{138}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{140}
}
type GetThrottlerStatusResponse struct {
@@ -7583,7 +7701,7 @@ type GetThrottlerStatusResponse struct {
func (x *GetThrottlerStatusResponse) Reset() {
*x = GetThrottlerStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[139]
+ mi := &file_tabletmanagerdata_proto_msgTypes[141]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7596,7 +7714,7 @@ func (x *GetThrottlerStatusResponse) String() string {
func (*GetThrottlerStatusResponse) ProtoMessage() {}
func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[139]
+ mi := &file_tabletmanagerdata_proto_msgTypes[141]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7609,7 +7727,7 @@ func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetThrottlerStatusResponse.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141}
}
func (x *GetThrottlerStatusResponse) GetTabletAlias() string {
@@ -7750,7 +7868,7 @@ type ChangeTagsRequest struct {
func (x *ChangeTagsRequest) Reset() {
*x = ChangeTagsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[140]
+ mi := &file_tabletmanagerdata_proto_msgTypes[142]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7763,7 +7881,7 @@ func (x *ChangeTagsRequest) String() string {
func (*ChangeTagsRequest) ProtoMessage() {}
func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[140]
+ mi := &file_tabletmanagerdata_proto_msgTypes[142]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7776,7 +7894,7 @@ func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsRequest.ProtoReflect.Descriptor instead.
func (*ChangeTagsRequest) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{140}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{142}
}
func (x *ChangeTagsRequest) GetTags() map[string]string {
@@ -7804,7 +7922,7 @@ type ChangeTagsResponse struct {
func (x *ChangeTagsResponse) Reset() {
*x = ChangeTagsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[141]
+ mi := &file_tabletmanagerdata_proto_msgTypes[143]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7817,7 +7935,7 @@ func (x *ChangeTagsResponse) String() string {
func (*ChangeTagsResponse) ProtoMessage() {}
func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[141]
+ mi := &file_tabletmanagerdata_proto_msgTypes[143]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7830,7 +7948,7 @@ func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ChangeTagsResponse.ProtoReflect.Descriptor instead.
func (*ChangeTagsResponse) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{143}
}
func (x *ChangeTagsResponse) GetTags() map[string]string {
@@ -7864,7 +7982,7 @@ type ReadVReplicationWorkflowResponse_Stream struct {
func (x *ReadVReplicationWorkflowResponse_Stream) Reset() {
*x = ReadVReplicationWorkflowResponse_Stream{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[147]
+ mi := &file_tabletmanagerdata_proto_msgTypes[149]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7877,7 +7995,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) String() string {
func (*ReadVReplicationWorkflowResponse_Stream) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[147]
+ mi := &file_tabletmanagerdata_proto_msgTypes[149]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7890,7 +8008,7 @@ func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Me
// Deprecated: Use ReadVReplicationWorkflowResponse_Stream.ProtoReflect.Descriptor instead.
func (*ReadVReplicationWorkflowResponse_Stream) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{121, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{123, 0}
}
func (x *ReadVReplicationWorkflowResponse_Stream) GetId() int32 {
@@ -8017,7 +8135,7 @@ type CheckThrottlerResponse_Metric struct {
func (x *CheckThrottlerResponse_Metric) Reset() {
*x = CheckThrottlerResponse_Metric{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[152]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8030,7 +8148,7 @@ func (x *CheckThrottlerResponse_Metric) String() string {
func (*CheckThrottlerResponse_Metric) ProtoMessage() {}
func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[150]
+ mi := &file_tabletmanagerdata_proto_msgTypes[152]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8043,7 +8161,7 @@ func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
// Deprecated: Use CheckThrottlerResponse_Metric.ProtoReflect.Descriptor instead.
func (*CheckThrottlerResponse_Metric) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{137, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 0}
}
func (x *CheckThrottlerResponse_Metric) GetName() string {
@@ -8114,7 +8232,7 @@ type GetThrottlerStatusResponse_MetricResult struct {
func (x *GetThrottlerStatusResponse_MetricResult) Reset() {
*x = GetThrottlerStatusResponse_MetricResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[152]
+ mi := &file_tabletmanagerdata_proto_msgTypes[154]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8127,7 +8245,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) String() string {
func (*GetThrottlerStatusResponse_MetricResult) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[152]
+ mi := &file_tabletmanagerdata_proto_msgTypes[154]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8140,7 +8258,7 @@ func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricResult.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricResult) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 0}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141, 0}
}
func (x *GetThrottlerStatusResponse_MetricResult) GetValue() float64 {
@@ -8169,7 +8287,7 @@ type GetThrottlerStatusResponse_MetricHealth struct {
func (x *GetThrottlerStatusResponse_MetricHealth) Reset() {
*x = GetThrottlerStatusResponse_MetricHealth{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[155]
+ mi := &file_tabletmanagerdata_proto_msgTypes[157]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8182,7 +8300,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) String() string {
func (*GetThrottlerStatusResponse_MetricHealth) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[155]
+ mi := &file_tabletmanagerdata_proto_msgTypes[157]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8195,7 +8313,7 @@ func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Me
// Deprecated: Use GetThrottlerStatusResponse_MetricHealth.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_MetricHealth) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 3}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141, 3}
}
func (x *GetThrottlerStatusResponse_MetricHealth) GetLastHealthyAt() *vttime.Time {
@@ -8226,7 +8344,7 @@ type GetThrottlerStatusResponse_RecentApp struct {
func (x *GetThrottlerStatusResponse_RecentApp) Reset() {
*x = GetThrottlerStatusResponse_RecentApp{}
if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[159]
+ mi := &file_tabletmanagerdata_proto_msgTypes[161]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8239,7 +8357,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) String() string {
func (*GetThrottlerStatusResponse_RecentApp) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Message {
- mi := &file_tabletmanagerdata_proto_msgTypes[159]
+ mi := &file_tabletmanagerdata_proto_msgTypes[161]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8252,7 +8370,7 @@ func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Messa
// Deprecated: Use GetThrottlerStatusResponse_RecentApp.ProtoReflect.Descriptor instead.
func (*GetThrottlerStatusResponse_RecentApp) Descriptor() ([]byte, []int) {
- return file_tabletmanagerdata_proto_rawDescGZIP(), []int{139, 7}
+ return file_tabletmanagerdata_proto_rawDescGZIP(), []int{141, 7}
}
func (x *GetThrottlerStatusResponse_RecentApp) GetCheckedAt() *vttime.Time {
@@ -8604,841 +8722,854 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{
0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x74,
- 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x40, 0x0a, 0x1a, 0x43, 0x6f,
- 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02,
- 0x6d, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6d, 0x6d, 0x22, 0x1d, 0x0a, 0x1b,
- 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x4d,
- 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5b, 0x0a, 0x18, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48,
- 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x79, 0x73, 0x71, 0x6c, 0x63,
- 0x74, 0x6c, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
- 0x4c, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x16, 0x0a,
- 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36,
- 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
- 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, 0x46,
- 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x0a,
- 0x17, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a,
- 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
+ 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x19, 0x47, 0x65,
+ 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x1a,
+ 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
+ 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69,
+ 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x40, 0x0a,
+ 0x1a, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64,
+ 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x12,
+ 0x0e, 0x0a, 0x02, 0x6d, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6d, 0x6d, 0x22,
+ 0x1d, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19,
+ 0x0a, 0x17, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5b, 0x0a, 0x18, 0x4d, 0x79, 0x73,
+ 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x79, 0x73,
+ 0x71, 0x6c, 0x63, 0x74, 0x6c, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61,
- 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x3c, 0x0a,
- 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x17, 0x53,
- 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79,
- 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79,
- 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62,
- 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f,
- 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b,
- 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x52,
- 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a,
- 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75,
- 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a, 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x0a, 0x1d, 0x56,
+ 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61,
+ 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x22, 0x19, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53,
+ 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a,
+ 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
+ 0x22, 0x3c, 0x0a, 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35,
+ 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d,
+ 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d,
+ 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x62, 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f,
+ 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69,
+ 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66,
+ 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47,
+ 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19,
+ 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73,
+ 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a, 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b,
+ 0x0a, 0x1d, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61,
+ 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
+ 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56,
0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46,
- 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50,
- 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x12, 0x49, 0x6e,
- 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x31, 0x0a, 0x13,
- 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22,
- 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d,
- 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x70,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x50, 0x6f,
- 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f,
- 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a,
- 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75,
- 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
- 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a,
- 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01, 0x0a, 0x12, 0x49,
- 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69,
- 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16,
- 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
- 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x18,
- 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69,
- 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69,
- 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f,
- 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
- 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c,
- 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d,
- 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21,
- 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x6c, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x12,
- 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x36,
- 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77,
- 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74,
- 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e,
- 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
+ 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a,
+ 0x12, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22,
+ 0x31, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52,
+ 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
+ 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a,
+ 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a,
+ 0x1f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x22, 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01,
+ 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
- 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x70,
- 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f,
- 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22,
- 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69,
- 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69,
- 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a, 0x0d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b,
- 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23,
- 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72,
- 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65,
- 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x70, 0x67,
- 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b,
- 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48,
- 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x88,
- 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e,
- 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfe, 0x01, 0x0a,
- 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b,
- 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b, 0x62, 0x61, 0x63,
- 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c,
- 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x62, 0x61,
- 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74,
- 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f, 0x73, 0x12, 0x17,
- 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54,
- 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
- 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65,
- 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64,
- 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x41, 0x0a,
- 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b,
- 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75,
- 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74,
- 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69, 0x6e, 0x6c,
- 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e,
- 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73,
- 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
- 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x49,
- 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a,
+ 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e,
+ 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22,
+ 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44,
+ 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57,
+ 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
+ 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75,
+ 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+ 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53,
+ 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70,
+ 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
+ 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d,
+ 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e,
+ 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69,
+ 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
+ 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65,
+ 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73,
+ 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f,
+ 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65,
+ 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
+ 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01,
+ 0x10, 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
+ 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
+ 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01,
+ 0x0a, 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
+ 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
+ 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61,
+ 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72,
+ 0x61, 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
+ 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69,
+ 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
+ 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75,
+ 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74,
+ 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22,
+ 0xfe, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b,
+ 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52,
+ 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72,
+ 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f,
+ 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54,
+ 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c,
+ 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67,
+ 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f,
+ 0x77, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73,
+ 0x22, 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a,
+ 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c,
+ 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62,
+ 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e,
+ 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66,
+ 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
+ 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
+ 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x12, 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b,
+ 0x65, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
+ 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72,
+ 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f,
+ 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69,
+ 0x7a, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f,
+ 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22,
+ 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52,
+ 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73,
+ 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a,
+ 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30,
- 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72,
- 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65,
- 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73,
- 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12,
- 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f,
- 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x41, 0x66,
- 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x60,
- 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
- 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x1a,
- 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
- 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44,
- 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x21, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x22,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x21,
- 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
- 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, 0x2b, 0x0a,
- 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
- 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75,
- 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66,
- 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x21, 0x52, 0x65,
- 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e,
+ 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65,
+ 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e,
+ 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+ 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a,
+ 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65,
+ 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
+ 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61,
+ 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64,
+ 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
+ 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14,
- 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72,
- 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,
- 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
- 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x0d,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x14,
- 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f,
- 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x66, 0x65,
- 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x54,
- 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72,
- 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x73,
- 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
- 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61,
- 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69,
- 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x0e,
- 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a,
- 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69,
- 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6f,
- 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x74,
- 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x70, 0x73,
- 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d,
- 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67,
- 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
- 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x14,
- 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73,
- 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
- 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0e,
- 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x0c,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
- 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
- 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
- 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
- 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x26, 0x56,
- 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
- 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x16, 0x0a,
- 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75,
- 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55,
- 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6a,
- 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12,
- 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x76,
- 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x12, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x65,
- 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x63,
- 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
- 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67,
- 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65,
- 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d,
- 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
- 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72,
- 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x61,
- 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x6f, 0x77, 0x5f,
- 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x72, 0x75, 0x6e,
- 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x72,
- 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x72, 0x75, 0x6e,
- 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66,
- 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x72,
- 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x74,
- 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1a, 0x0a,
- 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6d,
- 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73,
- 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65,
- 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
- 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x72,
- 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x6f,
- 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78,
- 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x09, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, 0x65, 0x63, 0x6f,
- 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53,
- 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x75, 0x74, 0x6f,
- 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, 0x63, 0x6b, 0x65,
- 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x61,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07,
+ 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72,
+ 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a,
- 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x72, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, 0x04, 0x0a, 0x21,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a,
- 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65,
- 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x1b,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48,
- 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12,
- 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x6e, 0x44,
- 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x6e, 0x44, 0x64,
- 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x05, 0x73, 0x74,
- 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
- 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0x42, 0x0a, 0x14,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
- 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
- 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, 0x0a, 0x22, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xd6, 0x02,
+ 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
+ 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
+ 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c,
+ 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a,
+ 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12,
+ 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61,
+ 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78,
+ 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12,
+ 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
+ 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74,
+ 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76,
+ 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
+ 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
+ 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f,
+ 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28,
+ 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66,
+ 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66,
+ 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69,
+ 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66,
+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a,
+ 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+ 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65,
+ 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66,
+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72,
+ 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
+ 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,
+ 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72,
+ 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74,
+ 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54,
+ 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
+ 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72,
+ 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f,
+ 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73,
+ 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63,
+ 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72,
+ 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72,
+ 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c,
+ 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10,
+ 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53,
+ 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75,
+ 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61,
+ 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69,
+ 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b,
+ 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65,
+ 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65,
+ 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed,
+ 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74,
+ 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12,
+ 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88,
+ 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f,
+ 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a,
+ 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
+ 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08,
+ 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50,
0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
- 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61,
- 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73,
- 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08,
- 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a,
- 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x52, 0x65, 0x73,
- 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65,
- 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
- 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f,
- 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12,
- 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
- 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
- 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, 0x5f, 0x69, 0x66,
- 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73,
- 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x61,
- 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68,
- 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73,
- 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79,
- 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
- 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12,
- 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
+ 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02,
+ 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
+ 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70,
+ 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a,
+ 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f,
+ 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b,
+ 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69,
+ 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72,
+ 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68,
+ 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a,
+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
- 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,
- 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, 0x0a, 0x06, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14,
- 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65,
- 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14,
- 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
- 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68,
- 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69,
- 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6c, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4c, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x1d, 0x0a,
- 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
- 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6c,
- 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
- 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f,
- 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
- 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01,
- 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
- 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d,
- 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
- 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e,
- 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
- 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74,
+ 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52,
+ 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02,
+ 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
+ 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
+ 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x67, 0x67, 0x72,
- 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
- 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72,
- 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x61, 0x70,
- 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
+ 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74,
0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x68, 0x72, 0x6f,
- 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x61, 0x70, 0x70,
- 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68,
0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x70,
- 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
- 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0b, 0x72, 0x65,
- 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73,
+ 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69,
+ 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70,
+ 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28,
+ 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74,
+ 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65,
+ 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66,
+ 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52,
- 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a,
- 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65,
- 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41,
+ 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
+ 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
+ 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81,
- 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12,
- 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f,
- 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
- 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
- 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e,
- 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74,
- 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74,
+ 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13,
+ 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c,
0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
- 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x52,
- 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x44,
- 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41,
- 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12,
- 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65,
- 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70,
- 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70,
- 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a,
- 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65,
- 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x12, 0x43, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
- 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x3e,
- 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41,
- 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10,
- 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x83,
- 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0d, 0x0a,
- 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02,
- 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, 0x4f, 0x4c,
- 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a,
- 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e,
- 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10, 0x04,
- 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52,
- 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69,
- 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63,
+ 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+ 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65,
+ 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a,
+ 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a,
+ 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67,
+ 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
+ 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65,
+ 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
+ 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
+ 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70,
+ 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41,
+ 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65,
+ 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
+ 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61,
+ 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70,
+ 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a,
+ 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07,
+ 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44,
+ 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
+ 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
+ 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12,
+ 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53,
+ 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12,
+ 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12,
+ 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49,
+ 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f,
+ 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73,
+ 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
+ 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
}
var (
@@ -9454,7 +9585,7 @@ func file_tabletmanagerdata_proto_rawDescGZIP() []byte {
}
var file_tabletmanagerdata_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 163)
+var file_tabletmanagerdata_proto_msgTypes = make([]protoimpl.MessageInfo, 165)
var file_tabletmanagerdata_proto_goTypes = []any{
(TabletSelectionPreference)(0), // 0: tabletmanagerdata.TabletSelectionPreference
(CheckThrottlerResponseCode)(0), // 1: tabletmanagerdata.CheckThrottlerResponseCode
@@ -9510,236 +9641,238 @@ var file_tabletmanagerdata_proto_goTypes = []any{
(*GetUnresolvedTransactionsResponse)(nil), // 51: tabletmanagerdata.GetUnresolvedTransactionsResponse
(*ReadTransactionRequest)(nil), // 52: tabletmanagerdata.ReadTransactionRequest
(*ReadTransactionResponse)(nil), // 53: tabletmanagerdata.ReadTransactionResponse
- (*ConcludeTransactionRequest)(nil), // 54: tabletmanagerdata.ConcludeTransactionRequest
- (*ConcludeTransactionResponse)(nil), // 55: tabletmanagerdata.ConcludeTransactionResponse
- (*MysqlHostMetricsRequest)(nil), // 56: tabletmanagerdata.MysqlHostMetricsRequest
- (*MysqlHostMetricsResponse)(nil), // 57: tabletmanagerdata.MysqlHostMetricsResponse
- (*ReplicationStatusRequest)(nil), // 58: tabletmanagerdata.ReplicationStatusRequest
- (*ReplicationStatusResponse)(nil), // 59: tabletmanagerdata.ReplicationStatusResponse
- (*PrimaryStatusRequest)(nil), // 60: tabletmanagerdata.PrimaryStatusRequest
- (*PrimaryStatusResponse)(nil), // 61: tabletmanagerdata.PrimaryStatusResponse
- (*PrimaryPositionRequest)(nil), // 62: tabletmanagerdata.PrimaryPositionRequest
- (*PrimaryPositionResponse)(nil), // 63: tabletmanagerdata.PrimaryPositionResponse
- (*WaitForPositionRequest)(nil), // 64: tabletmanagerdata.WaitForPositionRequest
- (*WaitForPositionResponse)(nil), // 65: tabletmanagerdata.WaitForPositionResponse
- (*StopReplicationRequest)(nil), // 66: tabletmanagerdata.StopReplicationRequest
- (*StopReplicationResponse)(nil), // 67: tabletmanagerdata.StopReplicationResponse
- (*StopReplicationMinimumRequest)(nil), // 68: tabletmanagerdata.StopReplicationMinimumRequest
- (*StopReplicationMinimumResponse)(nil), // 69: tabletmanagerdata.StopReplicationMinimumResponse
- (*StartReplicationRequest)(nil), // 70: tabletmanagerdata.StartReplicationRequest
- (*StartReplicationResponse)(nil), // 71: tabletmanagerdata.StartReplicationResponse
- (*StartReplicationUntilAfterRequest)(nil), // 72: tabletmanagerdata.StartReplicationUntilAfterRequest
- (*StartReplicationUntilAfterResponse)(nil), // 73: tabletmanagerdata.StartReplicationUntilAfterResponse
- (*GetReplicasRequest)(nil), // 74: tabletmanagerdata.GetReplicasRequest
- (*GetReplicasResponse)(nil), // 75: tabletmanagerdata.GetReplicasResponse
- (*ResetReplicationRequest)(nil), // 76: tabletmanagerdata.ResetReplicationRequest
- (*ResetReplicationResponse)(nil), // 77: tabletmanagerdata.ResetReplicationResponse
- (*VReplicationExecRequest)(nil), // 78: tabletmanagerdata.VReplicationExecRequest
- (*VReplicationExecResponse)(nil), // 79: tabletmanagerdata.VReplicationExecResponse
- (*VReplicationWaitForPosRequest)(nil), // 80: tabletmanagerdata.VReplicationWaitForPosRequest
- (*VReplicationWaitForPosResponse)(nil), // 81: tabletmanagerdata.VReplicationWaitForPosResponse
- (*InitPrimaryRequest)(nil), // 82: tabletmanagerdata.InitPrimaryRequest
- (*InitPrimaryResponse)(nil), // 83: tabletmanagerdata.InitPrimaryResponse
- (*PopulateReparentJournalRequest)(nil), // 84: tabletmanagerdata.PopulateReparentJournalRequest
- (*PopulateReparentJournalResponse)(nil), // 85: tabletmanagerdata.PopulateReparentJournalResponse
- (*ReadReparentJournalInfoRequest)(nil), // 86: tabletmanagerdata.ReadReparentJournalInfoRequest
- (*ReadReparentJournalInfoResponse)(nil), // 87: tabletmanagerdata.ReadReparentJournalInfoResponse
- (*InitReplicaRequest)(nil), // 88: tabletmanagerdata.InitReplicaRequest
- (*InitReplicaResponse)(nil), // 89: tabletmanagerdata.InitReplicaResponse
- (*DemotePrimaryRequest)(nil), // 90: tabletmanagerdata.DemotePrimaryRequest
- (*DemotePrimaryResponse)(nil), // 91: tabletmanagerdata.DemotePrimaryResponse
- (*UndoDemotePrimaryRequest)(nil), // 92: tabletmanagerdata.UndoDemotePrimaryRequest
- (*UndoDemotePrimaryResponse)(nil), // 93: tabletmanagerdata.UndoDemotePrimaryResponse
- (*ReplicaWasPromotedRequest)(nil), // 94: tabletmanagerdata.ReplicaWasPromotedRequest
- (*ReplicaWasPromotedResponse)(nil), // 95: tabletmanagerdata.ReplicaWasPromotedResponse
- (*ResetReplicationParametersRequest)(nil), // 96: tabletmanagerdata.ResetReplicationParametersRequest
- (*ResetReplicationParametersResponse)(nil), // 97: tabletmanagerdata.ResetReplicationParametersResponse
- (*FullStatusRequest)(nil), // 98: tabletmanagerdata.FullStatusRequest
- (*FullStatusResponse)(nil), // 99: tabletmanagerdata.FullStatusResponse
- (*SetReplicationSourceRequest)(nil), // 100: tabletmanagerdata.SetReplicationSourceRequest
- (*SetReplicationSourceResponse)(nil), // 101: tabletmanagerdata.SetReplicationSourceResponse
- (*ReplicaWasRestartedRequest)(nil), // 102: tabletmanagerdata.ReplicaWasRestartedRequest
- (*ReplicaWasRestartedResponse)(nil), // 103: tabletmanagerdata.ReplicaWasRestartedResponse
- (*StopReplicationAndGetStatusRequest)(nil), // 104: tabletmanagerdata.StopReplicationAndGetStatusRequest
- (*StopReplicationAndGetStatusResponse)(nil), // 105: tabletmanagerdata.StopReplicationAndGetStatusResponse
- (*PromoteReplicaRequest)(nil), // 106: tabletmanagerdata.PromoteReplicaRequest
- (*PromoteReplicaResponse)(nil), // 107: tabletmanagerdata.PromoteReplicaResponse
- (*BackupRequest)(nil), // 108: tabletmanagerdata.BackupRequest
- (*BackupResponse)(nil), // 109: tabletmanagerdata.BackupResponse
- (*RestoreFromBackupRequest)(nil), // 110: tabletmanagerdata.RestoreFromBackupRequest
- (*RestoreFromBackupResponse)(nil), // 111: tabletmanagerdata.RestoreFromBackupResponse
- (*CreateVReplicationWorkflowRequest)(nil), // 112: tabletmanagerdata.CreateVReplicationWorkflowRequest
- (*CreateVReplicationWorkflowResponse)(nil), // 113: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*DeleteTableDataRequest)(nil), // 114: tabletmanagerdata.DeleteTableDataRequest
- (*DeleteTableDataResponse)(nil), // 115: tabletmanagerdata.DeleteTableDataResponse
- (*DeleteVReplicationWorkflowRequest)(nil), // 116: tabletmanagerdata.DeleteVReplicationWorkflowRequest
- (*DeleteVReplicationWorkflowResponse)(nil), // 117: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*HasVReplicationWorkflowsRequest)(nil), // 118: tabletmanagerdata.HasVReplicationWorkflowsRequest
- (*HasVReplicationWorkflowsResponse)(nil), // 119: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowsRequest)(nil), // 120: tabletmanagerdata.ReadVReplicationWorkflowsRequest
- (*ReadVReplicationWorkflowsResponse)(nil), // 121: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*ReadVReplicationWorkflowRequest)(nil), // 122: tabletmanagerdata.ReadVReplicationWorkflowRequest
- (*ReadVReplicationWorkflowResponse)(nil), // 123: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*ValidateVReplicationPermissionsRequest)(nil), // 124: tabletmanagerdata.ValidateVReplicationPermissionsRequest
- (*ValidateVReplicationPermissionsResponse)(nil), // 125: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*VDiffRequest)(nil), // 126: tabletmanagerdata.VDiffRequest
- (*VDiffResponse)(nil), // 127: tabletmanagerdata.VDiffResponse
- (*VDiffPickerOptions)(nil), // 128: tabletmanagerdata.VDiffPickerOptions
- (*VDiffReportOptions)(nil), // 129: tabletmanagerdata.VDiffReportOptions
- (*VDiffCoreOptions)(nil), // 130: tabletmanagerdata.VDiffCoreOptions
- (*VDiffOptions)(nil), // 131: tabletmanagerdata.VDiffOptions
- (*UpdateVReplicationWorkflowRequest)(nil), // 132: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*UpdateVReplicationWorkflowResponse)(nil), // 133: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*UpdateVReplicationWorkflowsRequest)(nil), // 134: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- (*UpdateVReplicationWorkflowsResponse)(nil), // 135: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*ResetSequencesRequest)(nil), // 136: tabletmanagerdata.ResetSequencesRequest
- (*ResetSequencesResponse)(nil), // 137: tabletmanagerdata.ResetSequencesResponse
- (*CheckThrottlerRequest)(nil), // 138: tabletmanagerdata.CheckThrottlerRequest
- (*CheckThrottlerResponse)(nil), // 139: tabletmanagerdata.CheckThrottlerResponse
- (*GetThrottlerStatusRequest)(nil), // 140: tabletmanagerdata.GetThrottlerStatusRequest
- (*GetThrottlerStatusResponse)(nil), // 141: tabletmanagerdata.GetThrottlerStatusResponse
- (*ChangeTagsRequest)(nil), // 142: tabletmanagerdata.ChangeTagsRequest
- (*ChangeTagsResponse)(nil), // 143: tabletmanagerdata.ChangeTagsResponse
- nil, // 144: tabletmanagerdata.UserPermission.PrivilegesEntry
- nil, // 145: tabletmanagerdata.DbPermission.PrivilegesEntry
- nil, // 146: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
- nil, // 147: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- nil, // 148: tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
- (*ReadVReplicationWorkflowResponse_Stream)(nil), // 149: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- nil, // 150: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- nil, // 151: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- (*CheckThrottlerResponse_Metric)(nil), // 152: tabletmanagerdata.CheckThrottlerResponse.Metric
- nil, // 153: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
- (*GetThrottlerStatusResponse_MetricResult)(nil), // 154: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- nil, // 155: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- nil, // 156: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- (*GetThrottlerStatusResponse_MetricHealth)(nil), // 157: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- nil, // 158: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- nil, // 159: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- nil, // 160: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- (*GetThrottlerStatusResponse_RecentApp)(nil), // 161: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
- nil, // 162: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- nil, // 163: tabletmanagerdata.ChangeTagsRequest.TagsEntry
- nil, // 164: tabletmanagerdata.ChangeTagsResponse.TagsEntry
- (*query.Field)(nil), // 165: query.Field
- (topodata.TabletType)(0), // 166: topodata.TabletType
- (*vtrpc.CallerID)(nil), // 167: vtrpc.CallerID
- (*query.QueryResult)(nil), // 168: query.QueryResult
- (*query.TransactionMetadata)(nil), // 169: query.TransactionMetadata
- (*mysqlctl.HostMetricsResponse)(nil), // 170: mysqlctl.HostMetricsResponse
- (*replicationdata.Status)(nil), // 171: replicationdata.Status
- (*replicationdata.PrimaryStatus)(nil), // 172: replicationdata.PrimaryStatus
- (*topodata.TabletAlias)(nil), // 173: topodata.TabletAlias
- (*replicationdata.FullStatus)(nil), // 174: replicationdata.FullStatus
- (replicationdata.StopReplicationMode)(0), // 175: replicationdata.StopReplicationMode
- (*replicationdata.StopReplicationStatus)(nil), // 176: replicationdata.StopReplicationStatus
- (*logutil.Event)(nil), // 177: logutil.Event
- (*vttime.Time)(nil), // 178: vttime.Time
- (*binlogdata.BinlogSource)(nil), // 179: binlogdata.BinlogSource
- (binlogdata.VReplicationWorkflowType)(0), // 180: binlogdata.VReplicationWorkflowType
- (binlogdata.VReplicationWorkflowSubType)(0), // 181: binlogdata.VReplicationWorkflowSubType
- (binlogdata.VReplicationWorkflowState)(0), // 182: binlogdata.VReplicationWorkflowState
- (binlogdata.OnDDLAction)(0), // 183: binlogdata.OnDDLAction
- (*topodata.ThrottledAppRule)(nil), // 184: topodata.ThrottledAppRule
+ (*GetTransactionInfoRequest)(nil), // 54: tabletmanagerdata.GetTransactionInfoRequest
+ (*GetTransactionInfoResponse)(nil), // 55: tabletmanagerdata.GetTransactionInfoResponse
+ (*ConcludeTransactionRequest)(nil), // 56: tabletmanagerdata.ConcludeTransactionRequest
+ (*ConcludeTransactionResponse)(nil), // 57: tabletmanagerdata.ConcludeTransactionResponse
+ (*MysqlHostMetricsRequest)(nil), // 58: tabletmanagerdata.MysqlHostMetricsRequest
+ (*MysqlHostMetricsResponse)(nil), // 59: tabletmanagerdata.MysqlHostMetricsResponse
+ (*ReplicationStatusRequest)(nil), // 60: tabletmanagerdata.ReplicationStatusRequest
+ (*ReplicationStatusResponse)(nil), // 61: tabletmanagerdata.ReplicationStatusResponse
+ (*PrimaryStatusRequest)(nil), // 62: tabletmanagerdata.PrimaryStatusRequest
+ (*PrimaryStatusResponse)(nil), // 63: tabletmanagerdata.PrimaryStatusResponse
+ (*PrimaryPositionRequest)(nil), // 64: tabletmanagerdata.PrimaryPositionRequest
+ (*PrimaryPositionResponse)(nil), // 65: tabletmanagerdata.PrimaryPositionResponse
+ (*WaitForPositionRequest)(nil), // 66: tabletmanagerdata.WaitForPositionRequest
+ (*WaitForPositionResponse)(nil), // 67: tabletmanagerdata.WaitForPositionResponse
+ (*StopReplicationRequest)(nil), // 68: tabletmanagerdata.StopReplicationRequest
+ (*StopReplicationResponse)(nil), // 69: tabletmanagerdata.StopReplicationResponse
+ (*StopReplicationMinimumRequest)(nil), // 70: tabletmanagerdata.StopReplicationMinimumRequest
+ (*StopReplicationMinimumResponse)(nil), // 71: tabletmanagerdata.StopReplicationMinimumResponse
+ (*StartReplicationRequest)(nil), // 72: tabletmanagerdata.StartReplicationRequest
+ (*StartReplicationResponse)(nil), // 73: tabletmanagerdata.StartReplicationResponse
+ (*StartReplicationUntilAfterRequest)(nil), // 74: tabletmanagerdata.StartReplicationUntilAfterRequest
+ (*StartReplicationUntilAfterResponse)(nil), // 75: tabletmanagerdata.StartReplicationUntilAfterResponse
+ (*GetReplicasRequest)(nil), // 76: tabletmanagerdata.GetReplicasRequest
+ (*GetReplicasResponse)(nil), // 77: tabletmanagerdata.GetReplicasResponse
+ (*ResetReplicationRequest)(nil), // 78: tabletmanagerdata.ResetReplicationRequest
+ (*ResetReplicationResponse)(nil), // 79: tabletmanagerdata.ResetReplicationResponse
+ (*VReplicationExecRequest)(nil), // 80: tabletmanagerdata.VReplicationExecRequest
+ (*VReplicationExecResponse)(nil), // 81: tabletmanagerdata.VReplicationExecResponse
+ (*VReplicationWaitForPosRequest)(nil), // 82: tabletmanagerdata.VReplicationWaitForPosRequest
+ (*VReplicationWaitForPosResponse)(nil), // 83: tabletmanagerdata.VReplicationWaitForPosResponse
+ (*InitPrimaryRequest)(nil), // 84: tabletmanagerdata.InitPrimaryRequest
+ (*InitPrimaryResponse)(nil), // 85: tabletmanagerdata.InitPrimaryResponse
+ (*PopulateReparentJournalRequest)(nil), // 86: tabletmanagerdata.PopulateReparentJournalRequest
+ (*PopulateReparentJournalResponse)(nil), // 87: tabletmanagerdata.PopulateReparentJournalResponse
+ (*ReadReparentJournalInfoRequest)(nil), // 88: tabletmanagerdata.ReadReparentJournalInfoRequest
+ (*ReadReparentJournalInfoResponse)(nil), // 89: tabletmanagerdata.ReadReparentJournalInfoResponse
+ (*InitReplicaRequest)(nil), // 90: tabletmanagerdata.InitReplicaRequest
+ (*InitReplicaResponse)(nil), // 91: tabletmanagerdata.InitReplicaResponse
+ (*DemotePrimaryRequest)(nil), // 92: tabletmanagerdata.DemotePrimaryRequest
+ (*DemotePrimaryResponse)(nil), // 93: tabletmanagerdata.DemotePrimaryResponse
+ (*UndoDemotePrimaryRequest)(nil), // 94: tabletmanagerdata.UndoDemotePrimaryRequest
+ (*UndoDemotePrimaryResponse)(nil), // 95: tabletmanagerdata.UndoDemotePrimaryResponse
+ (*ReplicaWasPromotedRequest)(nil), // 96: tabletmanagerdata.ReplicaWasPromotedRequest
+ (*ReplicaWasPromotedResponse)(nil), // 97: tabletmanagerdata.ReplicaWasPromotedResponse
+ (*ResetReplicationParametersRequest)(nil), // 98: tabletmanagerdata.ResetReplicationParametersRequest
+ (*ResetReplicationParametersResponse)(nil), // 99: tabletmanagerdata.ResetReplicationParametersResponse
+ (*FullStatusRequest)(nil), // 100: tabletmanagerdata.FullStatusRequest
+ (*FullStatusResponse)(nil), // 101: tabletmanagerdata.FullStatusResponse
+ (*SetReplicationSourceRequest)(nil), // 102: tabletmanagerdata.SetReplicationSourceRequest
+ (*SetReplicationSourceResponse)(nil), // 103: tabletmanagerdata.SetReplicationSourceResponse
+ (*ReplicaWasRestartedRequest)(nil), // 104: tabletmanagerdata.ReplicaWasRestartedRequest
+ (*ReplicaWasRestartedResponse)(nil), // 105: tabletmanagerdata.ReplicaWasRestartedResponse
+ (*StopReplicationAndGetStatusRequest)(nil), // 106: tabletmanagerdata.StopReplicationAndGetStatusRequest
+ (*StopReplicationAndGetStatusResponse)(nil), // 107: tabletmanagerdata.StopReplicationAndGetStatusResponse
+ (*PromoteReplicaRequest)(nil), // 108: tabletmanagerdata.PromoteReplicaRequest
+ (*PromoteReplicaResponse)(nil), // 109: tabletmanagerdata.PromoteReplicaResponse
+ (*BackupRequest)(nil), // 110: tabletmanagerdata.BackupRequest
+ (*BackupResponse)(nil), // 111: tabletmanagerdata.BackupResponse
+ (*RestoreFromBackupRequest)(nil), // 112: tabletmanagerdata.RestoreFromBackupRequest
+ (*RestoreFromBackupResponse)(nil), // 113: tabletmanagerdata.RestoreFromBackupResponse
+ (*CreateVReplicationWorkflowRequest)(nil), // 114: tabletmanagerdata.CreateVReplicationWorkflowRequest
+ (*CreateVReplicationWorkflowResponse)(nil), // 115: tabletmanagerdata.CreateVReplicationWorkflowResponse
+ (*DeleteTableDataRequest)(nil), // 116: tabletmanagerdata.DeleteTableDataRequest
+ (*DeleteTableDataResponse)(nil), // 117: tabletmanagerdata.DeleteTableDataResponse
+ (*DeleteVReplicationWorkflowRequest)(nil), // 118: tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ (*DeleteVReplicationWorkflowResponse)(nil), // 119: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*HasVReplicationWorkflowsRequest)(nil), // 120: tabletmanagerdata.HasVReplicationWorkflowsRequest
+ (*HasVReplicationWorkflowsResponse)(nil), // 121: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowsRequest)(nil), // 122: tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ (*ReadVReplicationWorkflowsResponse)(nil), // 123: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*ReadVReplicationWorkflowRequest)(nil), // 124: tabletmanagerdata.ReadVReplicationWorkflowRequest
+ (*ReadVReplicationWorkflowResponse)(nil), // 125: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*ValidateVReplicationPermissionsRequest)(nil), // 126: tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ (*ValidateVReplicationPermissionsResponse)(nil), // 127: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*VDiffRequest)(nil), // 128: tabletmanagerdata.VDiffRequest
+ (*VDiffResponse)(nil), // 129: tabletmanagerdata.VDiffResponse
+ (*VDiffPickerOptions)(nil), // 130: tabletmanagerdata.VDiffPickerOptions
+ (*VDiffReportOptions)(nil), // 131: tabletmanagerdata.VDiffReportOptions
+ (*VDiffCoreOptions)(nil), // 132: tabletmanagerdata.VDiffCoreOptions
+ (*VDiffOptions)(nil), // 133: tabletmanagerdata.VDiffOptions
+ (*UpdateVReplicationWorkflowRequest)(nil), // 134: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*UpdateVReplicationWorkflowResponse)(nil), // 135: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*UpdateVReplicationWorkflowsRequest)(nil), // 136: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ (*UpdateVReplicationWorkflowsResponse)(nil), // 137: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*ResetSequencesRequest)(nil), // 138: tabletmanagerdata.ResetSequencesRequest
+ (*ResetSequencesResponse)(nil), // 139: tabletmanagerdata.ResetSequencesResponse
+ (*CheckThrottlerRequest)(nil), // 140: tabletmanagerdata.CheckThrottlerRequest
+ (*CheckThrottlerResponse)(nil), // 141: tabletmanagerdata.CheckThrottlerResponse
+ (*GetThrottlerStatusRequest)(nil), // 142: tabletmanagerdata.GetThrottlerStatusRequest
+ (*GetThrottlerStatusResponse)(nil), // 143: tabletmanagerdata.GetThrottlerStatusResponse
+ (*ChangeTagsRequest)(nil), // 144: tabletmanagerdata.ChangeTagsRequest
+ (*ChangeTagsResponse)(nil), // 145: tabletmanagerdata.ChangeTagsResponse
+ nil, // 146: tabletmanagerdata.UserPermission.PrivilegesEntry
+ nil, // 147: tabletmanagerdata.DbPermission.PrivilegesEntry
+ nil, // 148: tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ nil, // 149: tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ nil, // 150: tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ (*ReadVReplicationWorkflowResponse_Stream)(nil), // 151: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ nil, // 152: tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ nil, // 153: tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ (*CheckThrottlerResponse_Metric)(nil), // 154: tabletmanagerdata.CheckThrottlerResponse.Metric
+ nil, // 155: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ (*GetThrottlerStatusResponse_MetricResult)(nil), // 156: tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ nil, // 157: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ nil, // 158: tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ (*GetThrottlerStatusResponse_MetricHealth)(nil), // 159: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ nil, // 160: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ nil, // 161: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ nil, // 162: tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ (*GetThrottlerStatusResponse_RecentApp)(nil), // 163: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ nil, // 164: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ nil, // 165: tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ nil, // 166: tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ (*query.Field)(nil), // 167: query.Field
+ (topodata.TabletType)(0), // 168: topodata.TabletType
+ (*vtrpc.CallerID)(nil), // 169: vtrpc.CallerID
+ (*query.QueryResult)(nil), // 170: query.QueryResult
+ (*query.TransactionMetadata)(nil), // 171: query.TransactionMetadata
+ (*mysqlctl.HostMetricsResponse)(nil), // 172: mysqlctl.HostMetricsResponse
+ (*replicationdata.Status)(nil), // 173: replicationdata.Status
+ (*replicationdata.PrimaryStatus)(nil), // 174: replicationdata.PrimaryStatus
+ (*topodata.TabletAlias)(nil), // 175: topodata.TabletAlias
+ (*replicationdata.FullStatus)(nil), // 176: replicationdata.FullStatus
+ (replicationdata.StopReplicationMode)(0), // 177: replicationdata.StopReplicationMode
+ (*replicationdata.StopReplicationStatus)(nil), // 178: replicationdata.StopReplicationStatus
+ (*logutil.Event)(nil), // 179: logutil.Event
+ (*vttime.Time)(nil), // 180: vttime.Time
+ (*binlogdata.BinlogSource)(nil), // 181: binlogdata.BinlogSource
+ (binlogdata.VReplicationWorkflowType)(0), // 182: binlogdata.VReplicationWorkflowType
+ (binlogdata.VReplicationWorkflowSubType)(0), // 183: binlogdata.VReplicationWorkflowSubType
+ (binlogdata.VReplicationWorkflowState)(0), // 184: binlogdata.VReplicationWorkflowState
+ (binlogdata.OnDDLAction)(0), // 185: binlogdata.OnDDLAction
+ (*topodata.ThrottledAppRule)(nil), // 186: topodata.ThrottledAppRule
}
var file_tabletmanagerdata_proto_depIdxs = []int32{
- 165, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
+ 167, // 0: tabletmanagerdata.TableDefinition.fields:type_name -> query.Field
2, // 1: tabletmanagerdata.SchemaDefinition.table_definitions:type_name -> tabletmanagerdata.TableDefinition
3, // 2: tabletmanagerdata.SchemaChangeResult.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 3: tabletmanagerdata.SchemaChangeResult.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 144, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
- 145, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
+ 146, // 4: tabletmanagerdata.UserPermission.privileges:type_name -> tabletmanagerdata.UserPermission.PrivilegesEntry
+ 147, // 5: tabletmanagerdata.DbPermission.privileges:type_name -> tabletmanagerdata.DbPermission.PrivilegesEntry
5, // 6: tabletmanagerdata.Permissions.user_permissions:type_name -> tabletmanagerdata.UserPermission
6, // 7: tabletmanagerdata.Permissions.db_permissions:type_name -> tabletmanagerdata.DbPermission
- 146, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
+ 148, // 8: tabletmanagerdata.ExecuteHookRequest.extra_env:type_name -> tabletmanagerdata.ExecuteHookRequest.ExtraEnvEntry
3, // 9: tabletmanagerdata.GetSchemaResponse.schema_definition:type_name -> tabletmanagerdata.SchemaDefinition
7, // 10: tabletmanagerdata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions
- 147, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
- 166, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
+ 149, // 11: tabletmanagerdata.GetGlobalStatusVarsResponse.status_values:type_name -> tabletmanagerdata.GetGlobalStatusVarsResponse.StatusValuesEntry
+ 168, // 12: tabletmanagerdata.ChangeTypeRequest.tablet_type:type_name -> topodata.TabletType
4, // 13: tabletmanagerdata.PreflightSchemaResponse.change_results:type_name -> tabletmanagerdata.SchemaChangeResult
3, // 14: tabletmanagerdata.ApplySchemaRequest.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 15: tabletmanagerdata.ApplySchemaRequest.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 16: tabletmanagerdata.ApplySchemaResponse.before_schema:type_name -> tabletmanagerdata.SchemaDefinition
3, // 17: tabletmanagerdata.ApplySchemaResponse.after_schema:type_name -> tabletmanagerdata.SchemaDefinition
- 167, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
- 168, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
- 168, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
- 168, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
- 168, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
- 168, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
- 169, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
- 169, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
- 170, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
- 171, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
- 172, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
- 168, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
- 173, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
- 173, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
- 172, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
- 174, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
- 173, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
- 173, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
- 175, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
- 176, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
- 177, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
- 178, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
- 178, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
- 177, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
- 179, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
- 166, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 169, // 18: tabletmanagerdata.ExecuteQueryRequest.caller_id:type_name -> vtrpc.CallerID
+ 170, // 19: tabletmanagerdata.ExecuteQueryResponse.result:type_name -> query.QueryResult
+ 170, // 20: tabletmanagerdata.ExecuteFetchAsDbaResponse.result:type_name -> query.QueryResult
+ 170, // 21: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse.results:type_name -> query.QueryResult
+ 170, // 22: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse.result:type_name -> query.QueryResult
+ 170, // 23: tabletmanagerdata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
+ 171, // 24: tabletmanagerdata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
+ 171, // 25: tabletmanagerdata.ReadTransactionResponse.transaction:type_name -> query.TransactionMetadata
+ 172, // 26: tabletmanagerdata.MysqlHostMetricsResponse.HostMetrics:type_name -> mysqlctl.HostMetricsResponse
+ 173, // 27: tabletmanagerdata.ReplicationStatusResponse.status:type_name -> replicationdata.Status
+ 174, // 28: tabletmanagerdata.PrimaryStatusResponse.status:type_name -> replicationdata.PrimaryStatus
+ 170, // 29: tabletmanagerdata.VReplicationExecResponse.result:type_name -> query.QueryResult
+ 175, // 30: tabletmanagerdata.PopulateReparentJournalRequest.primary_alias:type_name -> topodata.TabletAlias
+ 175, // 31: tabletmanagerdata.InitReplicaRequest.parent:type_name -> topodata.TabletAlias
+ 174, // 32: tabletmanagerdata.DemotePrimaryResponse.primary_status:type_name -> replicationdata.PrimaryStatus
+ 176, // 33: tabletmanagerdata.FullStatusResponse.status:type_name -> replicationdata.FullStatus
+ 175, // 34: tabletmanagerdata.SetReplicationSourceRequest.parent:type_name -> topodata.TabletAlias
+ 175, // 35: tabletmanagerdata.ReplicaWasRestartedRequest.parent:type_name -> topodata.TabletAlias
+ 177, // 36: tabletmanagerdata.StopReplicationAndGetStatusRequest.stop_replication_mode:type_name -> replicationdata.StopReplicationMode
+ 178, // 37: tabletmanagerdata.StopReplicationAndGetStatusResponse.status:type_name -> replicationdata.StopReplicationStatus
+ 179, // 38: tabletmanagerdata.BackupResponse.event:type_name -> logutil.Event
+ 180, // 39: tabletmanagerdata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
+ 180, // 40: tabletmanagerdata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
+ 179, // 41: tabletmanagerdata.RestoreFromBackupResponse.event:type_name -> logutil.Event
+ 181, // 42: tabletmanagerdata.CreateVReplicationWorkflowRequest.binlog_source:type_name -> binlogdata.BinlogSource
+ 168, // 43: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
0, // 44: tabletmanagerdata.CreateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 180, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 181, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 168, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 148, // 48: tabletmanagerdata.DeleteTableDataRequest.table_filters:type_name -> tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
- 168, // 49: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 182, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
- 182, // 51: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
- 123, // 52: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 166, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
+ 182, // 45: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 183, // 46: tabletmanagerdata.CreateVReplicationWorkflowRequest.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 170, // 47: tabletmanagerdata.CreateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 150, // 48: tabletmanagerdata.DeleteTableDataRequest.table_filters:type_name -> tabletmanagerdata.DeleteTableDataRequest.TableFiltersEntry
+ 170, // 49: tabletmanagerdata.DeleteVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 184, // 50: tabletmanagerdata.ReadVReplicationWorkflowsRequest.include_states:type_name -> binlogdata.VReplicationWorkflowState
+ 184, // 51: tabletmanagerdata.ReadVReplicationWorkflowsRequest.exclude_states:type_name -> binlogdata.VReplicationWorkflowState
+ 125, // 52: tabletmanagerdata.ReadVReplicationWorkflowsResponse.workflows:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 168, // 53: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_types:type_name -> topodata.TabletType
0, // 54: tabletmanagerdata.ReadVReplicationWorkflowResponse.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 180, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
- 181, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
- 149, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
- 150, // 58: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
- 131, // 59: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
- 168, // 60: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
- 128, // 61: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
- 130, // 62: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
- 129, // 63: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
- 166, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
+ 182, // 55: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_type:type_name -> binlogdata.VReplicationWorkflowType
+ 183, // 56: tabletmanagerdata.ReadVReplicationWorkflowResponse.workflow_sub_type:type_name -> binlogdata.VReplicationWorkflowSubType
+ 151, // 57: tabletmanagerdata.ReadVReplicationWorkflowResponse.streams:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream
+ 152, // 58: tabletmanagerdata.ReadVReplicationWorkflowResponse.config_overrides:type_name -> tabletmanagerdata.ReadVReplicationWorkflowResponse.ConfigOverridesEntry
+ 133, // 59: tabletmanagerdata.VDiffRequest.options:type_name -> tabletmanagerdata.VDiffOptions
+ 170, // 60: tabletmanagerdata.VDiffResponse.output:type_name -> query.QueryResult
+ 130, // 61: tabletmanagerdata.VDiffOptions.picker_options:type_name -> tabletmanagerdata.VDiffPickerOptions
+ 132, // 62: tabletmanagerdata.VDiffOptions.core_options:type_name -> tabletmanagerdata.VDiffCoreOptions
+ 131, // 63: tabletmanagerdata.VDiffOptions.report_options:type_name -> tabletmanagerdata.VDiffReportOptions
+ 168, // 64: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_types:type_name -> topodata.TabletType
0, // 65: tabletmanagerdata.UpdateVReplicationWorkflowRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 183, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
- 182, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 151, // 68: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
- 168, // 69: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
- 182, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
- 168, // 71: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
- 153, // 72: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
+ 185, // 66: tabletmanagerdata.UpdateVReplicationWorkflowRequest.on_ddl:type_name -> binlogdata.OnDDLAction
+ 184, // 67: tabletmanagerdata.UpdateVReplicationWorkflowRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 153, // 68: tabletmanagerdata.UpdateVReplicationWorkflowRequest.config_overrides:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest.ConfigOverridesEntry
+ 170, // 69: tabletmanagerdata.UpdateVReplicationWorkflowResponse.result:type_name -> query.QueryResult
+ 184, // 70: tabletmanagerdata.UpdateVReplicationWorkflowsRequest.state:type_name -> binlogdata.VReplicationWorkflowState
+ 170, // 71: tabletmanagerdata.UpdateVReplicationWorkflowsResponse.result:type_name -> query.QueryResult
+ 155, // 72: tabletmanagerdata.CheckThrottlerResponse.metrics:type_name -> tabletmanagerdata.CheckThrottlerResponse.MetricsEntry
1, // 73: tabletmanagerdata.CheckThrottlerResponse.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 155, // 74: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
- 156, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
- 158, // 76: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
- 159, // 77: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
- 160, // 78: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
- 162, // 79: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
- 163, // 80: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
- 164, // 81: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
- 179, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
- 178, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
- 178, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
- 182, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
- 178, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
- 178, // 87: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
+ 157, // 74: tabletmanagerdata.GetThrottlerStatusResponse.aggregated_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry
+ 158, // 75: tabletmanagerdata.GetThrottlerStatusResponse.metric_thresholds:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricThresholdsEntry
+ 160, // 76: tabletmanagerdata.GetThrottlerStatusResponse.metrics_health:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry
+ 161, // 77: tabletmanagerdata.GetThrottlerStatusResponse.throttled_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry
+ 162, // 78: tabletmanagerdata.GetThrottlerStatusResponse.app_checked_metrics:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.AppCheckedMetricsEntry
+ 164, // 79: tabletmanagerdata.GetThrottlerStatusResponse.recent_apps:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry
+ 165, // 80: tabletmanagerdata.ChangeTagsRequest.tags:type_name -> tabletmanagerdata.ChangeTagsRequest.TagsEntry
+ 166, // 81: tabletmanagerdata.ChangeTagsResponse.tags:type_name -> tabletmanagerdata.ChangeTagsResponse.TagsEntry
+ 181, // 82: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.bls:type_name -> binlogdata.BinlogSource
+ 180, // 83: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_updated:type_name -> vttime.Time
+ 180, // 84: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.transaction_timestamp:type_name -> vttime.Time
+ 184, // 85: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.state:type_name -> binlogdata.VReplicationWorkflowState
+ 180, // 86: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_heartbeat:type_name -> vttime.Time
+ 180, // 87: tabletmanagerdata.ReadVReplicationWorkflowResponse.Stream.time_throttled:type_name -> vttime.Time
1, // 88: tabletmanagerdata.CheckThrottlerResponse.Metric.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 152, // 89: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
- 154, // 90: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
- 178, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
- 157, // 92: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
- 184, // 93: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
- 178, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
+ 154, // 89: tabletmanagerdata.CheckThrottlerResponse.MetricsEntry.value:type_name -> tabletmanagerdata.CheckThrottlerResponse.Metric
+ 156, // 90: tabletmanagerdata.GetThrottlerStatusResponse.AggregatedMetricsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricResult
+ 180, // 91: tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth.last_healthy_at:type_name -> vttime.Time
+ 159, // 92: tabletmanagerdata.GetThrottlerStatusResponse.MetricsHealthEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.MetricHealth
+ 186, // 93: tabletmanagerdata.GetThrottlerStatusResponse.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule
+ 180, // 94: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.checked_at:type_name -> vttime.Time
1, // 95: tabletmanagerdata.GetThrottlerStatusResponse.RecentApp.response_code:type_name -> tabletmanagerdata.CheckThrottlerResponseCode
- 161, // 96: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
+ 163, // 96: tabletmanagerdata.GetThrottlerStatusResponse.RecentAppsEntry.value:type_name -> tabletmanagerdata.GetThrottlerStatusResponse.RecentApp
97, // [97:97] is the sub-list for method output_type
97, // [97:97] is the sub-list for method input_type
97, // [97:97] is the sub-list for extension type_name
@@ -10378,7 +10511,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[52].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
+ switch v := v.(*GetTransactionInfoRequest); i {
case 0:
return &v.state
case 1:
@@ -10390,7 +10523,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[53].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionResponse); i {
+ switch v := v.(*GetTransactionInfoResponse); i {
case 0:
return &v.state
case 1:
@@ -10402,7 +10535,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[54].Exporter = func(v any, i int) any {
- switch v := v.(*MysqlHostMetricsRequest); i {
+ switch v := v.(*ConcludeTransactionRequest); i {
case 0:
return &v.state
case 1:
@@ -10414,7 +10547,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[55].Exporter = func(v any, i int) any {
- switch v := v.(*MysqlHostMetricsResponse); i {
+ switch v := v.(*ConcludeTransactionResponse); i {
case 0:
return &v.state
case 1:
@@ -10426,7 +10559,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[56].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicationStatusRequest); i {
+ switch v := v.(*MysqlHostMetricsRequest); i {
case 0:
return &v.state
case 1:
@@ -10438,7 +10571,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[57].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicationStatusResponse); i {
+ switch v := v.(*MysqlHostMetricsResponse); i {
case 0:
return &v.state
case 1:
@@ -10450,7 +10583,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[58].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryStatusRequest); i {
+ switch v := v.(*ReplicationStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10462,7 +10595,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[59].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryStatusResponse); i {
+ switch v := v.(*ReplicationStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -10474,7 +10607,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[60].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryPositionRequest); i {
+ switch v := v.(*PrimaryStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10486,7 +10619,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[61].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryPositionResponse); i {
+ switch v := v.(*PrimaryStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -10498,7 +10631,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[62].Exporter = func(v any, i int) any {
- switch v := v.(*WaitForPositionRequest); i {
+ switch v := v.(*PrimaryPositionRequest); i {
case 0:
return &v.state
case 1:
@@ -10510,7 +10643,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[63].Exporter = func(v any, i int) any {
- switch v := v.(*WaitForPositionResponse); i {
+ switch v := v.(*PrimaryPositionResponse); i {
case 0:
return &v.state
case 1:
@@ -10522,7 +10655,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[64].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationRequest); i {
+ switch v := v.(*WaitForPositionRequest); i {
case 0:
return &v.state
case 1:
@@ -10534,7 +10667,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationResponse); i {
+ switch v := v.(*WaitForPositionResponse); i {
case 0:
return &v.state
case 1:
@@ -10546,7 +10679,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationMinimumRequest); i {
+ switch v := v.(*StopReplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -10558,7 +10691,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[67].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationMinimumResponse); i {
+ switch v := v.(*StopReplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -10570,7 +10703,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationRequest); i {
+ switch v := v.(*StopReplicationMinimumRequest); i {
case 0:
return &v.state
case 1:
@@ -10582,7 +10715,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[69].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationResponse); i {
+ switch v := v.(*StopReplicationMinimumResponse); i {
case 0:
return &v.state
case 1:
@@ -10594,7 +10727,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[70].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationUntilAfterRequest); i {
+ switch v := v.(*StartReplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -10606,7 +10739,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[71].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationUntilAfterResponse); i {
+ switch v := v.(*StartReplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -10618,7 +10751,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[72].Exporter = func(v any, i int) any {
- switch v := v.(*GetReplicasRequest); i {
+ switch v := v.(*StartReplicationUntilAfterRequest); i {
case 0:
return &v.state
case 1:
@@ -10630,7 +10763,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[73].Exporter = func(v any, i int) any {
- switch v := v.(*GetReplicasResponse); i {
+ switch v := v.(*StartReplicationUntilAfterResponse); i {
case 0:
return &v.state
case 1:
@@ -10642,7 +10775,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[74].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationRequest); i {
+ switch v := v.(*GetReplicasRequest); i {
case 0:
return &v.state
case 1:
@@ -10654,7 +10787,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[75].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationResponse); i {
+ switch v := v.(*GetReplicasResponse); i {
case 0:
return &v.state
case 1:
@@ -10666,7 +10799,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[76].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationExecRequest); i {
+ switch v := v.(*ResetReplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -10678,7 +10811,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[77].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationExecResponse); i {
+ switch v := v.(*ResetReplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -10690,7 +10823,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[78].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationWaitForPosRequest); i {
+ switch v := v.(*VReplicationExecRequest); i {
case 0:
return &v.state
case 1:
@@ -10702,7 +10835,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[79].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationWaitForPosResponse); i {
+ switch v := v.(*VReplicationExecResponse); i {
case 0:
return &v.state
case 1:
@@ -10714,7 +10847,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[80].Exporter = func(v any, i int) any {
- switch v := v.(*InitPrimaryRequest); i {
+ switch v := v.(*VReplicationWaitForPosRequest); i {
case 0:
return &v.state
case 1:
@@ -10726,7 +10859,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[81].Exporter = func(v any, i int) any {
- switch v := v.(*InitPrimaryResponse); i {
+ switch v := v.(*VReplicationWaitForPosResponse); i {
case 0:
return &v.state
case 1:
@@ -10738,7 +10871,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[82].Exporter = func(v any, i int) any {
- switch v := v.(*PopulateReparentJournalRequest); i {
+ switch v := v.(*InitPrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -10750,7 +10883,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[83].Exporter = func(v any, i int) any {
- switch v := v.(*PopulateReparentJournalResponse); i {
+ switch v := v.(*InitPrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -10762,7 +10895,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*ReadReparentJournalInfoRequest); i {
+ switch v := v.(*PopulateReparentJournalRequest); i {
case 0:
return &v.state
case 1:
@@ -10774,7 +10907,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*ReadReparentJournalInfoResponse); i {
+ switch v := v.(*PopulateReparentJournalResponse); i {
case 0:
return &v.state
case 1:
@@ -10786,7 +10919,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaRequest); i {
+ switch v := v.(*ReadReparentJournalInfoRequest); i {
case 0:
return &v.state
case 1:
@@ -10798,7 +10931,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaResponse); i {
+ switch v := v.(*ReadReparentJournalInfoResponse); i {
case 0:
return &v.state
case 1:
@@ -10810,7 +10943,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryRequest); i {
+ switch v := v.(*InitReplicaRequest); i {
case 0:
return &v.state
case 1:
@@ -10822,7 +10955,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryResponse); i {
+ switch v := v.(*InitReplicaResponse); i {
case 0:
return &v.state
case 1:
@@ -10834,7 +10967,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryRequest); i {
+ switch v := v.(*DemotePrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -10846,7 +10979,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryResponse); i {
+ switch v := v.(*DemotePrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -10858,7 +10991,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedRequest); i {
+ switch v := v.(*UndoDemotePrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -10870,7 +11003,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedResponse); i {
+ switch v := v.(*UndoDemotePrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -10882,7 +11015,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersRequest); i {
+ switch v := v.(*ReplicaWasPromotedRequest); i {
case 0:
return &v.state
case 1:
@@ -10894,7 +11027,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersResponse); i {
+ switch v := v.(*ReplicaWasPromotedResponse); i {
case 0:
return &v.state
case 1:
@@ -10906,7 +11039,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusRequest); i {
+ switch v := v.(*ResetReplicationParametersRequest); i {
case 0:
return &v.state
case 1:
@@ -10918,7 +11051,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusResponse); i {
+ switch v := v.(*ResetReplicationParametersResponse); i {
case 0:
return &v.state
case 1:
@@ -10930,7 +11063,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceRequest); i {
+ switch v := v.(*FullStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10942,7 +11075,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceResponse); i {
+ switch v := v.(*FullStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -10954,7 +11087,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedRequest); i {
+ switch v := v.(*SetReplicationSourceRequest); i {
case 0:
return &v.state
case 1:
@@ -10966,7 +11099,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedResponse); i {
+ switch v := v.(*SetReplicationSourceResponse); i {
case 0:
return &v.state
case 1:
@@ -10978,7 +11111,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusRequest); i {
+ switch v := v.(*ReplicaWasRestartedRequest); i {
case 0:
return &v.state
case 1:
@@ -10990,7 +11123,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusResponse); i {
+ switch v := v.(*ReplicaWasRestartedResponse); i {
case 0:
return &v.state
case 1:
@@ -11002,7 +11135,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaRequest); i {
+ switch v := v.(*StopReplicationAndGetStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -11014,7 +11147,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaResponse); i {
+ switch v := v.(*StopReplicationAndGetStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -11026,7 +11159,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*BackupRequest); i {
+ switch v := v.(*PromoteReplicaRequest); i {
case 0:
return &v.state
case 1:
@@ -11038,7 +11171,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*BackupResponse); i {
+ switch v := v.(*PromoteReplicaResponse); i {
case 0:
return &v.state
case 1:
@@ -11050,7 +11183,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupRequest); i {
+ switch v := v.(*BackupRequest); i {
case 0:
return &v.state
case 1:
@@ -11062,7 +11195,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupResponse); i {
+ switch v := v.(*BackupResponse); i {
case 0:
return &v.state
case 1:
@@ -11074,7 +11207,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowRequest); i {
+ switch v := v.(*RestoreFromBackupRequest); i {
case 0:
return &v.state
case 1:
@@ -11086,7 +11219,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowResponse); i {
+ switch v := v.(*RestoreFromBackupResponse); i {
case 0:
return &v.state
case 1:
@@ -11098,7 +11231,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataRequest); i {
+ switch v := v.(*CreateVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11110,7 +11243,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataResponse); i {
+ switch v := v.(*CreateVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11122,7 +11255,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowRequest); i {
+ switch v := v.(*DeleteTableDataRequest); i {
case 0:
return &v.state
case 1:
@@ -11134,7 +11267,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowResponse); i {
+ switch v := v.(*DeleteTableDataResponse); i {
case 0:
return &v.state
case 1:
@@ -11146,7 +11279,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsRequest); i {
+ switch v := v.(*DeleteVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11158,7 +11291,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsResponse); i {
+ switch v := v.(*DeleteVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11170,7 +11303,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsRequest); i {
+ switch v := v.(*HasVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11182,7 +11315,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsResponse); i {
+ switch v := v.(*HasVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11194,7 +11327,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11206,7 +11339,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11218,7 +11351,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsRequest); i {
+ switch v := v.(*ReadVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11230,7 +11363,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsResponse); i {
+ switch v := v.(*ReadVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11242,7 +11375,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffRequest); i {
+ switch v := v.(*ValidateVReplicationPermissionsRequest); i {
case 0:
return &v.state
case 1:
@@ -11254,7 +11387,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResponse); i {
+ switch v := v.(*ValidateVReplicationPermissionsResponse); i {
case 0:
return &v.state
case 1:
@@ -11266,7 +11399,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffPickerOptions); i {
+ switch v := v.(*VDiffRequest); i {
case 0:
return &v.state
case 1:
@@ -11278,7 +11411,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffReportOptions); i {
+ switch v := v.(*VDiffResponse); i {
case 0:
return &v.state
case 1:
@@ -11290,7 +11423,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCoreOptions); i {
+ switch v := v.(*VDiffPickerOptions); i {
case 0:
return &v.state
case 1:
@@ -11302,7 +11435,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffOptions); i {
+ switch v := v.(*VDiffReportOptions); i {
case 0:
return &v.state
case 1:
@@ -11314,7 +11447,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowRequest); i {
+ switch v := v.(*VDiffCoreOptions); i {
case 0:
return &v.state
case 1:
@@ -11326,7 +11459,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowResponse); i {
+ switch v := v.(*VDiffOptions); i {
case 0:
return &v.state
case 1:
@@ -11338,7 +11471,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -11350,7 +11483,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[133].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowResponse); i {
case 0:
return &v.state
case 1:
@@ -11362,7 +11495,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[134].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesRequest); i {
+ switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -11374,7 +11507,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesResponse); i {
+ switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -11386,7 +11519,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerRequest); i {
+ switch v := v.(*ResetSequencesRequest); i {
case 0:
return &v.state
case 1:
@@ -11398,7 +11531,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[137].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse); i {
+ switch v := v.(*ResetSequencesResponse); i {
case 0:
return &v.state
case 1:
@@ -11410,7 +11543,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[138].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusRequest); i {
+ switch v := v.(*CheckThrottlerRequest); i {
case 0:
return &v.state
case 1:
@@ -11422,7 +11555,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[139].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse); i {
+ switch v := v.(*CheckThrottlerResponse); i {
case 0:
return &v.state
case 1:
@@ -11434,7 +11567,7 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[140].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTagsRequest); i {
+ switch v := v.(*GetThrottlerStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -11446,6 +11579,30 @@ func file_tabletmanagerdata_proto_init() {
}
}
file_tabletmanagerdata_proto_msgTypes[141].Exporter = func(v any, i int) any {
+ switch v := v.(*GetThrottlerStatusResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[142].Exporter = func(v any, i int) any {
+ switch v := v.(*ChangeTagsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_tabletmanagerdata_proto_msgTypes[143].Exporter = func(v any, i int) any {
switch v := v.(*ChangeTagsResponse); i {
case 0:
return &v.state
@@ -11457,7 +11614,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[147].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[149].Exporter = func(v any, i int) any {
switch v := v.(*ReadVReplicationWorkflowResponse_Stream); i {
case 0:
return &v.state
@@ -11469,7 +11626,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[150].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[152].Exporter = func(v any, i int) any {
switch v := v.(*CheckThrottlerResponse_Metric); i {
case 0:
return &v.state
@@ -11481,7 +11638,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[152].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[154].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricResult); i {
case 0:
return &v.state
@@ -11493,7 +11650,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[155].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[157].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_MetricHealth); i {
case 0:
return &v.state
@@ -11505,7 +11662,7 @@ func file_tabletmanagerdata_proto_init() {
return nil
}
}
- file_tabletmanagerdata_proto_msgTypes[159].Exporter = func(v any, i int) any {
+ file_tabletmanagerdata_proto_msgTypes[161].Exporter = func(v any, i int) any {
switch v := v.(*GetThrottlerStatusResponse_RecentApp); i {
case 0:
return &v.state
@@ -11518,17 +11675,17 @@ func file_tabletmanagerdata_proto_init() {
}
}
}
- file_tabletmanagerdata_proto_msgTypes[106].OneofWrappers = []any{}
- file_tabletmanagerdata_proto_msgTypes[128].OneofWrappers = []any{}
+ file_tabletmanagerdata_proto_msgTypes[108].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[130].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[132].OneofWrappers = []any{}
+ file_tabletmanagerdata_proto_msgTypes[134].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_tabletmanagerdata_proto_rawDesc,
NumEnums: 2,
- NumMessages: 163,
+ NumMessages: 165,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
index d4ffe4ad655..3a327143ad8 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
@@ -1060,6 +1060,47 @@ func (m *ReadTransactionResponse) CloneMessageVT() proto.Message {
return m.CloneVT()
}
+func (m *GetTransactionInfoRequest) CloneVT() *GetTransactionInfoRequest {
+ if m == nil {
+ return (*GetTransactionInfoRequest)(nil)
+ }
+ r := new(GetTransactionInfoRequest)
+ r.Dtid = m.Dtid
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GetTransactionInfoRequest) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *GetTransactionInfoResponse) CloneVT() *GetTransactionInfoResponse {
+ if m == nil {
+ return (*GetTransactionInfoResponse)(nil)
+ }
+ r := new(GetTransactionInfoResponse)
+ r.State = m.State
+ r.Message = m.Message
+ r.TimeCreated = m.TimeCreated
+ if rhs := m.Statements; rhs != nil {
+ tmpContainer := make([]string, len(rhs))
+ copy(tmpContainer, rhs)
+ r.Statements = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GetTransactionInfoResponse) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
func (m *ConcludeTransactionRequest) CloneVT() *ConcludeTransactionRequest {
if m == nil {
return (*ConcludeTransactionRequest)(nil)
@@ -5422,6 +5463,107 @@ func (m *ReadTransactionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
+func (m *GetTransactionInfoRequest) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GetTransactionInfoRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GetTransactionInfoRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Dtid) > 0 {
+ i -= len(m.Dtid)
+ copy(dAtA[i:], m.Dtid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Dtid)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *GetTransactionInfoResponse) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GetTransactionInfoResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GetTransactionInfoResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Statements) > 0 {
+ for iNdEx := len(m.Statements) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Statements[iNdEx])
+ copy(dAtA[i:], m.Statements[iNdEx])
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Statements[iNdEx])))
+ i--
+ dAtA[i] = 0x22
+ }
+ }
+ if m.TimeCreated != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TimeCreated))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.State) > 0 {
+ i -= len(m.State)
+ copy(dAtA[i:], m.State)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.State)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *ConcludeTransactionRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@@ -11262,6 +11404,47 @@ func (m *ReadTransactionResponse) SizeVT() (n int) {
return n
}
+func (m *GetTransactionInfoRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Dtid)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *GetTransactionInfoResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.State)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Message)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.TimeCreated != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TimeCreated))
+ }
+ if len(m.Statements) > 0 {
+ for _, s := range m.Statements {
+ l = len(s)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
func (m *ConcludeTransactionRequest) SizeVT() (n int) {
if m == nil {
return 0
@@ -18572,6 +18755,255 @@ func (m *ReadTransactionResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
+func (m *GetTransactionInfoRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTransactionInfoRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTransactionInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Dtid", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Dtid = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GetTransactionInfoResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTransactionInfoResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTransactionInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field State", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.State = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Message = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TimeCreated", wireType)
+ }
+ m.TimeCreated = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TimeCreated |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Statements", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Statements = append(m.Statements, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ConcludeTransactionRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
index 564c6f2e0ba..2ecda04dfb0 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
@@ -45,7 +45,7 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x1a, 0x17, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0xa5, 0x3a, 0x0a, 0x0d,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x9a, 0x3b, 0x0a, 0x0d,
0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x49, 0x0a,
0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65,
@@ -208,314 +208,322 @@ var file_tabletmanagerservice_proto_rawDesc = []byte{
0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x61,
0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72,
- 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f,
- 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x4d, 0x79,
- 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2a,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d,
- 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b,
+ 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
+ 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d,
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x6d, 0x0a, 0x10, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73,
+ 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x79, 0x73, 0x71, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70,
+ 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x64, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
- 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a,
- 0x0f, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f,
+ 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x53, 0x74, 0x6f,
- 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x2e, 0x74,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a,
+ 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,
- 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41,
- 0x66, 0x74, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66,
- 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x53, 0x74,
+ 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e,
+ 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x53,
0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55,
- 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x73, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65,
+ 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74,
+ 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e,
+ 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65,
0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44,
- 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01,
- 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65,
+ 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65,
0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18,
- 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x61, 0x73,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
+ 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, 0x19,
- 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x85, 0x01, 0x0a, 0x18, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x32, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x61,
+ 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c,
0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x88, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x33,
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a,
0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
- 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65,
- 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x9a, 0x01, 0x0a, 0x1f, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c,
0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61,
0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
- 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72,
- 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x30, 0x2e, 0x74, 0x61,
+ 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x56, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x12, 0x2a, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74,
- 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7f, 0x0a, 0x16, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73,
+ 0x12, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x05, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x12, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
+ 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49,
+ 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c,
+ 0x12, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x52, 0x65,
+ 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61,
+ 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
+ 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66,
+ 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61,
+ 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e,
+ 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e,
0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61,
- 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x05, 0x56, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1f, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x74,
+ 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64,
+ 0x0a, 0x0d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12,
+ 0x27, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e,
+ 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44,
+ 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x6d, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
+ 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65,
+ 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a,
+ 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
+ 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x25,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c,
+ 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x79, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e,
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x82, 0x01, 0x0a, 0x17, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x31, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32,
+ 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f,
0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70,
- 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
- 0x12, 0x31, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0b, 0x49, 0x6e, 0x69,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x26, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x0d, 0x44, 0x65, 0x6d,
- 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x27, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44,
- 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x70, 0x0a, 0x11, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d,
- 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
- 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
- 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x76, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52,
+ 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
- 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c,
- 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x79, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x13,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57,
- 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61,
- 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x74, 0x61,
+ 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8e, 0x01, 0x0a, 0x1b, 0x53, 0x74,
+ 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64,
+ 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74,
+ 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64,
+ 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72,
+ 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
+ 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x21, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72,
+ 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41,
- 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d,
- 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51,
- 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x61, 0x63,
- 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
- 0x01, 0x12, 0x72, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d,
- 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f,
- 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46,
- 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x73,
- 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f,
- 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f,
- 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75,
+ 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x0e, 0x43, 0x68,
+ 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
+ 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54,
+ 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x76, 0x69, 0x74, 0x65,
+ 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f,
+ 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var file_tabletmanagerservice_proto_goTypes = []any{
@@ -544,113 +552,115 @@ var file_tabletmanagerservice_proto_goTypes = []any{
(*tabletmanagerdata.ExecuteFetchAsAppRequest)(nil), // 22: tabletmanagerdata.ExecuteFetchAsAppRequest
(*tabletmanagerdata.GetUnresolvedTransactionsRequest)(nil), // 23: tabletmanagerdata.GetUnresolvedTransactionsRequest
(*tabletmanagerdata.ReadTransactionRequest)(nil), // 24: tabletmanagerdata.ReadTransactionRequest
- (*tabletmanagerdata.ConcludeTransactionRequest)(nil), // 25: tabletmanagerdata.ConcludeTransactionRequest
- (*tabletmanagerdata.MysqlHostMetricsRequest)(nil), // 26: tabletmanagerdata.MysqlHostMetricsRequest
- (*tabletmanagerdata.ReplicationStatusRequest)(nil), // 27: tabletmanagerdata.ReplicationStatusRequest
- (*tabletmanagerdata.PrimaryStatusRequest)(nil), // 28: tabletmanagerdata.PrimaryStatusRequest
- (*tabletmanagerdata.PrimaryPositionRequest)(nil), // 29: tabletmanagerdata.PrimaryPositionRequest
- (*tabletmanagerdata.WaitForPositionRequest)(nil), // 30: tabletmanagerdata.WaitForPositionRequest
- (*tabletmanagerdata.StopReplicationRequest)(nil), // 31: tabletmanagerdata.StopReplicationRequest
- (*tabletmanagerdata.StopReplicationMinimumRequest)(nil), // 32: tabletmanagerdata.StopReplicationMinimumRequest
- (*tabletmanagerdata.StartReplicationRequest)(nil), // 33: tabletmanagerdata.StartReplicationRequest
- (*tabletmanagerdata.StartReplicationUntilAfterRequest)(nil), // 34: tabletmanagerdata.StartReplicationUntilAfterRequest
- (*tabletmanagerdata.GetReplicasRequest)(nil), // 35: tabletmanagerdata.GetReplicasRequest
- (*tabletmanagerdata.CreateVReplicationWorkflowRequest)(nil), // 36: tabletmanagerdata.CreateVReplicationWorkflowRequest
- (*tabletmanagerdata.DeleteTableDataRequest)(nil), // 37: tabletmanagerdata.DeleteTableDataRequest
- (*tabletmanagerdata.DeleteVReplicationWorkflowRequest)(nil), // 38: tabletmanagerdata.DeleteVReplicationWorkflowRequest
- (*tabletmanagerdata.HasVReplicationWorkflowsRequest)(nil), // 39: tabletmanagerdata.HasVReplicationWorkflowsRequest
- (*tabletmanagerdata.ReadVReplicationWorkflowRequest)(nil), // 40: tabletmanagerdata.ReadVReplicationWorkflowRequest
- (*tabletmanagerdata.ReadVReplicationWorkflowsRequest)(nil), // 41: tabletmanagerdata.ReadVReplicationWorkflowsRequest
- (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 42: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*tabletmanagerdata.UpdateVReplicationWorkflowsRequest)(nil), // 43: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- (*tabletmanagerdata.ValidateVReplicationPermissionsRequest)(nil), // 44: tabletmanagerdata.ValidateVReplicationPermissionsRequest
- (*tabletmanagerdata.VReplicationExecRequest)(nil), // 45: tabletmanagerdata.VReplicationExecRequest
- (*tabletmanagerdata.VReplicationWaitForPosRequest)(nil), // 46: tabletmanagerdata.VReplicationWaitForPosRequest
- (*tabletmanagerdata.VDiffRequest)(nil), // 47: tabletmanagerdata.VDiffRequest
- (*tabletmanagerdata.ResetReplicationRequest)(nil), // 48: tabletmanagerdata.ResetReplicationRequest
- (*tabletmanagerdata.InitPrimaryRequest)(nil), // 49: tabletmanagerdata.InitPrimaryRequest
- (*tabletmanagerdata.PopulateReparentJournalRequest)(nil), // 50: tabletmanagerdata.PopulateReparentJournalRequest
- (*tabletmanagerdata.ReadReparentJournalInfoRequest)(nil), // 51: tabletmanagerdata.ReadReparentJournalInfoRequest
- (*tabletmanagerdata.InitReplicaRequest)(nil), // 52: tabletmanagerdata.InitReplicaRequest
- (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 53: tabletmanagerdata.DemotePrimaryRequest
- (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 54: tabletmanagerdata.UndoDemotePrimaryRequest
- (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 55: tabletmanagerdata.ReplicaWasPromotedRequest
- (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 56: tabletmanagerdata.ResetReplicationParametersRequest
- (*tabletmanagerdata.FullStatusRequest)(nil), // 57: tabletmanagerdata.FullStatusRequest
- (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 58: tabletmanagerdata.SetReplicationSourceRequest
- (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 59: tabletmanagerdata.ReplicaWasRestartedRequest
- (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 60: tabletmanagerdata.StopReplicationAndGetStatusRequest
- (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 61: tabletmanagerdata.PromoteReplicaRequest
- (*tabletmanagerdata.BackupRequest)(nil), // 62: tabletmanagerdata.BackupRequest
- (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 63: tabletmanagerdata.RestoreFromBackupRequest
- (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 64: tabletmanagerdata.CheckThrottlerRequest
- (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 65: tabletmanagerdata.GetThrottlerStatusRequest
- (*tabletmanagerdata.PingResponse)(nil), // 66: tabletmanagerdata.PingResponse
- (*tabletmanagerdata.SleepResponse)(nil), // 67: tabletmanagerdata.SleepResponse
- (*tabletmanagerdata.ExecuteHookResponse)(nil), // 68: tabletmanagerdata.ExecuteHookResponse
- (*tabletmanagerdata.GetSchemaResponse)(nil), // 69: tabletmanagerdata.GetSchemaResponse
- (*tabletmanagerdata.GetPermissionsResponse)(nil), // 70: tabletmanagerdata.GetPermissionsResponse
- (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 71: tabletmanagerdata.GetGlobalStatusVarsResponse
- (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 72: tabletmanagerdata.SetReadOnlyResponse
- (*tabletmanagerdata.SetReadWriteResponse)(nil), // 73: tabletmanagerdata.SetReadWriteResponse
- (*tabletmanagerdata.ChangeTagsResponse)(nil), // 74: tabletmanagerdata.ChangeTagsResponse
- (*tabletmanagerdata.ChangeTypeResponse)(nil), // 75: tabletmanagerdata.ChangeTypeResponse
- (*tabletmanagerdata.RefreshStateResponse)(nil), // 76: tabletmanagerdata.RefreshStateResponse
- (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 77: tabletmanagerdata.RunHealthCheckResponse
- (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 78: tabletmanagerdata.ReloadSchemaResponse
- (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 79: tabletmanagerdata.PreflightSchemaResponse
- (*tabletmanagerdata.ApplySchemaResponse)(nil), // 80: tabletmanagerdata.ApplySchemaResponse
- (*tabletmanagerdata.ResetSequencesResponse)(nil), // 81: tabletmanagerdata.ResetSequencesResponse
- (*tabletmanagerdata.LockTablesResponse)(nil), // 82: tabletmanagerdata.LockTablesResponse
- (*tabletmanagerdata.UnlockTablesResponse)(nil), // 83: tabletmanagerdata.UnlockTablesResponse
- (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 84: tabletmanagerdata.ExecuteQueryResponse
- (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 85: tabletmanagerdata.ExecuteFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 86: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 87: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 88: tabletmanagerdata.ExecuteFetchAsAppResponse
- (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 89: tabletmanagerdata.GetUnresolvedTransactionsResponse
- (*tabletmanagerdata.ReadTransactionResponse)(nil), // 90: tabletmanagerdata.ReadTransactionResponse
- (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 91: tabletmanagerdata.ConcludeTransactionResponse
- (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 92: tabletmanagerdata.MysqlHostMetricsResponse
- (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 93: tabletmanagerdata.ReplicationStatusResponse
- (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 94: tabletmanagerdata.PrimaryStatusResponse
- (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 95: tabletmanagerdata.PrimaryPositionResponse
- (*tabletmanagerdata.WaitForPositionResponse)(nil), // 96: tabletmanagerdata.WaitForPositionResponse
- (*tabletmanagerdata.StopReplicationResponse)(nil), // 97: tabletmanagerdata.StopReplicationResponse
- (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 98: tabletmanagerdata.StopReplicationMinimumResponse
- (*tabletmanagerdata.StartReplicationResponse)(nil), // 99: tabletmanagerdata.StartReplicationResponse
- (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 100: tabletmanagerdata.StartReplicationUntilAfterResponse
- (*tabletmanagerdata.GetReplicasResponse)(nil), // 101: tabletmanagerdata.GetReplicasResponse
- (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 102: tabletmanagerdata.CreateVReplicationWorkflowResponse
- (*tabletmanagerdata.DeleteTableDataResponse)(nil), // 103: tabletmanagerdata.DeleteTableDataResponse
- (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 104: tabletmanagerdata.DeleteVReplicationWorkflowResponse
- (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 105: tabletmanagerdata.HasVReplicationWorkflowsResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 106: tabletmanagerdata.ReadVReplicationWorkflowResponse
- (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 107: tabletmanagerdata.ReadVReplicationWorkflowsResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 108: tabletmanagerdata.UpdateVReplicationWorkflowResponse
- (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 109: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 110: tabletmanagerdata.ValidateVReplicationPermissionsResponse
- (*tabletmanagerdata.VReplicationExecResponse)(nil), // 111: tabletmanagerdata.VReplicationExecResponse
- (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 112: tabletmanagerdata.VReplicationWaitForPosResponse
- (*tabletmanagerdata.VDiffResponse)(nil), // 113: tabletmanagerdata.VDiffResponse
- (*tabletmanagerdata.ResetReplicationResponse)(nil), // 114: tabletmanagerdata.ResetReplicationResponse
- (*tabletmanagerdata.InitPrimaryResponse)(nil), // 115: tabletmanagerdata.InitPrimaryResponse
- (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 116: tabletmanagerdata.PopulateReparentJournalResponse
- (*tabletmanagerdata.ReadReparentJournalInfoResponse)(nil), // 117: tabletmanagerdata.ReadReparentJournalInfoResponse
- (*tabletmanagerdata.InitReplicaResponse)(nil), // 118: tabletmanagerdata.InitReplicaResponse
- (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 119: tabletmanagerdata.DemotePrimaryResponse
- (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 120: tabletmanagerdata.UndoDemotePrimaryResponse
- (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 121: tabletmanagerdata.ReplicaWasPromotedResponse
- (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 122: tabletmanagerdata.ResetReplicationParametersResponse
- (*tabletmanagerdata.FullStatusResponse)(nil), // 123: tabletmanagerdata.FullStatusResponse
- (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 124: tabletmanagerdata.SetReplicationSourceResponse
- (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 125: tabletmanagerdata.ReplicaWasRestartedResponse
- (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 126: tabletmanagerdata.StopReplicationAndGetStatusResponse
- (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 127: tabletmanagerdata.PromoteReplicaResponse
- (*tabletmanagerdata.BackupResponse)(nil), // 128: tabletmanagerdata.BackupResponse
- (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 129: tabletmanagerdata.RestoreFromBackupResponse
- (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 130: tabletmanagerdata.CheckThrottlerResponse
- (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 131: tabletmanagerdata.GetThrottlerStatusResponse
+ (*tabletmanagerdata.GetTransactionInfoRequest)(nil), // 25: tabletmanagerdata.GetTransactionInfoRequest
+ (*tabletmanagerdata.ConcludeTransactionRequest)(nil), // 26: tabletmanagerdata.ConcludeTransactionRequest
+ (*tabletmanagerdata.MysqlHostMetricsRequest)(nil), // 27: tabletmanagerdata.MysqlHostMetricsRequest
+ (*tabletmanagerdata.ReplicationStatusRequest)(nil), // 28: tabletmanagerdata.ReplicationStatusRequest
+ (*tabletmanagerdata.PrimaryStatusRequest)(nil), // 29: tabletmanagerdata.PrimaryStatusRequest
+ (*tabletmanagerdata.PrimaryPositionRequest)(nil), // 30: tabletmanagerdata.PrimaryPositionRequest
+ (*tabletmanagerdata.WaitForPositionRequest)(nil), // 31: tabletmanagerdata.WaitForPositionRequest
+ (*tabletmanagerdata.StopReplicationRequest)(nil), // 32: tabletmanagerdata.StopReplicationRequest
+ (*tabletmanagerdata.StopReplicationMinimumRequest)(nil), // 33: tabletmanagerdata.StopReplicationMinimumRequest
+ (*tabletmanagerdata.StartReplicationRequest)(nil), // 34: tabletmanagerdata.StartReplicationRequest
+ (*tabletmanagerdata.StartReplicationUntilAfterRequest)(nil), // 35: tabletmanagerdata.StartReplicationUntilAfterRequest
+ (*tabletmanagerdata.GetReplicasRequest)(nil), // 36: tabletmanagerdata.GetReplicasRequest
+ (*tabletmanagerdata.CreateVReplicationWorkflowRequest)(nil), // 37: tabletmanagerdata.CreateVReplicationWorkflowRequest
+ (*tabletmanagerdata.DeleteTableDataRequest)(nil), // 38: tabletmanagerdata.DeleteTableDataRequest
+ (*tabletmanagerdata.DeleteVReplicationWorkflowRequest)(nil), // 39: tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ (*tabletmanagerdata.HasVReplicationWorkflowsRequest)(nil), // 40: tabletmanagerdata.HasVReplicationWorkflowsRequest
+ (*tabletmanagerdata.ReadVReplicationWorkflowRequest)(nil), // 41: tabletmanagerdata.ReadVReplicationWorkflowRequest
+ (*tabletmanagerdata.ReadVReplicationWorkflowsRequest)(nil), // 42: tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 43: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*tabletmanagerdata.UpdateVReplicationWorkflowsRequest)(nil), // 44: tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ (*tabletmanagerdata.ValidateVReplicationPermissionsRequest)(nil), // 45: tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ (*tabletmanagerdata.VReplicationExecRequest)(nil), // 46: tabletmanagerdata.VReplicationExecRequest
+ (*tabletmanagerdata.VReplicationWaitForPosRequest)(nil), // 47: tabletmanagerdata.VReplicationWaitForPosRequest
+ (*tabletmanagerdata.VDiffRequest)(nil), // 48: tabletmanagerdata.VDiffRequest
+ (*tabletmanagerdata.ResetReplicationRequest)(nil), // 49: tabletmanagerdata.ResetReplicationRequest
+ (*tabletmanagerdata.InitPrimaryRequest)(nil), // 50: tabletmanagerdata.InitPrimaryRequest
+ (*tabletmanagerdata.PopulateReparentJournalRequest)(nil), // 51: tabletmanagerdata.PopulateReparentJournalRequest
+ (*tabletmanagerdata.ReadReparentJournalInfoRequest)(nil), // 52: tabletmanagerdata.ReadReparentJournalInfoRequest
+ (*tabletmanagerdata.InitReplicaRequest)(nil), // 53: tabletmanagerdata.InitReplicaRequest
+ (*tabletmanagerdata.DemotePrimaryRequest)(nil), // 54: tabletmanagerdata.DemotePrimaryRequest
+ (*tabletmanagerdata.UndoDemotePrimaryRequest)(nil), // 55: tabletmanagerdata.UndoDemotePrimaryRequest
+ (*tabletmanagerdata.ReplicaWasPromotedRequest)(nil), // 56: tabletmanagerdata.ReplicaWasPromotedRequest
+ (*tabletmanagerdata.ResetReplicationParametersRequest)(nil), // 57: tabletmanagerdata.ResetReplicationParametersRequest
+ (*tabletmanagerdata.FullStatusRequest)(nil), // 58: tabletmanagerdata.FullStatusRequest
+ (*tabletmanagerdata.SetReplicationSourceRequest)(nil), // 59: tabletmanagerdata.SetReplicationSourceRequest
+ (*tabletmanagerdata.ReplicaWasRestartedRequest)(nil), // 60: tabletmanagerdata.ReplicaWasRestartedRequest
+ (*tabletmanagerdata.StopReplicationAndGetStatusRequest)(nil), // 61: tabletmanagerdata.StopReplicationAndGetStatusRequest
+ (*tabletmanagerdata.PromoteReplicaRequest)(nil), // 62: tabletmanagerdata.PromoteReplicaRequest
+ (*tabletmanagerdata.BackupRequest)(nil), // 63: tabletmanagerdata.BackupRequest
+ (*tabletmanagerdata.RestoreFromBackupRequest)(nil), // 64: tabletmanagerdata.RestoreFromBackupRequest
+ (*tabletmanagerdata.CheckThrottlerRequest)(nil), // 65: tabletmanagerdata.CheckThrottlerRequest
+ (*tabletmanagerdata.GetThrottlerStatusRequest)(nil), // 66: tabletmanagerdata.GetThrottlerStatusRequest
+ (*tabletmanagerdata.PingResponse)(nil), // 67: tabletmanagerdata.PingResponse
+ (*tabletmanagerdata.SleepResponse)(nil), // 68: tabletmanagerdata.SleepResponse
+ (*tabletmanagerdata.ExecuteHookResponse)(nil), // 69: tabletmanagerdata.ExecuteHookResponse
+ (*tabletmanagerdata.GetSchemaResponse)(nil), // 70: tabletmanagerdata.GetSchemaResponse
+ (*tabletmanagerdata.GetPermissionsResponse)(nil), // 71: tabletmanagerdata.GetPermissionsResponse
+ (*tabletmanagerdata.GetGlobalStatusVarsResponse)(nil), // 72: tabletmanagerdata.GetGlobalStatusVarsResponse
+ (*tabletmanagerdata.SetReadOnlyResponse)(nil), // 73: tabletmanagerdata.SetReadOnlyResponse
+ (*tabletmanagerdata.SetReadWriteResponse)(nil), // 74: tabletmanagerdata.SetReadWriteResponse
+ (*tabletmanagerdata.ChangeTagsResponse)(nil), // 75: tabletmanagerdata.ChangeTagsResponse
+ (*tabletmanagerdata.ChangeTypeResponse)(nil), // 76: tabletmanagerdata.ChangeTypeResponse
+ (*tabletmanagerdata.RefreshStateResponse)(nil), // 77: tabletmanagerdata.RefreshStateResponse
+ (*tabletmanagerdata.RunHealthCheckResponse)(nil), // 78: tabletmanagerdata.RunHealthCheckResponse
+ (*tabletmanagerdata.ReloadSchemaResponse)(nil), // 79: tabletmanagerdata.ReloadSchemaResponse
+ (*tabletmanagerdata.PreflightSchemaResponse)(nil), // 80: tabletmanagerdata.PreflightSchemaResponse
+ (*tabletmanagerdata.ApplySchemaResponse)(nil), // 81: tabletmanagerdata.ApplySchemaResponse
+ (*tabletmanagerdata.ResetSequencesResponse)(nil), // 82: tabletmanagerdata.ResetSequencesResponse
+ (*tabletmanagerdata.LockTablesResponse)(nil), // 83: tabletmanagerdata.LockTablesResponse
+ (*tabletmanagerdata.UnlockTablesResponse)(nil), // 84: tabletmanagerdata.UnlockTablesResponse
+ (*tabletmanagerdata.ExecuteQueryResponse)(nil), // 85: tabletmanagerdata.ExecuteQueryResponse
+ (*tabletmanagerdata.ExecuteFetchAsDbaResponse)(nil), // 86: tabletmanagerdata.ExecuteFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteMultiFetchAsDbaResponse)(nil), // 87: tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ (*tabletmanagerdata.ExecuteFetchAsAllPrivsResponse)(nil), // 88: tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ (*tabletmanagerdata.ExecuteFetchAsAppResponse)(nil), // 89: tabletmanagerdata.ExecuteFetchAsAppResponse
+ (*tabletmanagerdata.GetUnresolvedTransactionsResponse)(nil), // 90: tabletmanagerdata.GetUnresolvedTransactionsResponse
+ (*tabletmanagerdata.ReadTransactionResponse)(nil), // 91: tabletmanagerdata.ReadTransactionResponse
+ (*tabletmanagerdata.GetTransactionInfoResponse)(nil), // 92: tabletmanagerdata.GetTransactionInfoResponse
+ (*tabletmanagerdata.ConcludeTransactionResponse)(nil), // 93: tabletmanagerdata.ConcludeTransactionResponse
+ (*tabletmanagerdata.MysqlHostMetricsResponse)(nil), // 94: tabletmanagerdata.MysqlHostMetricsResponse
+ (*tabletmanagerdata.ReplicationStatusResponse)(nil), // 95: tabletmanagerdata.ReplicationStatusResponse
+ (*tabletmanagerdata.PrimaryStatusResponse)(nil), // 96: tabletmanagerdata.PrimaryStatusResponse
+ (*tabletmanagerdata.PrimaryPositionResponse)(nil), // 97: tabletmanagerdata.PrimaryPositionResponse
+ (*tabletmanagerdata.WaitForPositionResponse)(nil), // 98: tabletmanagerdata.WaitForPositionResponse
+ (*tabletmanagerdata.StopReplicationResponse)(nil), // 99: tabletmanagerdata.StopReplicationResponse
+ (*tabletmanagerdata.StopReplicationMinimumResponse)(nil), // 100: tabletmanagerdata.StopReplicationMinimumResponse
+ (*tabletmanagerdata.StartReplicationResponse)(nil), // 101: tabletmanagerdata.StartReplicationResponse
+ (*tabletmanagerdata.StartReplicationUntilAfterResponse)(nil), // 102: tabletmanagerdata.StartReplicationUntilAfterResponse
+ (*tabletmanagerdata.GetReplicasResponse)(nil), // 103: tabletmanagerdata.GetReplicasResponse
+ (*tabletmanagerdata.CreateVReplicationWorkflowResponse)(nil), // 104: tabletmanagerdata.CreateVReplicationWorkflowResponse
+ (*tabletmanagerdata.DeleteTableDataResponse)(nil), // 105: tabletmanagerdata.DeleteTableDataResponse
+ (*tabletmanagerdata.DeleteVReplicationWorkflowResponse)(nil), // 106: tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ (*tabletmanagerdata.HasVReplicationWorkflowsResponse)(nil), // 107: tabletmanagerdata.HasVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowResponse)(nil), // 108: tabletmanagerdata.ReadVReplicationWorkflowResponse
+ (*tabletmanagerdata.ReadVReplicationWorkflowsResponse)(nil), // 109: tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowResponse)(nil), // 110: tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ (*tabletmanagerdata.UpdateVReplicationWorkflowsResponse)(nil), // 111: tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ (*tabletmanagerdata.ValidateVReplicationPermissionsResponse)(nil), // 112: tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ (*tabletmanagerdata.VReplicationExecResponse)(nil), // 113: tabletmanagerdata.VReplicationExecResponse
+ (*tabletmanagerdata.VReplicationWaitForPosResponse)(nil), // 114: tabletmanagerdata.VReplicationWaitForPosResponse
+ (*tabletmanagerdata.VDiffResponse)(nil), // 115: tabletmanagerdata.VDiffResponse
+ (*tabletmanagerdata.ResetReplicationResponse)(nil), // 116: tabletmanagerdata.ResetReplicationResponse
+ (*tabletmanagerdata.InitPrimaryResponse)(nil), // 117: tabletmanagerdata.InitPrimaryResponse
+ (*tabletmanagerdata.PopulateReparentJournalResponse)(nil), // 118: tabletmanagerdata.PopulateReparentJournalResponse
+ (*tabletmanagerdata.ReadReparentJournalInfoResponse)(nil), // 119: tabletmanagerdata.ReadReparentJournalInfoResponse
+ (*tabletmanagerdata.InitReplicaResponse)(nil), // 120: tabletmanagerdata.InitReplicaResponse
+ (*tabletmanagerdata.DemotePrimaryResponse)(nil), // 121: tabletmanagerdata.DemotePrimaryResponse
+ (*tabletmanagerdata.UndoDemotePrimaryResponse)(nil), // 122: tabletmanagerdata.UndoDemotePrimaryResponse
+ (*tabletmanagerdata.ReplicaWasPromotedResponse)(nil), // 123: tabletmanagerdata.ReplicaWasPromotedResponse
+ (*tabletmanagerdata.ResetReplicationParametersResponse)(nil), // 124: tabletmanagerdata.ResetReplicationParametersResponse
+ (*tabletmanagerdata.FullStatusResponse)(nil), // 125: tabletmanagerdata.FullStatusResponse
+ (*tabletmanagerdata.SetReplicationSourceResponse)(nil), // 126: tabletmanagerdata.SetReplicationSourceResponse
+ (*tabletmanagerdata.ReplicaWasRestartedResponse)(nil), // 127: tabletmanagerdata.ReplicaWasRestartedResponse
+ (*tabletmanagerdata.StopReplicationAndGetStatusResponse)(nil), // 128: tabletmanagerdata.StopReplicationAndGetStatusResponse
+ (*tabletmanagerdata.PromoteReplicaResponse)(nil), // 129: tabletmanagerdata.PromoteReplicaResponse
+ (*tabletmanagerdata.BackupResponse)(nil), // 130: tabletmanagerdata.BackupResponse
+ (*tabletmanagerdata.RestoreFromBackupResponse)(nil), // 131: tabletmanagerdata.RestoreFromBackupResponse
+ (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 132: tabletmanagerdata.CheckThrottlerResponse
+ (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 133: tabletmanagerdata.GetThrottlerStatusResponse
}
var file_tabletmanagerservice_proto_depIdxs = []int32{
0, // 0: tabletmanagerservice.TabletManager.Ping:input_type -> tabletmanagerdata.PingRequest
@@ -678,115 +688,117 @@ var file_tabletmanagerservice_proto_depIdxs = []int32{
22, // 22: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:input_type -> tabletmanagerdata.ExecuteFetchAsAppRequest
23, // 23: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:input_type -> tabletmanagerdata.GetUnresolvedTransactionsRequest
24, // 24: tabletmanagerservice.TabletManager.ReadTransaction:input_type -> tabletmanagerdata.ReadTransactionRequest
- 25, // 25: tabletmanagerservice.TabletManager.ConcludeTransaction:input_type -> tabletmanagerdata.ConcludeTransactionRequest
- 26, // 26: tabletmanagerservice.TabletManager.MysqlHostMetrics:input_type -> tabletmanagerdata.MysqlHostMetricsRequest
- 27, // 27: tabletmanagerservice.TabletManager.ReplicationStatus:input_type -> tabletmanagerdata.ReplicationStatusRequest
- 28, // 28: tabletmanagerservice.TabletManager.PrimaryStatus:input_type -> tabletmanagerdata.PrimaryStatusRequest
- 29, // 29: tabletmanagerservice.TabletManager.PrimaryPosition:input_type -> tabletmanagerdata.PrimaryPositionRequest
- 30, // 30: tabletmanagerservice.TabletManager.WaitForPosition:input_type -> tabletmanagerdata.WaitForPositionRequest
- 31, // 31: tabletmanagerservice.TabletManager.StopReplication:input_type -> tabletmanagerdata.StopReplicationRequest
- 32, // 32: tabletmanagerservice.TabletManager.StopReplicationMinimum:input_type -> tabletmanagerdata.StopReplicationMinimumRequest
- 33, // 33: tabletmanagerservice.TabletManager.StartReplication:input_type -> tabletmanagerdata.StartReplicationRequest
- 34, // 34: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:input_type -> tabletmanagerdata.StartReplicationUntilAfterRequest
- 35, // 35: tabletmanagerservice.TabletManager.GetReplicas:input_type -> tabletmanagerdata.GetReplicasRequest
- 36, // 36: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:input_type -> tabletmanagerdata.CreateVReplicationWorkflowRequest
- 37, // 37: tabletmanagerservice.TabletManager.DeleteTableData:input_type -> tabletmanagerdata.DeleteTableDataRequest
- 38, // 38: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:input_type -> tabletmanagerdata.DeleteVReplicationWorkflowRequest
- 39, // 39: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:input_type -> tabletmanagerdata.HasVReplicationWorkflowsRequest
- 40, // 40: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:input_type -> tabletmanagerdata.ReadVReplicationWorkflowRequest
- 41, // 41: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:input_type -> tabletmanagerdata.ReadVReplicationWorkflowsRequest
- 42, // 42: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
- 43, // 43: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowsRequest
- 44, // 44: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:input_type -> tabletmanagerdata.ValidateVReplicationPermissionsRequest
- 45, // 45: tabletmanagerservice.TabletManager.VReplicationExec:input_type -> tabletmanagerdata.VReplicationExecRequest
- 46, // 46: tabletmanagerservice.TabletManager.VReplicationWaitForPos:input_type -> tabletmanagerdata.VReplicationWaitForPosRequest
- 47, // 47: tabletmanagerservice.TabletManager.VDiff:input_type -> tabletmanagerdata.VDiffRequest
- 48, // 48: tabletmanagerservice.TabletManager.ResetReplication:input_type -> tabletmanagerdata.ResetReplicationRequest
- 49, // 49: tabletmanagerservice.TabletManager.InitPrimary:input_type -> tabletmanagerdata.InitPrimaryRequest
- 50, // 50: tabletmanagerservice.TabletManager.PopulateReparentJournal:input_type -> tabletmanagerdata.PopulateReparentJournalRequest
- 51, // 51: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:input_type -> tabletmanagerdata.ReadReparentJournalInfoRequest
- 52, // 52: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
- 53, // 53: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
- 54, // 54: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
- 55, // 55: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
- 56, // 56: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
- 57, // 57: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
- 58, // 58: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
- 59, // 59: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
- 60, // 60: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
- 61, // 61: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
- 62, // 62: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
- 63, // 63: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
- 64, // 64: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
- 65, // 65: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
- 66, // 66: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
- 67, // 67: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
- 68, // 68: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
- 69, // 69: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
- 70, // 70: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
- 71, // 71: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
- 72, // 72: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
- 73, // 73: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
- 74, // 74: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
- 75, // 75: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
- 76, // 76: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
- 77, // 77: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
- 78, // 78: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
- 79, // 79: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
- 80, // 80: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
- 81, // 81: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
- 82, // 82: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
- 83, // 83: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
- 84, // 84: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
- 85, // 85: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
- 86, // 86: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
- 87, // 87: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
- 88, // 88: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
- 89, // 89: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
- 90, // 90: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
- 91, // 91: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
- 92, // 92: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
- 93, // 93: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
- 94, // 94: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
- 95, // 95: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
- 96, // 96: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
- 97, // 97: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
- 98, // 98: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
- 99, // 99: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
- 100, // 100: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
- 101, // 101: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
- 102, // 102: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
- 103, // 103: tabletmanagerservice.TabletManager.DeleteTableData:output_type -> tabletmanagerdata.DeleteTableDataResponse
- 104, // 104: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
- 105, // 105: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
- 106, // 106: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
- 107, // 107: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
- 108, // 108: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
- 109, // 109: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
- 110, // 110: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
- 111, // 111: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
- 112, // 112: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
- 113, // 113: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
- 114, // 114: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
- 115, // 115: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
- 116, // 116: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
- 117, // 117: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:output_type -> tabletmanagerdata.ReadReparentJournalInfoResponse
- 118, // 118: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
- 119, // 119: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
- 120, // 120: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
- 121, // 121: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
- 122, // 122: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
- 123, // 123: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
- 124, // 124: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
- 125, // 125: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
- 126, // 126: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
- 127, // 127: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
- 128, // 128: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
- 129, // 129: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
- 130, // 130: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
- 131, // 131: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
- 66, // [66:132] is the sub-list for method output_type
- 0, // [0:66] is the sub-list for method input_type
+ 25, // 25: tabletmanagerservice.TabletManager.GetTransactionInfo:input_type -> tabletmanagerdata.GetTransactionInfoRequest
+ 26, // 26: tabletmanagerservice.TabletManager.ConcludeTransaction:input_type -> tabletmanagerdata.ConcludeTransactionRequest
+ 27, // 27: tabletmanagerservice.TabletManager.MysqlHostMetrics:input_type -> tabletmanagerdata.MysqlHostMetricsRequest
+ 28, // 28: tabletmanagerservice.TabletManager.ReplicationStatus:input_type -> tabletmanagerdata.ReplicationStatusRequest
+ 29, // 29: tabletmanagerservice.TabletManager.PrimaryStatus:input_type -> tabletmanagerdata.PrimaryStatusRequest
+ 30, // 30: tabletmanagerservice.TabletManager.PrimaryPosition:input_type -> tabletmanagerdata.PrimaryPositionRequest
+ 31, // 31: tabletmanagerservice.TabletManager.WaitForPosition:input_type -> tabletmanagerdata.WaitForPositionRequest
+ 32, // 32: tabletmanagerservice.TabletManager.StopReplication:input_type -> tabletmanagerdata.StopReplicationRequest
+ 33, // 33: tabletmanagerservice.TabletManager.StopReplicationMinimum:input_type -> tabletmanagerdata.StopReplicationMinimumRequest
+ 34, // 34: tabletmanagerservice.TabletManager.StartReplication:input_type -> tabletmanagerdata.StartReplicationRequest
+ 35, // 35: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:input_type -> tabletmanagerdata.StartReplicationUntilAfterRequest
+ 36, // 36: tabletmanagerservice.TabletManager.GetReplicas:input_type -> tabletmanagerdata.GetReplicasRequest
+ 37, // 37: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:input_type -> tabletmanagerdata.CreateVReplicationWorkflowRequest
+ 38, // 38: tabletmanagerservice.TabletManager.DeleteTableData:input_type -> tabletmanagerdata.DeleteTableDataRequest
+ 39, // 39: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:input_type -> tabletmanagerdata.DeleteVReplicationWorkflowRequest
+ 40, // 40: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:input_type -> tabletmanagerdata.HasVReplicationWorkflowsRequest
+ 41, // 41: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:input_type -> tabletmanagerdata.ReadVReplicationWorkflowRequest
+ 42, // 42: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:input_type -> tabletmanagerdata.ReadVReplicationWorkflowsRequest
+ 43, // 43: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ 44, // 44: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:input_type -> tabletmanagerdata.UpdateVReplicationWorkflowsRequest
+ 45, // 45: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:input_type -> tabletmanagerdata.ValidateVReplicationPermissionsRequest
+ 46, // 46: tabletmanagerservice.TabletManager.VReplicationExec:input_type -> tabletmanagerdata.VReplicationExecRequest
+ 47, // 47: tabletmanagerservice.TabletManager.VReplicationWaitForPos:input_type -> tabletmanagerdata.VReplicationWaitForPosRequest
+ 48, // 48: tabletmanagerservice.TabletManager.VDiff:input_type -> tabletmanagerdata.VDiffRequest
+ 49, // 49: tabletmanagerservice.TabletManager.ResetReplication:input_type -> tabletmanagerdata.ResetReplicationRequest
+ 50, // 50: tabletmanagerservice.TabletManager.InitPrimary:input_type -> tabletmanagerdata.InitPrimaryRequest
+ 51, // 51: tabletmanagerservice.TabletManager.PopulateReparentJournal:input_type -> tabletmanagerdata.PopulateReparentJournalRequest
+ 52, // 52: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:input_type -> tabletmanagerdata.ReadReparentJournalInfoRequest
+ 53, // 53: tabletmanagerservice.TabletManager.InitReplica:input_type -> tabletmanagerdata.InitReplicaRequest
+ 54, // 54: tabletmanagerservice.TabletManager.DemotePrimary:input_type -> tabletmanagerdata.DemotePrimaryRequest
+ 55, // 55: tabletmanagerservice.TabletManager.UndoDemotePrimary:input_type -> tabletmanagerdata.UndoDemotePrimaryRequest
+ 56, // 56: tabletmanagerservice.TabletManager.ReplicaWasPromoted:input_type -> tabletmanagerdata.ReplicaWasPromotedRequest
+ 57, // 57: tabletmanagerservice.TabletManager.ResetReplicationParameters:input_type -> tabletmanagerdata.ResetReplicationParametersRequest
+ 58, // 58: tabletmanagerservice.TabletManager.FullStatus:input_type -> tabletmanagerdata.FullStatusRequest
+ 59, // 59: tabletmanagerservice.TabletManager.SetReplicationSource:input_type -> tabletmanagerdata.SetReplicationSourceRequest
+ 60, // 60: tabletmanagerservice.TabletManager.ReplicaWasRestarted:input_type -> tabletmanagerdata.ReplicaWasRestartedRequest
+ 61, // 61: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:input_type -> tabletmanagerdata.StopReplicationAndGetStatusRequest
+ 62, // 62: tabletmanagerservice.TabletManager.PromoteReplica:input_type -> tabletmanagerdata.PromoteReplicaRequest
+ 63, // 63: tabletmanagerservice.TabletManager.Backup:input_type -> tabletmanagerdata.BackupRequest
+ 64, // 64: tabletmanagerservice.TabletManager.RestoreFromBackup:input_type -> tabletmanagerdata.RestoreFromBackupRequest
+ 65, // 65: tabletmanagerservice.TabletManager.CheckThrottler:input_type -> tabletmanagerdata.CheckThrottlerRequest
+ 66, // 66: tabletmanagerservice.TabletManager.GetThrottlerStatus:input_type -> tabletmanagerdata.GetThrottlerStatusRequest
+ 67, // 67: tabletmanagerservice.TabletManager.Ping:output_type -> tabletmanagerdata.PingResponse
+ 68, // 68: tabletmanagerservice.TabletManager.Sleep:output_type -> tabletmanagerdata.SleepResponse
+ 69, // 69: tabletmanagerservice.TabletManager.ExecuteHook:output_type -> tabletmanagerdata.ExecuteHookResponse
+ 70, // 70: tabletmanagerservice.TabletManager.GetSchema:output_type -> tabletmanagerdata.GetSchemaResponse
+ 71, // 71: tabletmanagerservice.TabletManager.GetPermissions:output_type -> tabletmanagerdata.GetPermissionsResponse
+ 72, // 72: tabletmanagerservice.TabletManager.GetGlobalStatusVars:output_type -> tabletmanagerdata.GetGlobalStatusVarsResponse
+ 73, // 73: tabletmanagerservice.TabletManager.SetReadOnly:output_type -> tabletmanagerdata.SetReadOnlyResponse
+ 74, // 74: tabletmanagerservice.TabletManager.SetReadWrite:output_type -> tabletmanagerdata.SetReadWriteResponse
+ 75, // 75: tabletmanagerservice.TabletManager.ChangeTags:output_type -> tabletmanagerdata.ChangeTagsResponse
+ 76, // 76: tabletmanagerservice.TabletManager.ChangeType:output_type -> tabletmanagerdata.ChangeTypeResponse
+ 77, // 77: tabletmanagerservice.TabletManager.RefreshState:output_type -> tabletmanagerdata.RefreshStateResponse
+ 78, // 78: tabletmanagerservice.TabletManager.RunHealthCheck:output_type -> tabletmanagerdata.RunHealthCheckResponse
+ 79, // 79: tabletmanagerservice.TabletManager.ReloadSchema:output_type -> tabletmanagerdata.ReloadSchemaResponse
+ 80, // 80: tabletmanagerservice.TabletManager.PreflightSchema:output_type -> tabletmanagerdata.PreflightSchemaResponse
+ 81, // 81: tabletmanagerservice.TabletManager.ApplySchema:output_type -> tabletmanagerdata.ApplySchemaResponse
+ 82, // 82: tabletmanagerservice.TabletManager.ResetSequences:output_type -> tabletmanagerdata.ResetSequencesResponse
+ 83, // 83: tabletmanagerservice.TabletManager.LockTables:output_type -> tabletmanagerdata.LockTablesResponse
+ 84, // 84: tabletmanagerservice.TabletManager.UnlockTables:output_type -> tabletmanagerdata.UnlockTablesResponse
+ 85, // 85: tabletmanagerservice.TabletManager.ExecuteQuery:output_type -> tabletmanagerdata.ExecuteQueryResponse
+ 86, // 86: tabletmanagerservice.TabletManager.ExecuteFetchAsDba:output_type -> tabletmanagerdata.ExecuteFetchAsDbaResponse
+ 87, // 87: tabletmanagerservice.TabletManager.ExecuteMultiFetchAsDba:output_type -> tabletmanagerdata.ExecuteMultiFetchAsDbaResponse
+ 88, // 88: tabletmanagerservice.TabletManager.ExecuteFetchAsAllPrivs:output_type -> tabletmanagerdata.ExecuteFetchAsAllPrivsResponse
+ 89, // 89: tabletmanagerservice.TabletManager.ExecuteFetchAsApp:output_type -> tabletmanagerdata.ExecuteFetchAsAppResponse
+ 90, // 90: tabletmanagerservice.TabletManager.GetUnresolvedTransactions:output_type -> tabletmanagerdata.GetUnresolvedTransactionsResponse
+ 91, // 91: tabletmanagerservice.TabletManager.ReadTransaction:output_type -> tabletmanagerdata.ReadTransactionResponse
+ 92, // 92: tabletmanagerservice.TabletManager.GetTransactionInfo:output_type -> tabletmanagerdata.GetTransactionInfoResponse
+ 93, // 93: tabletmanagerservice.TabletManager.ConcludeTransaction:output_type -> tabletmanagerdata.ConcludeTransactionResponse
+ 94, // 94: tabletmanagerservice.TabletManager.MysqlHostMetrics:output_type -> tabletmanagerdata.MysqlHostMetricsResponse
+ 95, // 95: tabletmanagerservice.TabletManager.ReplicationStatus:output_type -> tabletmanagerdata.ReplicationStatusResponse
+ 96, // 96: tabletmanagerservice.TabletManager.PrimaryStatus:output_type -> tabletmanagerdata.PrimaryStatusResponse
+ 97, // 97: tabletmanagerservice.TabletManager.PrimaryPosition:output_type -> tabletmanagerdata.PrimaryPositionResponse
+ 98, // 98: tabletmanagerservice.TabletManager.WaitForPosition:output_type -> tabletmanagerdata.WaitForPositionResponse
+ 99, // 99: tabletmanagerservice.TabletManager.StopReplication:output_type -> tabletmanagerdata.StopReplicationResponse
+ 100, // 100: tabletmanagerservice.TabletManager.StopReplicationMinimum:output_type -> tabletmanagerdata.StopReplicationMinimumResponse
+ 101, // 101: tabletmanagerservice.TabletManager.StartReplication:output_type -> tabletmanagerdata.StartReplicationResponse
+ 102, // 102: tabletmanagerservice.TabletManager.StartReplicationUntilAfter:output_type -> tabletmanagerdata.StartReplicationUntilAfterResponse
+ 103, // 103: tabletmanagerservice.TabletManager.GetReplicas:output_type -> tabletmanagerdata.GetReplicasResponse
+ 104, // 104: tabletmanagerservice.TabletManager.CreateVReplicationWorkflow:output_type -> tabletmanagerdata.CreateVReplicationWorkflowResponse
+ 105, // 105: tabletmanagerservice.TabletManager.DeleteTableData:output_type -> tabletmanagerdata.DeleteTableDataResponse
+ 106, // 106: tabletmanagerservice.TabletManager.DeleteVReplicationWorkflow:output_type -> tabletmanagerdata.DeleteVReplicationWorkflowResponse
+ 107, // 107: tabletmanagerservice.TabletManager.HasVReplicationWorkflows:output_type -> tabletmanagerdata.HasVReplicationWorkflowsResponse
+ 108, // 108: tabletmanagerservice.TabletManager.ReadVReplicationWorkflow:output_type -> tabletmanagerdata.ReadVReplicationWorkflowResponse
+ 109, // 109: tabletmanagerservice.TabletManager.ReadVReplicationWorkflows:output_type -> tabletmanagerdata.ReadVReplicationWorkflowsResponse
+ 110, // 110: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflow:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowResponse
+ 111, // 111: tabletmanagerservice.TabletManager.UpdateVReplicationWorkflows:output_type -> tabletmanagerdata.UpdateVReplicationWorkflowsResponse
+ 112, // 112: tabletmanagerservice.TabletManager.ValidateVReplicationPermissions:output_type -> tabletmanagerdata.ValidateVReplicationPermissionsResponse
+ 113, // 113: tabletmanagerservice.TabletManager.VReplicationExec:output_type -> tabletmanagerdata.VReplicationExecResponse
+ 114, // 114: tabletmanagerservice.TabletManager.VReplicationWaitForPos:output_type -> tabletmanagerdata.VReplicationWaitForPosResponse
+ 115, // 115: tabletmanagerservice.TabletManager.VDiff:output_type -> tabletmanagerdata.VDiffResponse
+ 116, // 116: tabletmanagerservice.TabletManager.ResetReplication:output_type -> tabletmanagerdata.ResetReplicationResponse
+ 117, // 117: tabletmanagerservice.TabletManager.InitPrimary:output_type -> tabletmanagerdata.InitPrimaryResponse
+ 118, // 118: tabletmanagerservice.TabletManager.PopulateReparentJournal:output_type -> tabletmanagerdata.PopulateReparentJournalResponse
+ 119, // 119: tabletmanagerservice.TabletManager.ReadReparentJournalInfo:output_type -> tabletmanagerdata.ReadReparentJournalInfoResponse
+ 120, // 120: tabletmanagerservice.TabletManager.InitReplica:output_type -> tabletmanagerdata.InitReplicaResponse
+ 121, // 121: tabletmanagerservice.TabletManager.DemotePrimary:output_type -> tabletmanagerdata.DemotePrimaryResponse
+ 122, // 122: tabletmanagerservice.TabletManager.UndoDemotePrimary:output_type -> tabletmanagerdata.UndoDemotePrimaryResponse
+ 123, // 123: tabletmanagerservice.TabletManager.ReplicaWasPromoted:output_type -> tabletmanagerdata.ReplicaWasPromotedResponse
+ 124, // 124: tabletmanagerservice.TabletManager.ResetReplicationParameters:output_type -> tabletmanagerdata.ResetReplicationParametersResponse
+ 125, // 125: tabletmanagerservice.TabletManager.FullStatus:output_type -> tabletmanagerdata.FullStatusResponse
+ 126, // 126: tabletmanagerservice.TabletManager.SetReplicationSource:output_type -> tabletmanagerdata.SetReplicationSourceResponse
+ 127, // 127: tabletmanagerservice.TabletManager.ReplicaWasRestarted:output_type -> tabletmanagerdata.ReplicaWasRestartedResponse
+ 128, // 128: tabletmanagerservice.TabletManager.StopReplicationAndGetStatus:output_type -> tabletmanagerdata.StopReplicationAndGetStatusResponse
+ 129, // 129: tabletmanagerservice.TabletManager.PromoteReplica:output_type -> tabletmanagerdata.PromoteReplicaResponse
+ 130, // 130: tabletmanagerservice.TabletManager.Backup:output_type -> tabletmanagerdata.BackupResponse
+ 131, // 131: tabletmanagerservice.TabletManager.RestoreFromBackup:output_type -> tabletmanagerdata.RestoreFromBackupResponse
+ 132, // 132: tabletmanagerservice.TabletManager.CheckThrottler:output_type -> tabletmanagerdata.CheckThrottlerResponse
+ 133, // 133: tabletmanagerservice.TabletManager.GetThrottlerStatus:output_type -> tabletmanagerdata.GetThrottlerStatusResponse
+ 67, // [67:134] is the sub-list for method output_type
+ 0, // [0:67] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
index 5899f24cd42..53acff14ea5 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice_grpc.pb.go
@@ -57,6 +57,7 @@ type TabletManagerClient interface {
ExecuteFetchAsApp(ctx context.Context, in *tabletmanagerdata.ExecuteFetchAsAppRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ExecuteFetchAsAppResponse, error)
GetUnresolvedTransactions(ctx context.Context, in *tabletmanagerdata.GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*tabletmanagerdata.GetUnresolvedTransactionsResponse, error)
ReadTransaction(ctx context.Context, in *tabletmanagerdata.ReadTransactionRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ReadTransactionResponse, error)
+ GetTransactionInfo(ctx context.Context, in *tabletmanagerdata.GetTransactionInfoRequest, opts ...grpc.CallOption) (*tabletmanagerdata.GetTransactionInfoResponse, error)
ConcludeTransaction(ctx context.Context, in *tabletmanagerdata.ConcludeTransactionRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ConcludeTransactionResponse, error)
MysqlHostMetrics(ctx context.Context, in *tabletmanagerdata.MysqlHostMetricsRequest, opts ...grpc.CallOption) (*tabletmanagerdata.MysqlHostMetricsResponse, error)
// ReplicationStatus returns the current replication status.
@@ -365,6 +366,15 @@ func (c *tabletManagerClient) ReadTransaction(ctx context.Context, in *tabletman
return out, nil
}
+func (c *tabletManagerClient) GetTransactionInfo(ctx context.Context, in *tabletmanagerdata.GetTransactionInfoRequest, opts ...grpc.CallOption) (*tabletmanagerdata.GetTransactionInfoResponse, error) {
+ out := new(tabletmanagerdata.GetTransactionInfoResponse)
+ err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/GetTransactionInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *tabletManagerClient) ConcludeTransaction(ctx context.Context, in *tabletmanagerdata.ConcludeTransactionRequest, opts ...grpc.CallOption) (*tabletmanagerdata.ConcludeTransactionResponse, error) {
out := new(tabletmanagerdata.ConcludeTransactionResponse)
err := c.cc.Invoke(ctx, "/tabletmanagerservice.TabletManager/ConcludeTransaction", in, out, opts...)
@@ -818,6 +828,7 @@ type TabletManagerServer interface {
ExecuteFetchAsApp(context.Context, *tabletmanagerdata.ExecuteFetchAsAppRequest) (*tabletmanagerdata.ExecuteFetchAsAppResponse, error)
GetUnresolvedTransactions(context.Context, *tabletmanagerdata.GetUnresolvedTransactionsRequest) (*tabletmanagerdata.GetUnresolvedTransactionsResponse, error)
ReadTransaction(context.Context, *tabletmanagerdata.ReadTransactionRequest) (*tabletmanagerdata.ReadTransactionResponse, error)
+ GetTransactionInfo(context.Context, *tabletmanagerdata.GetTransactionInfoRequest) (*tabletmanagerdata.GetTransactionInfoResponse, error)
ConcludeTransaction(context.Context, *tabletmanagerdata.ConcludeTransactionRequest) (*tabletmanagerdata.ConcludeTransactionResponse, error)
MysqlHostMetrics(context.Context, *tabletmanagerdata.MysqlHostMetricsRequest) (*tabletmanagerdata.MysqlHostMetricsResponse, error)
// ReplicationStatus returns the current replication status.
@@ -973,6 +984,9 @@ func (UnimplementedTabletManagerServer) GetUnresolvedTransactions(context.Contex
func (UnimplementedTabletManagerServer) ReadTransaction(context.Context, *tabletmanagerdata.ReadTransactionRequest) (*tabletmanagerdata.ReadTransactionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ReadTransaction not implemented")
}
+func (UnimplementedTabletManagerServer) GetTransactionInfo(context.Context, *tabletmanagerdata.GetTransactionInfoRequest) (*tabletmanagerdata.GetTransactionInfoResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetTransactionInfo not implemented")
+}
func (UnimplementedTabletManagerServer) ConcludeTransaction(context.Context, *tabletmanagerdata.ConcludeTransactionRequest) (*tabletmanagerdata.ConcludeTransactionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConcludeTransaction not implemented")
}
@@ -1559,6 +1573,24 @@ func _TabletManager_ReadTransaction_Handler(srv interface{}, ctx context.Context
return interceptor(ctx, in, info, handler)
}
+func _TabletManager_GetTransactionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(tabletmanagerdata.GetTransactionInfoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(TabletManagerServer).GetTransactionInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/tabletmanagerservice.TabletManager/GetTransactionInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(TabletManagerServer).GetTransactionInfo(ctx, req.(*tabletmanagerdata.GetTransactionInfoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _TabletManager_ConcludeTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(tabletmanagerdata.ConcludeTransactionRequest)
if err := dec(in); err != nil {
@@ -2410,6 +2442,10 @@ var TabletManager_ServiceDesc = grpc.ServiceDesc{
MethodName: "ReadTransaction",
Handler: _TabletManager_ReadTransaction_Handler,
},
+ {
+ MethodName: "GetTransactionInfo",
+ Handler: _TabletManager_GetTransactionInfo_Handler,
+ },
{
MethodName: "ConcludeTransaction",
Handler: _TabletManager_ConcludeTransaction_Handler,
diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go
index 038c0fc8c58..5d4ab9dbe66 100644
--- a/go/vt/proto/vtctldata/vtctldata.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata.pb.go
@@ -7847,6 +7847,187 @@ func (x *GetUnresolvedTransactionsResponse) GetTransactions() []*query.Transacti
return nil
}
+type GetTransactionInfoRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Dtid string `protobuf:"bytes,1,opt,name=dtid,proto3" json:"dtid,omitempty"`
+}
+
+func (x *GetTransactionInfoRequest) Reset() {
+ *x = GetTransactionInfoRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_vtctldata_proto_msgTypes[119]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetTransactionInfoRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetTransactionInfoRequest) ProtoMessage() {}
+
+func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_vtctldata_proto_msgTypes[119]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetTransactionInfoRequest.ProtoReflect.Descriptor instead.
+func (*GetTransactionInfoRequest) Descriptor() ([]byte, []int) {
+ return file_vtctldata_proto_rawDescGZIP(), []int{119}
+}
+
+func (x *GetTransactionInfoRequest) GetDtid() string {
+ if x != nil {
+ return x.Dtid
+ }
+ return ""
+}
+
+type ShardTransactionState struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Shard string `protobuf:"bytes,1,opt,name=shard,proto3" json:"shard,omitempty"`
+ State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
+ Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
+ TimeCreated int64 `protobuf:"varint,4,opt,name=time_created,json=timeCreated,proto3" json:"time_created,omitempty"`
+ Statements []string `protobuf:"bytes,5,rep,name=statements,proto3" json:"statements,omitempty"`
+}
+
+func (x *ShardTransactionState) Reset() {
+ *x = ShardTransactionState{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_vtctldata_proto_msgTypes[120]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShardTransactionState) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShardTransactionState) ProtoMessage() {}
+
+func (x *ShardTransactionState) ProtoReflect() protoreflect.Message {
+ mi := &file_vtctldata_proto_msgTypes[120]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShardTransactionState.ProtoReflect.Descriptor instead.
+func (*ShardTransactionState) Descriptor() ([]byte, []int) {
+ return file_vtctldata_proto_rawDescGZIP(), []int{120}
+}
+
+func (x *ShardTransactionState) GetShard() string {
+ if x != nil {
+ return x.Shard
+ }
+ return ""
+}
+
+func (x *ShardTransactionState) GetState() string {
+ if x != nil {
+ return x.State
+ }
+ return ""
+}
+
+func (x *ShardTransactionState) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *ShardTransactionState) GetTimeCreated() int64 {
+ if x != nil {
+ return x.TimeCreated
+ }
+ return 0
+}
+
+func (x *ShardTransactionState) GetStatements() []string {
+ if x != nil {
+ return x.Statements
+ }
+ return nil
+}
+
+type GetTransactionInfoResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Metadata *query.TransactionMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ ShardStates []*ShardTransactionState `protobuf:"bytes,2,rep,name=shard_states,json=shardStates,proto3" json:"shard_states,omitempty"`
+}
+
+func (x *GetTransactionInfoResponse) Reset() {
+ *x = GetTransactionInfoResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_vtctldata_proto_msgTypes[121]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetTransactionInfoResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetTransactionInfoResponse) ProtoMessage() {}
+
+func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_vtctldata_proto_msgTypes[121]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetTransactionInfoResponse.ProtoReflect.Descriptor instead.
+func (*GetTransactionInfoResponse) Descriptor() ([]byte, []int) {
+ return file_vtctldata_proto_rawDescGZIP(), []int{121}
+}
+
+func (x *GetTransactionInfoResponse) GetMetadata() *query.TransactionMetadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *GetTransactionInfoResponse) GetShardStates() []*ShardTransactionState {
+ if x != nil {
+ return x.ShardStates
+ }
+ return nil
+}
+
type ConcludeTransactionRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -7859,7 +8040,7 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[119]
+ mi := &file_vtctldata_proto_msgTypes[122]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7872,7 +8053,7 @@ func (x *ConcludeTransactionRequest) String() string {
func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[119]
+ mi := &file_vtctldata_proto_msgTypes[122]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7885,7 +8066,7 @@ func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConcludeTransactionRequest.ProtoReflect.Descriptor instead.
func (*ConcludeTransactionRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{119}
+ return file_vtctldata_proto_rawDescGZIP(), []int{122}
}
func (x *ConcludeTransactionRequest) GetDtid() string {
@@ -7911,7 +8092,7 @@ type ConcludeTransactionResponse struct {
func (x *ConcludeTransactionResponse) Reset() {
*x = ConcludeTransactionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[120]
+ mi := &file_vtctldata_proto_msgTypes[123]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7924,7 +8105,7 @@ func (x *ConcludeTransactionResponse) String() string {
func (*ConcludeTransactionResponse) ProtoMessage() {}
func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[120]
+ mi := &file_vtctldata_proto_msgTypes[123]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7937,7 +8118,7 @@ func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConcludeTransactionResponse.ProtoReflect.Descriptor instead.
func (*ConcludeTransactionResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{120}
+ return file_vtctldata_proto_rawDescGZIP(), []int{123}
}
type GetVSchemaRequest struct {
@@ -7951,7 +8132,7 @@ type GetVSchemaRequest struct {
func (x *GetVSchemaRequest) Reset() {
*x = GetVSchemaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[121]
+ mi := &file_vtctldata_proto_msgTypes[124]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7964,7 +8145,7 @@ func (x *GetVSchemaRequest) String() string {
func (*GetVSchemaRequest) ProtoMessage() {}
func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[121]
+ mi := &file_vtctldata_proto_msgTypes[124]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7977,7 +8158,7 @@ func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVSchemaRequest.ProtoReflect.Descriptor instead.
func (*GetVSchemaRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{121}
+ return file_vtctldata_proto_rawDescGZIP(), []int{124}
}
func (x *GetVSchemaRequest) GetKeyspace() string {
@@ -7998,7 +8179,7 @@ type GetVersionRequest struct {
func (x *GetVersionRequest) Reset() {
*x = GetVersionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[122]
+ mi := &file_vtctldata_proto_msgTypes[125]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8011,7 +8192,7 @@ func (x *GetVersionRequest) String() string {
func (*GetVersionRequest) ProtoMessage() {}
func (x *GetVersionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[122]
+ mi := &file_vtctldata_proto_msgTypes[125]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8024,7 +8205,7 @@ func (x *GetVersionRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVersionRequest.ProtoReflect.Descriptor instead.
func (*GetVersionRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{122}
+ return file_vtctldata_proto_rawDescGZIP(), []int{125}
}
func (x *GetVersionRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -8045,7 +8226,7 @@ type GetVersionResponse struct {
func (x *GetVersionResponse) Reset() {
*x = GetVersionResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[123]
+ mi := &file_vtctldata_proto_msgTypes[126]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8058,7 +8239,7 @@ func (x *GetVersionResponse) String() string {
func (*GetVersionResponse) ProtoMessage() {}
func (x *GetVersionResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[123]
+ mi := &file_vtctldata_proto_msgTypes[126]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8071,7 +8252,7 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead.
func (*GetVersionResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{123}
+ return file_vtctldata_proto_rawDescGZIP(), []int{126}
}
func (x *GetVersionResponse) GetVersion() string {
@@ -8092,7 +8273,7 @@ type GetVSchemaResponse struct {
func (x *GetVSchemaResponse) Reset() {
*x = GetVSchemaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[124]
+ mi := &file_vtctldata_proto_msgTypes[127]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8105,7 +8286,7 @@ func (x *GetVSchemaResponse) String() string {
func (*GetVSchemaResponse) ProtoMessage() {}
func (x *GetVSchemaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[124]
+ mi := &file_vtctldata_proto_msgTypes[127]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8118,7 +8299,7 @@ func (x *GetVSchemaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVSchemaResponse.ProtoReflect.Descriptor instead.
func (*GetVSchemaResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{124}
+ return file_vtctldata_proto_rawDescGZIP(), []int{127}
}
func (x *GetVSchemaResponse) GetVSchema() *vschema.Keyspace {
@@ -8145,7 +8326,7 @@ type GetWorkflowsRequest struct {
func (x *GetWorkflowsRequest) Reset() {
*x = GetWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[125]
+ mi := &file_vtctldata_proto_msgTypes[128]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8158,7 +8339,7 @@ func (x *GetWorkflowsRequest) String() string {
func (*GetWorkflowsRequest) ProtoMessage() {}
func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[125]
+ mi := &file_vtctldata_proto_msgTypes[128]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8171,7 +8352,7 @@ func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*GetWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{125}
+ return file_vtctldata_proto_rawDescGZIP(), []int{128}
}
func (x *GetWorkflowsRequest) GetKeyspace() string {
@@ -8227,7 +8408,7 @@ type GetWorkflowsResponse struct {
func (x *GetWorkflowsResponse) Reset() {
*x = GetWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[126]
+ mi := &file_vtctldata_proto_msgTypes[129]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8240,7 +8421,7 @@ func (x *GetWorkflowsResponse) String() string {
func (*GetWorkflowsResponse) ProtoMessage() {}
func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[126]
+ mi := &file_vtctldata_proto_msgTypes[129]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8253,7 +8434,7 @@ func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*GetWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{126}
+ return file_vtctldata_proto_rawDescGZIP(), []int{129}
}
func (x *GetWorkflowsResponse) GetWorkflows() []*Workflow {
@@ -8278,7 +8459,7 @@ type InitShardPrimaryRequest struct {
func (x *InitShardPrimaryRequest) Reset() {
*x = InitShardPrimaryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[127]
+ mi := &file_vtctldata_proto_msgTypes[130]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8291,7 +8472,7 @@ func (x *InitShardPrimaryRequest) String() string {
func (*InitShardPrimaryRequest) ProtoMessage() {}
func (x *InitShardPrimaryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[127]
+ mi := &file_vtctldata_proto_msgTypes[130]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8304,7 +8485,7 @@ func (x *InitShardPrimaryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitShardPrimaryRequest.ProtoReflect.Descriptor instead.
func (*InitShardPrimaryRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{127}
+ return file_vtctldata_proto_rawDescGZIP(), []int{130}
}
func (x *InitShardPrimaryRequest) GetKeyspace() string {
@@ -8353,7 +8534,7 @@ type InitShardPrimaryResponse struct {
func (x *InitShardPrimaryResponse) Reset() {
*x = InitShardPrimaryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[128]
+ mi := &file_vtctldata_proto_msgTypes[131]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8366,7 +8547,7 @@ func (x *InitShardPrimaryResponse) String() string {
func (*InitShardPrimaryResponse) ProtoMessage() {}
func (x *InitShardPrimaryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[128]
+ mi := &file_vtctldata_proto_msgTypes[131]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8379,7 +8560,7 @@ func (x *InitShardPrimaryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use InitShardPrimaryResponse.ProtoReflect.Descriptor instead.
func (*InitShardPrimaryResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{128}
+ return file_vtctldata_proto_rawDescGZIP(), []int{131}
}
func (x *InitShardPrimaryResponse) GetEvents() []*logutil.Event {
@@ -8401,7 +8582,7 @@ type LaunchSchemaMigrationRequest struct {
func (x *LaunchSchemaMigrationRequest) Reset() {
*x = LaunchSchemaMigrationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[129]
+ mi := &file_vtctldata_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8414,7 +8595,7 @@ func (x *LaunchSchemaMigrationRequest) String() string {
func (*LaunchSchemaMigrationRequest) ProtoMessage() {}
func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[129]
+ mi := &file_vtctldata_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8427,7 +8608,7 @@ func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LaunchSchemaMigrationRequest.ProtoReflect.Descriptor instead.
func (*LaunchSchemaMigrationRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{129}
+ return file_vtctldata_proto_rawDescGZIP(), []int{132}
}
func (x *LaunchSchemaMigrationRequest) GetKeyspace() string {
@@ -8455,7 +8636,7 @@ type LaunchSchemaMigrationResponse struct {
func (x *LaunchSchemaMigrationResponse) Reset() {
*x = LaunchSchemaMigrationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[130]
+ mi := &file_vtctldata_proto_msgTypes[133]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8468,7 +8649,7 @@ func (x *LaunchSchemaMigrationResponse) String() string {
func (*LaunchSchemaMigrationResponse) ProtoMessage() {}
func (x *LaunchSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[130]
+ mi := &file_vtctldata_proto_msgTypes[133]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8481,7 +8662,7 @@ func (x *LaunchSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use LaunchSchemaMigrationResponse.ProtoReflect.Descriptor instead.
func (*LaunchSchemaMigrationResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{130}
+ return file_vtctldata_proto_rawDescGZIP(), []int{133}
}
func (x *LaunchSchemaMigrationResponse) GetRowsAffectedByShard() map[string]uint64 {
@@ -8508,7 +8689,7 @@ type LookupVindexCreateRequest struct {
func (x *LookupVindexCreateRequest) Reset() {
*x = LookupVindexCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[131]
+ mi := &file_vtctldata_proto_msgTypes[134]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8521,7 +8702,7 @@ func (x *LookupVindexCreateRequest) String() string {
func (*LookupVindexCreateRequest) ProtoMessage() {}
func (x *LookupVindexCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[131]
+ mi := &file_vtctldata_proto_msgTypes[134]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8534,7 +8715,7 @@ func (x *LookupVindexCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupVindexCreateRequest.ProtoReflect.Descriptor instead.
func (*LookupVindexCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{131}
+ return file_vtctldata_proto_rawDescGZIP(), []int{134}
}
func (x *LookupVindexCreateRequest) GetKeyspace() string {
@@ -8595,7 +8776,7 @@ type LookupVindexCreateResponse struct {
func (x *LookupVindexCreateResponse) Reset() {
*x = LookupVindexCreateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[132]
+ mi := &file_vtctldata_proto_msgTypes[135]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8608,7 +8789,7 @@ func (x *LookupVindexCreateResponse) String() string {
func (*LookupVindexCreateResponse) ProtoMessage() {}
func (x *LookupVindexCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[132]
+ mi := &file_vtctldata_proto_msgTypes[135]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8621,7 +8802,7 @@ func (x *LookupVindexCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupVindexCreateResponse.ProtoReflect.Descriptor instead.
func (*LookupVindexCreateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{132}
+ return file_vtctldata_proto_rawDescGZIP(), []int{135}
}
type LookupVindexExternalizeRequest struct {
@@ -8640,7 +8821,7 @@ type LookupVindexExternalizeRequest struct {
func (x *LookupVindexExternalizeRequest) Reset() {
*x = LookupVindexExternalizeRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[133]
+ mi := &file_vtctldata_proto_msgTypes[136]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8653,7 +8834,7 @@ func (x *LookupVindexExternalizeRequest) String() string {
func (*LookupVindexExternalizeRequest) ProtoMessage() {}
func (x *LookupVindexExternalizeRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[133]
+ mi := &file_vtctldata_proto_msgTypes[136]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8666,7 +8847,7 @@ func (x *LookupVindexExternalizeRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupVindexExternalizeRequest.ProtoReflect.Descriptor instead.
func (*LookupVindexExternalizeRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{133}
+ return file_vtctldata_proto_rawDescGZIP(), []int{136}
}
func (x *LookupVindexExternalizeRequest) GetKeyspace() string {
@@ -8702,7 +8883,7 @@ type LookupVindexExternalizeResponse struct {
func (x *LookupVindexExternalizeResponse) Reset() {
*x = LookupVindexExternalizeResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[134]
+ mi := &file_vtctldata_proto_msgTypes[137]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8715,7 +8896,7 @@ func (x *LookupVindexExternalizeResponse) String() string {
func (*LookupVindexExternalizeResponse) ProtoMessage() {}
func (x *LookupVindexExternalizeResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[134]
+ mi := &file_vtctldata_proto_msgTypes[137]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8728,7 +8909,7 @@ func (x *LookupVindexExternalizeResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use LookupVindexExternalizeResponse.ProtoReflect.Descriptor instead.
func (*LookupVindexExternalizeResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{134}
+ return file_vtctldata_proto_rawDescGZIP(), []int{137}
}
func (x *LookupVindexExternalizeResponse) GetWorkflowDeleted() bool {
@@ -8749,7 +8930,7 @@ type MaterializeCreateRequest struct {
func (x *MaterializeCreateRequest) Reset() {
*x = MaterializeCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[135]
+ mi := &file_vtctldata_proto_msgTypes[138]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8762,7 +8943,7 @@ func (x *MaterializeCreateRequest) String() string {
func (*MaterializeCreateRequest) ProtoMessage() {}
func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[135]
+ mi := &file_vtctldata_proto_msgTypes[138]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8775,7 +8956,7 @@ func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MaterializeCreateRequest.ProtoReflect.Descriptor instead.
func (*MaterializeCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{135}
+ return file_vtctldata_proto_rawDescGZIP(), []int{138}
}
func (x *MaterializeCreateRequest) GetSettings() *MaterializeSettings {
@@ -8794,7 +8975,7 @@ type MaterializeCreateResponse struct {
func (x *MaterializeCreateResponse) Reset() {
*x = MaterializeCreateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[136]
+ mi := &file_vtctldata_proto_msgTypes[139]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8807,7 +8988,7 @@ func (x *MaterializeCreateResponse) String() string {
func (*MaterializeCreateResponse) ProtoMessage() {}
func (x *MaterializeCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[136]
+ mi := &file_vtctldata_proto_msgTypes[139]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8820,7 +9001,7 @@ func (x *MaterializeCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MaterializeCreateResponse.ProtoReflect.Descriptor instead.
func (*MaterializeCreateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{136}
+ return file_vtctldata_proto_rawDescGZIP(), []int{139}
}
type MigrateCreateRequest struct {
@@ -8859,7 +9040,7 @@ type MigrateCreateRequest struct {
func (x *MigrateCreateRequest) Reset() {
*x = MigrateCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[137]
+ mi := &file_vtctldata_proto_msgTypes[140]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -8872,7 +9053,7 @@ func (x *MigrateCreateRequest) String() string {
func (*MigrateCreateRequest) ProtoMessage() {}
func (x *MigrateCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[137]
+ mi := &file_vtctldata_proto_msgTypes[140]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -8885,7 +9066,7 @@ func (x *MigrateCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MigrateCreateRequest.ProtoReflect.Descriptor instead.
func (*MigrateCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{137}
+ return file_vtctldata_proto_rawDescGZIP(), []int{140}
}
func (x *MigrateCreateRequest) GetWorkflow() string {
@@ -9023,7 +9204,7 @@ type MigrateCompleteRequest struct {
func (x *MigrateCompleteRequest) Reset() {
*x = MigrateCompleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[138]
+ mi := &file_vtctldata_proto_msgTypes[141]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9036,7 +9217,7 @@ func (x *MigrateCompleteRequest) String() string {
func (*MigrateCompleteRequest) ProtoMessage() {}
func (x *MigrateCompleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[138]
+ mi := &file_vtctldata_proto_msgTypes[141]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9049,7 +9230,7 @@ func (x *MigrateCompleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MigrateCompleteRequest.ProtoReflect.Descriptor instead.
func (*MigrateCompleteRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{138}
+ return file_vtctldata_proto_rawDescGZIP(), []int{141}
}
func (x *MigrateCompleteRequest) GetWorkflow() string {
@@ -9106,7 +9287,7 @@ type MigrateCompleteResponse struct {
func (x *MigrateCompleteResponse) Reset() {
*x = MigrateCompleteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[139]
+ mi := &file_vtctldata_proto_msgTypes[142]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9119,7 +9300,7 @@ func (x *MigrateCompleteResponse) String() string {
func (*MigrateCompleteResponse) ProtoMessage() {}
func (x *MigrateCompleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[139]
+ mi := &file_vtctldata_proto_msgTypes[142]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9132,7 +9313,7 @@ func (x *MigrateCompleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MigrateCompleteResponse.ProtoReflect.Descriptor instead.
func (*MigrateCompleteResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{139}
+ return file_vtctldata_proto_rawDescGZIP(), []int{142}
}
func (x *MigrateCompleteResponse) GetSummary() string {
@@ -9163,7 +9344,7 @@ type MountRegisterRequest struct {
func (x *MountRegisterRequest) Reset() {
*x = MountRegisterRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[140]
+ mi := &file_vtctldata_proto_msgTypes[143]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9176,7 +9357,7 @@ func (x *MountRegisterRequest) String() string {
func (*MountRegisterRequest) ProtoMessage() {}
func (x *MountRegisterRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[140]
+ mi := &file_vtctldata_proto_msgTypes[143]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9189,7 +9370,7 @@ func (x *MountRegisterRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountRegisterRequest.ProtoReflect.Descriptor instead.
func (*MountRegisterRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{140}
+ return file_vtctldata_proto_rawDescGZIP(), []int{143}
}
func (x *MountRegisterRequest) GetTopoType() string {
@@ -9229,7 +9410,7 @@ type MountRegisterResponse struct {
func (x *MountRegisterResponse) Reset() {
*x = MountRegisterResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[141]
+ mi := &file_vtctldata_proto_msgTypes[144]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9242,7 +9423,7 @@ func (x *MountRegisterResponse) String() string {
func (*MountRegisterResponse) ProtoMessage() {}
func (x *MountRegisterResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[141]
+ mi := &file_vtctldata_proto_msgTypes[144]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9255,7 +9436,7 @@ func (x *MountRegisterResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountRegisterResponse.ProtoReflect.Descriptor instead.
func (*MountRegisterResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{141}
+ return file_vtctldata_proto_rawDescGZIP(), []int{144}
}
type MountUnregisterRequest struct {
@@ -9269,7 +9450,7 @@ type MountUnregisterRequest struct {
func (x *MountUnregisterRequest) Reset() {
*x = MountUnregisterRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[142]
+ mi := &file_vtctldata_proto_msgTypes[145]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9282,7 +9463,7 @@ func (x *MountUnregisterRequest) String() string {
func (*MountUnregisterRequest) ProtoMessage() {}
func (x *MountUnregisterRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[142]
+ mi := &file_vtctldata_proto_msgTypes[145]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9295,7 +9476,7 @@ func (x *MountUnregisterRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountUnregisterRequest.ProtoReflect.Descriptor instead.
func (*MountUnregisterRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{142}
+ return file_vtctldata_proto_rawDescGZIP(), []int{145}
}
func (x *MountUnregisterRequest) GetName() string {
@@ -9314,7 +9495,7 @@ type MountUnregisterResponse struct {
func (x *MountUnregisterResponse) Reset() {
*x = MountUnregisterResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[143]
+ mi := &file_vtctldata_proto_msgTypes[146]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9327,7 +9508,7 @@ func (x *MountUnregisterResponse) String() string {
func (*MountUnregisterResponse) ProtoMessage() {}
func (x *MountUnregisterResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[143]
+ mi := &file_vtctldata_proto_msgTypes[146]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9340,7 +9521,7 @@ func (x *MountUnregisterResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountUnregisterResponse.ProtoReflect.Descriptor instead.
func (*MountUnregisterResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{143}
+ return file_vtctldata_proto_rawDescGZIP(), []int{146}
}
type MountShowRequest struct {
@@ -9354,7 +9535,7 @@ type MountShowRequest struct {
func (x *MountShowRequest) Reset() {
*x = MountShowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[144]
+ mi := &file_vtctldata_proto_msgTypes[147]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9367,7 +9548,7 @@ func (x *MountShowRequest) String() string {
func (*MountShowRequest) ProtoMessage() {}
func (x *MountShowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[144]
+ mi := &file_vtctldata_proto_msgTypes[147]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9380,7 +9561,7 @@ func (x *MountShowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountShowRequest.ProtoReflect.Descriptor instead.
func (*MountShowRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{144}
+ return file_vtctldata_proto_rawDescGZIP(), []int{147}
}
func (x *MountShowRequest) GetName() string {
@@ -9404,7 +9585,7 @@ type MountShowResponse struct {
func (x *MountShowResponse) Reset() {
*x = MountShowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[145]
+ mi := &file_vtctldata_proto_msgTypes[148]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9417,7 +9598,7 @@ func (x *MountShowResponse) String() string {
func (*MountShowResponse) ProtoMessage() {}
func (x *MountShowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[145]
+ mi := &file_vtctldata_proto_msgTypes[148]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9430,7 +9611,7 @@ func (x *MountShowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountShowResponse.ProtoReflect.Descriptor instead.
func (*MountShowResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{145}
+ return file_vtctldata_proto_rawDescGZIP(), []int{148}
}
func (x *MountShowResponse) GetTopoType() string {
@@ -9470,7 +9651,7 @@ type MountListRequest struct {
func (x *MountListRequest) Reset() {
*x = MountListRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[146]
+ mi := &file_vtctldata_proto_msgTypes[149]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9483,7 +9664,7 @@ func (x *MountListRequest) String() string {
func (*MountListRequest) ProtoMessage() {}
func (x *MountListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[146]
+ mi := &file_vtctldata_proto_msgTypes[149]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9496,7 +9677,7 @@ func (x *MountListRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountListRequest.ProtoReflect.Descriptor instead.
func (*MountListRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{146}
+ return file_vtctldata_proto_rawDescGZIP(), []int{149}
}
type MountListResponse struct {
@@ -9510,7 +9691,7 @@ type MountListResponse struct {
func (x *MountListResponse) Reset() {
*x = MountListResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[147]
+ mi := &file_vtctldata_proto_msgTypes[150]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9523,7 +9704,7 @@ func (x *MountListResponse) String() string {
func (*MountListResponse) ProtoMessage() {}
func (x *MountListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[147]
+ mi := &file_vtctldata_proto_msgTypes[150]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9536,7 +9717,7 @@ func (x *MountListResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MountListResponse.ProtoReflect.Descriptor instead.
func (*MountListResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{147}
+ return file_vtctldata_proto_rawDescGZIP(), []int{150}
}
func (x *MountListResponse) GetNames() []string {
@@ -9587,7 +9768,7 @@ type MoveTablesCreateRequest struct {
func (x *MoveTablesCreateRequest) Reset() {
*x = MoveTablesCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[148]
+ mi := &file_vtctldata_proto_msgTypes[151]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9600,7 +9781,7 @@ func (x *MoveTablesCreateRequest) String() string {
func (*MoveTablesCreateRequest) ProtoMessage() {}
func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[148]
+ mi := &file_vtctldata_proto_msgTypes[151]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9613,7 +9794,7 @@ func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCreateRequest.ProtoReflect.Descriptor instead.
func (*MoveTablesCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{148}
+ return file_vtctldata_proto_rawDescGZIP(), []int{151}
}
func (x *MoveTablesCreateRequest) GetWorkflow() string {
@@ -9768,7 +9949,7 @@ type MoveTablesCreateResponse struct {
func (x *MoveTablesCreateResponse) Reset() {
*x = MoveTablesCreateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[149]
+ mi := &file_vtctldata_proto_msgTypes[152]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9781,7 +9962,7 @@ func (x *MoveTablesCreateResponse) String() string {
func (*MoveTablesCreateResponse) ProtoMessage() {}
func (x *MoveTablesCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[149]
+ mi := &file_vtctldata_proto_msgTypes[152]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9794,7 +9975,7 @@ func (x *MoveTablesCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCreateResponse.ProtoReflect.Descriptor instead.
func (*MoveTablesCreateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{149}
+ return file_vtctldata_proto_rawDescGZIP(), []int{152}
}
func (x *MoveTablesCreateResponse) GetSummary() string {
@@ -9828,7 +10009,7 @@ type MoveTablesCompleteRequest struct {
func (x *MoveTablesCompleteRequest) Reset() {
*x = MoveTablesCompleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[150]
+ mi := &file_vtctldata_proto_msgTypes[153]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9841,7 +10022,7 @@ func (x *MoveTablesCompleteRequest) String() string {
func (*MoveTablesCompleteRequest) ProtoMessage() {}
func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[150]
+ mi := &file_vtctldata_proto_msgTypes[153]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9854,7 +10035,7 @@ func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCompleteRequest.ProtoReflect.Descriptor instead.
func (*MoveTablesCompleteRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{150}
+ return file_vtctldata_proto_rawDescGZIP(), []int{153}
}
func (x *MoveTablesCompleteRequest) GetWorkflow() string {
@@ -9918,7 +10099,7 @@ type MoveTablesCompleteResponse struct {
func (x *MoveTablesCompleteResponse) Reset() {
*x = MoveTablesCompleteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[151]
+ mi := &file_vtctldata_proto_msgTypes[154]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9931,7 +10112,7 @@ func (x *MoveTablesCompleteResponse) String() string {
func (*MoveTablesCompleteResponse) ProtoMessage() {}
func (x *MoveTablesCompleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[151]
+ mi := &file_vtctldata_proto_msgTypes[154]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9944,7 +10125,7 @@ func (x *MoveTablesCompleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCompleteResponse.ProtoReflect.Descriptor instead.
func (*MoveTablesCompleteResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{151}
+ return file_vtctldata_proto_rawDescGZIP(), []int{154}
}
func (x *MoveTablesCompleteResponse) GetSummary() string {
@@ -9972,7 +10153,7 @@ type PingTabletRequest struct {
func (x *PingTabletRequest) Reset() {
*x = PingTabletRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[152]
+ mi := &file_vtctldata_proto_msgTypes[155]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -9985,7 +10166,7 @@ func (x *PingTabletRequest) String() string {
func (*PingTabletRequest) ProtoMessage() {}
func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[152]
+ mi := &file_vtctldata_proto_msgTypes[155]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -9998,7 +10179,7 @@ func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PingTabletRequest.ProtoReflect.Descriptor instead.
func (*PingTabletRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{152}
+ return file_vtctldata_proto_rawDescGZIP(), []int{155}
}
func (x *PingTabletRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -10017,7 +10198,7 @@ type PingTabletResponse struct {
func (x *PingTabletResponse) Reset() {
*x = PingTabletResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[153]
+ mi := &file_vtctldata_proto_msgTypes[156]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10030,7 +10211,7 @@ func (x *PingTabletResponse) String() string {
func (*PingTabletResponse) ProtoMessage() {}
func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[153]
+ mi := &file_vtctldata_proto_msgTypes[156]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10043,7 +10224,7 @@ func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PingTabletResponse.ProtoReflect.Descriptor instead.
func (*PingTabletResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{153}
+ return file_vtctldata_proto_rawDescGZIP(), []int{156}
}
type PlannedReparentShardRequest struct {
@@ -10087,7 +10268,7 @@ type PlannedReparentShardRequest struct {
func (x *PlannedReparentShardRequest) Reset() {
*x = PlannedReparentShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[154]
+ mi := &file_vtctldata_proto_msgTypes[157]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10100,7 +10281,7 @@ func (x *PlannedReparentShardRequest) String() string {
func (*PlannedReparentShardRequest) ProtoMessage() {}
func (x *PlannedReparentShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[154]
+ mi := &file_vtctldata_proto_msgTypes[157]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10113,7 +10294,7 @@ func (x *PlannedReparentShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlannedReparentShardRequest.ProtoReflect.Descriptor instead.
func (*PlannedReparentShardRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{154}
+ return file_vtctldata_proto_rawDescGZIP(), []int{157}
}
func (x *PlannedReparentShardRequest) GetKeyspace() string {
@@ -10192,7 +10373,7 @@ type PlannedReparentShardResponse struct {
func (x *PlannedReparentShardResponse) Reset() {
*x = PlannedReparentShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[155]
+ mi := &file_vtctldata_proto_msgTypes[158]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10205,7 +10386,7 @@ func (x *PlannedReparentShardResponse) String() string {
func (*PlannedReparentShardResponse) ProtoMessage() {}
func (x *PlannedReparentShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[155]
+ mi := &file_vtctldata_proto_msgTypes[158]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10218,7 +10399,7 @@ func (x *PlannedReparentShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlannedReparentShardResponse.ProtoReflect.Descriptor instead.
func (*PlannedReparentShardResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{155}
+ return file_vtctldata_proto_rawDescGZIP(), []int{158}
}
func (x *PlannedReparentShardResponse) GetKeyspace() string {
@@ -10264,7 +10445,7 @@ type RebuildKeyspaceGraphRequest struct {
func (x *RebuildKeyspaceGraphRequest) Reset() {
*x = RebuildKeyspaceGraphRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[156]
+ mi := &file_vtctldata_proto_msgTypes[159]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10277,7 +10458,7 @@ func (x *RebuildKeyspaceGraphRequest) String() string {
func (*RebuildKeyspaceGraphRequest) ProtoMessage() {}
func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[156]
+ mi := &file_vtctldata_proto_msgTypes[159]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10290,7 +10471,7 @@ func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildKeyspaceGraphRequest.ProtoReflect.Descriptor instead.
func (*RebuildKeyspaceGraphRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{156}
+ return file_vtctldata_proto_rawDescGZIP(), []int{159}
}
func (x *RebuildKeyspaceGraphRequest) GetKeyspace() string {
@@ -10323,7 +10504,7 @@ type RebuildKeyspaceGraphResponse struct {
func (x *RebuildKeyspaceGraphResponse) Reset() {
*x = RebuildKeyspaceGraphResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[157]
+ mi := &file_vtctldata_proto_msgTypes[160]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10336,7 +10517,7 @@ func (x *RebuildKeyspaceGraphResponse) String() string {
func (*RebuildKeyspaceGraphResponse) ProtoMessage() {}
func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[157]
+ mi := &file_vtctldata_proto_msgTypes[160]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10349,7 +10530,7 @@ func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildKeyspaceGraphResponse.ProtoReflect.Descriptor instead.
func (*RebuildKeyspaceGraphResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{157}
+ return file_vtctldata_proto_rawDescGZIP(), []int{160}
}
type RebuildVSchemaGraphRequest struct {
@@ -10365,7 +10546,7 @@ type RebuildVSchemaGraphRequest struct {
func (x *RebuildVSchemaGraphRequest) Reset() {
*x = RebuildVSchemaGraphRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[158]
+ mi := &file_vtctldata_proto_msgTypes[161]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10378,7 +10559,7 @@ func (x *RebuildVSchemaGraphRequest) String() string {
func (*RebuildVSchemaGraphRequest) ProtoMessage() {}
func (x *RebuildVSchemaGraphRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[158]
+ mi := &file_vtctldata_proto_msgTypes[161]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10391,7 +10572,7 @@ func (x *RebuildVSchemaGraphRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildVSchemaGraphRequest.ProtoReflect.Descriptor instead.
func (*RebuildVSchemaGraphRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{158}
+ return file_vtctldata_proto_rawDescGZIP(), []int{161}
}
func (x *RebuildVSchemaGraphRequest) GetCells() []string {
@@ -10410,7 +10591,7 @@ type RebuildVSchemaGraphResponse struct {
func (x *RebuildVSchemaGraphResponse) Reset() {
*x = RebuildVSchemaGraphResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[159]
+ mi := &file_vtctldata_proto_msgTypes[162]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10423,7 +10604,7 @@ func (x *RebuildVSchemaGraphResponse) String() string {
func (*RebuildVSchemaGraphResponse) ProtoMessage() {}
func (x *RebuildVSchemaGraphResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[159]
+ mi := &file_vtctldata_proto_msgTypes[162]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10436,7 +10617,7 @@ func (x *RebuildVSchemaGraphResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildVSchemaGraphResponse.ProtoReflect.Descriptor instead.
func (*RebuildVSchemaGraphResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{159}
+ return file_vtctldata_proto_rawDescGZIP(), []int{162}
}
type RefreshStateRequest struct {
@@ -10450,7 +10631,7 @@ type RefreshStateRequest struct {
func (x *RefreshStateRequest) Reset() {
*x = RefreshStateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[160]
+ mi := &file_vtctldata_proto_msgTypes[163]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10463,7 +10644,7 @@ func (x *RefreshStateRequest) String() string {
func (*RefreshStateRequest) ProtoMessage() {}
func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[160]
+ mi := &file_vtctldata_proto_msgTypes[163]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10476,7 +10657,7 @@ func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateRequest.ProtoReflect.Descriptor instead.
func (*RefreshStateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{160}
+ return file_vtctldata_proto_rawDescGZIP(), []int{163}
}
func (x *RefreshStateRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -10495,7 +10676,7 @@ type RefreshStateResponse struct {
func (x *RefreshStateResponse) Reset() {
*x = RefreshStateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[161]
+ mi := &file_vtctldata_proto_msgTypes[164]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10508,7 +10689,7 @@ func (x *RefreshStateResponse) String() string {
func (*RefreshStateResponse) ProtoMessage() {}
func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[161]
+ mi := &file_vtctldata_proto_msgTypes[164]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10521,7 +10702,7 @@ func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateResponse.ProtoReflect.Descriptor instead.
func (*RefreshStateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{161}
+ return file_vtctldata_proto_rawDescGZIP(), []int{164}
}
type RefreshStateByShardRequest struct {
@@ -10537,7 +10718,7 @@ type RefreshStateByShardRequest struct {
func (x *RefreshStateByShardRequest) Reset() {
*x = RefreshStateByShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[162]
+ mi := &file_vtctldata_proto_msgTypes[165]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10550,7 +10731,7 @@ func (x *RefreshStateByShardRequest) String() string {
func (*RefreshStateByShardRequest) ProtoMessage() {}
func (x *RefreshStateByShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[162]
+ mi := &file_vtctldata_proto_msgTypes[165]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10563,7 +10744,7 @@ func (x *RefreshStateByShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateByShardRequest.ProtoReflect.Descriptor instead.
func (*RefreshStateByShardRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{162}
+ return file_vtctldata_proto_rawDescGZIP(), []int{165}
}
func (x *RefreshStateByShardRequest) GetKeyspace() string {
@@ -10600,7 +10781,7 @@ type RefreshStateByShardResponse struct {
func (x *RefreshStateByShardResponse) Reset() {
*x = RefreshStateByShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[163]
+ mi := &file_vtctldata_proto_msgTypes[166]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10613,7 +10794,7 @@ func (x *RefreshStateByShardResponse) String() string {
func (*RefreshStateByShardResponse) ProtoMessage() {}
func (x *RefreshStateByShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[163]
+ mi := &file_vtctldata_proto_msgTypes[166]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10626,7 +10807,7 @@ func (x *RefreshStateByShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateByShardResponse.ProtoReflect.Descriptor instead.
func (*RefreshStateByShardResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{163}
+ return file_vtctldata_proto_rawDescGZIP(), []int{166}
}
func (x *RefreshStateByShardResponse) GetIsPartialRefresh() bool {
@@ -10654,7 +10835,7 @@ type ReloadSchemaRequest struct {
func (x *ReloadSchemaRequest) Reset() {
*x = ReloadSchemaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[164]
+ mi := &file_vtctldata_proto_msgTypes[167]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10667,7 +10848,7 @@ func (x *ReloadSchemaRequest) String() string {
func (*ReloadSchemaRequest) ProtoMessage() {}
func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[164]
+ mi := &file_vtctldata_proto_msgTypes[167]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10680,7 +10861,7 @@ func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaRequest.ProtoReflect.Descriptor instead.
func (*ReloadSchemaRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{164}
+ return file_vtctldata_proto_rawDescGZIP(), []int{167}
}
func (x *ReloadSchemaRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -10699,7 +10880,7 @@ type ReloadSchemaResponse struct {
func (x *ReloadSchemaResponse) Reset() {
*x = ReloadSchemaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[165]
+ mi := &file_vtctldata_proto_msgTypes[168]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10712,7 +10893,7 @@ func (x *ReloadSchemaResponse) String() string {
func (*ReloadSchemaResponse) ProtoMessage() {}
func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[165]
+ mi := &file_vtctldata_proto_msgTypes[168]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10725,7 +10906,7 @@ func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaResponse.ProtoReflect.Descriptor instead.
func (*ReloadSchemaResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{165}
+ return file_vtctldata_proto_rawDescGZIP(), []int{168}
}
type ReloadSchemaKeyspaceRequest struct {
@@ -10745,7 +10926,7 @@ type ReloadSchemaKeyspaceRequest struct {
func (x *ReloadSchemaKeyspaceRequest) Reset() {
*x = ReloadSchemaKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[166]
+ mi := &file_vtctldata_proto_msgTypes[169]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10758,7 +10939,7 @@ func (x *ReloadSchemaKeyspaceRequest) String() string {
func (*ReloadSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ReloadSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[166]
+ mi := &file_vtctldata_proto_msgTypes[169]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10771,7 +10952,7 @@ func (x *ReloadSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ReloadSchemaKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{166}
+ return file_vtctldata_proto_rawDescGZIP(), []int{169}
}
func (x *ReloadSchemaKeyspaceRequest) GetKeyspace() string {
@@ -10813,7 +10994,7 @@ type ReloadSchemaKeyspaceResponse struct {
func (x *ReloadSchemaKeyspaceResponse) Reset() {
*x = ReloadSchemaKeyspaceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[167]
+ mi := &file_vtctldata_proto_msgTypes[170]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10826,7 +11007,7 @@ func (x *ReloadSchemaKeyspaceResponse) String() string {
func (*ReloadSchemaKeyspaceResponse) ProtoMessage() {}
func (x *ReloadSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[167]
+ mi := &file_vtctldata_proto_msgTypes[170]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10839,7 +11020,7 @@ func (x *ReloadSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaKeyspaceResponse.ProtoReflect.Descriptor instead.
func (*ReloadSchemaKeyspaceResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{167}
+ return file_vtctldata_proto_rawDescGZIP(), []int{170}
}
func (x *ReloadSchemaKeyspaceResponse) GetEvents() []*logutil.Event {
@@ -10865,7 +11046,7 @@ type ReloadSchemaShardRequest struct {
func (x *ReloadSchemaShardRequest) Reset() {
*x = ReloadSchemaShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[168]
+ mi := &file_vtctldata_proto_msgTypes[171]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10878,7 +11059,7 @@ func (x *ReloadSchemaShardRequest) String() string {
func (*ReloadSchemaShardRequest) ProtoMessage() {}
func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[168]
+ mi := &file_vtctldata_proto_msgTypes[171]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10891,7 +11072,7 @@ func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaShardRequest.ProtoReflect.Descriptor instead.
func (*ReloadSchemaShardRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{168}
+ return file_vtctldata_proto_rawDescGZIP(), []int{171}
}
func (x *ReloadSchemaShardRequest) GetKeyspace() string {
@@ -10940,7 +11121,7 @@ type ReloadSchemaShardResponse struct {
func (x *ReloadSchemaShardResponse) Reset() {
*x = ReloadSchemaShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[169]
+ mi := &file_vtctldata_proto_msgTypes[172]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -10953,7 +11134,7 @@ func (x *ReloadSchemaShardResponse) String() string {
func (*ReloadSchemaShardResponse) ProtoMessage() {}
func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[169]
+ mi := &file_vtctldata_proto_msgTypes[172]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -10966,7 +11147,7 @@ func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaShardResponse.ProtoReflect.Descriptor instead.
func (*ReloadSchemaShardResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{169}
+ return file_vtctldata_proto_rawDescGZIP(), []int{172}
}
func (x *ReloadSchemaShardResponse) GetEvents() []*logutil.Event {
@@ -10989,7 +11170,7 @@ type RemoveBackupRequest struct {
func (x *RemoveBackupRequest) Reset() {
*x = RemoveBackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[170]
+ mi := &file_vtctldata_proto_msgTypes[173]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11002,7 +11183,7 @@ func (x *RemoveBackupRequest) String() string {
func (*RemoveBackupRequest) ProtoMessage() {}
func (x *RemoveBackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[170]
+ mi := &file_vtctldata_proto_msgTypes[173]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11015,7 +11196,7 @@ func (x *RemoveBackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveBackupRequest.ProtoReflect.Descriptor instead.
func (*RemoveBackupRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{170}
+ return file_vtctldata_proto_rawDescGZIP(), []int{173}
}
func (x *RemoveBackupRequest) GetKeyspace() string {
@@ -11048,7 +11229,7 @@ type RemoveBackupResponse struct {
func (x *RemoveBackupResponse) Reset() {
*x = RemoveBackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[171]
+ mi := &file_vtctldata_proto_msgTypes[174]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11061,7 +11242,7 @@ func (x *RemoveBackupResponse) String() string {
func (*RemoveBackupResponse) ProtoMessage() {}
func (x *RemoveBackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[171]
+ mi := &file_vtctldata_proto_msgTypes[174]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11074,7 +11255,7 @@ func (x *RemoveBackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveBackupResponse.ProtoReflect.Descriptor instead.
func (*RemoveBackupResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{171}
+ return file_vtctldata_proto_rawDescGZIP(), []int{174}
}
type RemoveKeyspaceCellRequest struct {
@@ -11096,7 +11277,7 @@ type RemoveKeyspaceCellRequest struct {
func (x *RemoveKeyspaceCellRequest) Reset() {
*x = RemoveKeyspaceCellRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[172]
+ mi := &file_vtctldata_proto_msgTypes[175]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11109,7 +11290,7 @@ func (x *RemoveKeyspaceCellRequest) String() string {
func (*RemoveKeyspaceCellRequest) ProtoMessage() {}
func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[172]
+ mi := &file_vtctldata_proto_msgTypes[175]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11122,7 +11303,7 @@ func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveKeyspaceCellRequest.ProtoReflect.Descriptor instead.
func (*RemoveKeyspaceCellRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{172}
+ return file_vtctldata_proto_rawDescGZIP(), []int{175}
}
func (x *RemoveKeyspaceCellRequest) GetKeyspace() string {
@@ -11162,7 +11343,7 @@ type RemoveKeyspaceCellResponse struct {
func (x *RemoveKeyspaceCellResponse) Reset() {
*x = RemoveKeyspaceCellResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[173]
+ mi := &file_vtctldata_proto_msgTypes[176]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11175,7 +11356,7 @@ func (x *RemoveKeyspaceCellResponse) String() string {
func (*RemoveKeyspaceCellResponse) ProtoMessage() {}
func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[173]
+ mi := &file_vtctldata_proto_msgTypes[176]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11188,7 +11369,7 @@ func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveKeyspaceCellResponse.ProtoReflect.Descriptor instead.
func (*RemoveKeyspaceCellResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{173}
+ return file_vtctldata_proto_rawDescGZIP(), []int{176}
}
type RemoveShardCellRequest struct {
@@ -11211,7 +11392,7 @@ type RemoveShardCellRequest struct {
func (x *RemoveShardCellRequest) Reset() {
*x = RemoveShardCellRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[174]
+ mi := &file_vtctldata_proto_msgTypes[177]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11224,7 +11405,7 @@ func (x *RemoveShardCellRequest) String() string {
func (*RemoveShardCellRequest) ProtoMessage() {}
func (x *RemoveShardCellRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[174]
+ mi := &file_vtctldata_proto_msgTypes[177]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11237,7 +11418,7 @@ func (x *RemoveShardCellRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveShardCellRequest.ProtoReflect.Descriptor instead.
func (*RemoveShardCellRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{174}
+ return file_vtctldata_proto_rawDescGZIP(), []int{177}
}
func (x *RemoveShardCellRequest) GetKeyspace() string {
@@ -11284,7 +11465,7 @@ type RemoveShardCellResponse struct {
func (x *RemoveShardCellResponse) Reset() {
*x = RemoveShardCellResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[175]
+ mi := &file_vtctldata_proto_msgTypes[178]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11297,7 +11478,7 @@ func (x *RemoveShardCellResponse) String() string {
func (*RemoveShardCellResponse) ProtoMessage() {}
func (x *RemoveShardCellResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[175]
+ mi := &file_vtctldata_proto_msgTypes[178]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11310,7 +11491,7 @@ func (x *RemoveShardCellResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveShardCellResponse.ProtoReflect.Descriptor instead.
func (*RemoveShardCellResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{175}
+ return file_vtctldata_proto_rawDescGZIP(), []int{178}
}
type ReparentTabletRequest struct {
@@ -11326,7 +11507,7 @@ type ReparentTabletRequest struct {
func (x *ReparentTabletRequest) Reset() {
*x = ReparentTabletRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[176]
+ mi := &file_vtctldata_proto_msgTypes[179]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11339,7 +11520,7 @@ func (x *ReparentTabletRequest) String() string {
func (*ReparentTabletRequest) ProtoMessage() {}
func (x *ReparentTabletRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[176]
+ mi := &file_vtctldata_proto_msgTypes[179]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11352,7 +11533,7 @@ func (x *ReparentTabletRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReparentTabletRequest.ProtoReflect.Descriptor instead.
func (*ReparentTabletRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{176}
+ return file_vtctldata_proto_rawDescGZIP(), []int{179}
}
func (x *ReparentTabletRequest) GetTablet() *topodata.TabletAlias {
@@ -11378,7 +11559,7 @@ type ReparentTabletResponse struct {
func (x *ReparentTabletResponse) Reset() {
*x = ReparentTabletResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[177]
+ mi := &file_vtctldata_proto_msgTypes[180]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11391,7 +11572,7 @@ func (x *ReparentTabletResponse) String() string {
func (*ReparentTabletResponse) ProtoMessage() {}
func (x *ReparentTabletResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[177]
+ mi := &file_vtctldata_proto_msgTypes[180]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11404,7 +11585,7 @@ func (x *ReparentTabletResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReparentTabletResponse.ProtoReflect.Descriptor instead.
func (*ReparentTabletResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{177}
+ return file_vtctldata_proto_rawDescGZIP(), []int{180}
}
func (x *ReparentTabletResponse) GetKeyspace() string {
@@ -11457,7 +11638,7 @@ type ReshardCreateRequest struct {
func (x *ReshardCreateRequest) Reset() {
*x = ReshardCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[178]
+ mi := &file_vtctldata_proto_msgTypes[181]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11470,7 +11651,7 @@ func (x *ReshardCreateRequest) String() string {
func (*ReshardCreateRequest) ProtoMessage() {}
func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[178]
+ mi := &file_vtctldata_proto_msgTypes[181]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11483,7 +11664,7 @@ func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReshardCreateRequest.ProtoReflect.Descriptor instead.
func (*ReshardCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{178}
+ return file_vtctldata_proto_rawDescGZIP(), []int{181}
}
func (x *ReshardCreateRequest) GetWorkflow() string {
@@ -11602,7 +11783,7 @@ type RestoreFromBackupRequest struct {
func (x *RestoreFromBackupRequest) Reset() {
*x = RestoreFromBackupRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[179]
+ mi := &file_vtctldata_proto_msgTypes[182]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11615,7 +11796,7 @@ func (x *RestoreFromBackupRequest) String() string {
func (*RestoreFromBackupRequest) ProtoMessage() {}
func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[179]
+ mi := &file_vtctldata_proto_msgTypes[182]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11628,7 +11809,7 @@ func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupRequest.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{179}
+ return file_vtctldata_proto_rawDescGZIP(), []int{182}
}
func (x *RestoreFromBackupRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -11688,7 +11869,7 @@ type RestoreFromBackupResponse struct {
func (x *RestoreFromBackupResponse) Reset() {
*x = RestoreFromBackupResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[180]
+ mi := &file_vtctldata_proto_msgTypes[183]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11701,7 +11882,7 @@ func (x *RestoreFromBackupResponse) String() string {
func (*RestoreFromBackupResponse) ProtoMessage() {}
func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[180]
+ mi := &file_vtctldata_proto_msgTypes[183]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11714,7 +11895,7 @@ func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RestoreFromBackupResponse.ProtoReflect.Descriptor instead.
func (*RestoreFromBackupResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{180}
+ return file_vtctldata_proto_rawDescGZIP(), []int{183}
}
func (x *RestoreFromBackupResponse) GetTabletAlias() *topodata.TabletAlias {
@@ -11757,7 +11938,7 @@ type RetrySchemaMigrationRequest struct {
func (x *RetrySchemaMigrationRequest) Reset() {
*x = RetrySchemaMigrationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[181]
+ mi := &file_vtctldata_proto_msgTypes[184]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11770,7 +11951,7 @@ func (x *RetrySchemaMigrationRequest) String() string {
func (*RetrySchemaMigrationRequest) ProtoMessage() {}
func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[181]
+ mi := &file_vtctldata_proto_msgTypes[184]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11783,7 +11964,7 @@ func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RetrySchemaMigrationRequest.ProtoReflect.Descriptor instead.
func (*RetrySchemaMigrationRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{181}
+ return file_vtctldata_proto_rawDescGZIP(), []int{184}
}
func (x *RetrySchemaMigrationRequest) GetKeyspace() string {
@@ -11811,7 +11992,7 @@ type RetrySchemaMigrationResponse struct {
func (x *RetrySchemaMigrationResponse) Reset() {
*x = RetrySchemaMigrationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[182]
+ mi := &file_vtctldata_proto_msgTypes[185]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11824,7 +12005,7 @@ func (x *RetrySchemaMigrationResponse) String() string {
func (*RetrySchemaMigrationResponse) ProtoMessage() {}
func (x *RetrySchemaMigrationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[182]
+ mi := &file_vtctldata_proto_msgTypes[185]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11837,7 +12018,7 @@ func (x *RetrySchemaMigrationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RetrySchemaMigrationResponse.ProtoReflect.Descriptor instead.
func (*RetrySchemaMigrationResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{182}
+ return file_vtctldata_proto_rawDescGZIP(), []int{185}
}
func (x *RetrySchemaMigrationResponse) GetRowsAffectedByShard() map[string]uint64 {
@@ -11858,7 +12039,7 @@ type RunHealthCheckRequest struct {
func (x *RunHealthCheckRequest) Reset() {
*x = RunHealthCheckRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[183]
+ mi := &file_vtctldata_proto_msgTypes[186]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11871,7 +12052,7 @@ func (x *RunHealthCheckRequest) String() string {
func (*RunHealthCheckRequest) ProtoMessage() {}
func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[183]
+ mi := &file_vtctldata_proto_msgTypes[186]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11884,7 +12065,7 @@ func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RunHealthCheckRequest.ProtoReflect.Descriptor instead.
func (*RunHealthCheckRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{183}
+ return file_vtctldata_proto_rawDescGZIP(), []int{186}
}
func (x *RunHealthCheckRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -11903,7 +12084,7 @@ type RunHealthCheckResponse struct {
func (x *RunHealthCheckResponse) Reset() {
*x = RunHealthCheckResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[184]
+ mi := &file_vtctldata_proto_msgTypes[187]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11916,7 +12097,7 @@ func (x *RunHealthCheckResponse) String() string {
func (*RunHealthCheckResponse) ProtoMessage() {}
func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[184]
+ mi := &file_vtctldata_proto_msgTypes[187]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11929,7 +12110,7 @@ func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RunHealthCheckResponse.ProtoReflect.Descriptor instead.
func (*RunHealthCheckResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{184}
+ return file_vtctldata_proto_rawDescGZIP(), []int{187}
}
type SetKeyspaceDurabilityPolicyRequest struct {
@@ -11944,7 +12125,7 @@ type SetKeyspaceDurabilityPolicyRequest struct {
func (x *SetKeyspaceDurabilityPolicyRequest) Reset() {
*x = SetKeyspaceDurabilityPolicyRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[185]
+ mi := &file_vtctldata_proto_msgTypes[188]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -11957,7 +12138,7 @@ func (x *SetKeyspaceDurabilityPolicyRequest) String() string {
func (*SetKeyspaceDurabilityPolicyRequest) ProtoMessage() {}
func (x *SetKeyspaceDurabilityPolicyRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[185]
+ mi := &file_vtctldata_proto_msgTypes[188]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -11970,7 +12151,7 @@ func (x *SetKeyspaceDurabilityPolicyRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use SetKeyspaceDurabilityPolicyRequest.ProtoReflect.Descriptor instead.
func (*SetKeyspaceDurabilityPolicyRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{185}
+ return file_vtctldata_proto_rawDescGZIP(), []int{188}
}
func (x *SetKeyspaceDurabilityPolicyRequest) GetKeyspace() string {
@@ -11999,7 +12180,7 @@ type SetKeyspaceDurabilityPolicyResponse struct {
func (x *SetKeyspaceDurabilityPolicyResponse) Reset() {
*x = SetKeyspaceDurabilityPolicyResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[186]
+ mi := &file_vtctldata_proto_msgTypes[189]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12012,7 +12193,7 @@ func (x *SetKeyspaceDurabilityPolicyResponse) String() string {
func (*SetKeyspaceDurabilityPolicyResponse) ProtoMessage() {}
func (x *SetKeyspaceDurabilityPolicyResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[186]
+ mi := &file_vtctldata_proto_msgTypes[189]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12025,7 +12206,7 @@ func (x *SetKeyspaceDurabilityPolicyResponse) ProtoReflect() protoreflect.Messag
// Deprecated: Use SetKeyspaceDurabilityPolicyResponse.ProtoReflect.Descriptor instead.
func (*SetKeyspaceDurabilityPolicyResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{186}
+ return file_vtctldata_proto_rawDescGZIP(), []int{189}
}
func (x *SetKeyspaceDurabilityPolicyResponse) GetKeyspace() *topodata.Keyspace {
@@ -12047,7 +12228,7 @@ type SetKeyspaceShardingInfoRequest struct {
func (x *SetKeyspaceShardingInfoRequest) Reset() {
*x = SetKeyspaceShardingInfoRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[187]
+ mi := &file_vtctldata_proto_msgTypes[190]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12060,7 +12241,7 @@ func (x *SetKeyspaceShardingInfoRequest) String() string {
func (*SetKeyspaceShardingInfoRequest) ProtoMessage() {}
func (x *SetKeyspaceShardingInfoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[187]
+ mi := &file_vtctldata_proto_msgTypes[190]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12073,7 +12254,7 @@ func (x *SetKeyspaceShardingInfoRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetKeyspaceShardingInfoRequest.ProtoReflect.Descriptor instead.
func (*SetKeyspaceShardingInfoRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{187}
+ return file_vtctldata_proto_rawDescGZIP(), []int{190}
}
func (x *SetKeyspaceShardingInfoRequest) GetKeyspace() string {
@@ -12102,7 +12283,7 @@ type SetKeyspaceShardingInfoResponse struct {
func (x *SetKeyspaceShardingInfoResponse) Reset() {
*x = SetKeyspaceShardingInfoResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[188]
+ mi := &file_vtctldata_proto_msgTypes[191]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12115,7 +12296,7 @@ func (x *SetKeyspaceShardingInfoResponse) String() string {
func (*SetKeyspaceShardingInfoResponse) ProtoMessage() {}
func (x *SetKeyspaceShardingInfoResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[188]
+ mi := &file_vtctldata_proto_msgTypes[191]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12128,7 +12309,7 @@ func (x *SetKeyspaceShardingInfoResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetKeyspaceShardingInfoResponse.ProtoReflect.Descriptor instead.
func (*SetKeyspaceShardingInfoResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{188}
+ return file_vtctldata_proto_rawDescGZIP(), []int{191}
}
func (x *SetKeyspaceShardingInfoResponse) GetKeyspace() *topodata.Keyspace {
@@ -12151,7 +12332,7 @@ type SetShardIsPrimaryServingRequest struct {
func (x *SetShardIsPrimaryServingRequest) Reset() {
*x = SetShardIsPrimaryServingRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[189]
+ mi := &file_vtctldata_proto_msgTypes[192]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12164,7 +12345,7 @@ func (x *SetShardIsPrimaryServingRequest) String() string {
func (*SetShardIsPrimaryServingRequest) ProtoMessage() {}
func (x *SetShardIsPrimaryServingRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[189]
+ mi := &file_vtctldata_proto_msgTypes[192]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12177,7 +12358,7 @@ func (x *SetShardIsPrimaryServingRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetShardIsPrimaryServingRequest.ProtoReflect.Descriptor instead.
func (*SetShardIsPrimaryServingRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{189}
+ return file_vtctldata_proto_rawDescGZIP(), []int{192}
}
func (x *SetShardIsPrimaryServingRequest) GetKeyspace() string {
@@ -12213,7 +12394,7 @@ type SetShardIsPrimaryServingResponse struct {
func (x *SetShardIsPrimaryServingResponse) Reset() {
*x = SetShardIsPrimaryServingResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[190]
+ mi := &file_vtctldata_proto_msgTypes[193]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12226,7 +12407,7 @@ func (x *SetShardIsPrimaryServingResponse) String() string {
func (*SetShardIsPrimaryServingResponse) ProtoMessage() {}
func (x *SetShardIsPrimaryServingResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[190]
+ mi := &file_vtctldata_proto_msgTypes[193]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12239,7 +12420,7 @@ func (x *SetShardIsPrimaryServingResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetShardIsPrimaryServingResponse.ProtoReflect.Descriptor instead.
func (*SetShardIsPrimaryServingResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{190}
+ return file_vtctldata_proto_rawDescGZIP(), []int{193}
}
func (x *SetShardIsPrimaryServingResponse) GetShard() *topodata.Shard {
@@ -12280,7 +12461,7 @@ type SetShardTabletControlRequest struct {
func (x *SetShardTabletControlRequest) Reset() {
*x = SetShardTabletControlRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[191]
+ mi := &file_vtctldata_proto_msgTypes[194]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12293,7 +12474,7 @@ func (x *SetShardTabletControlRequest) String() string {
func (*SetShardTabletControlRequest) ProtoMessage() {}
func (x *SetShardTabletControlRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[191]
+ mi := &file_vtctldata_proto_msgTypes[194]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12306,7 +12487,7 @@ func (x *SetShardTabletControlRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetShardTabletControlRequest.ProtoReflect.Descriptor instead.
func (*SetShardTabletControlRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{191}
+ return file_vtctldata_proto_rawDescGZIP(), []int{194}
}
func (x *SetShardTabletControlRequest) GetKeyspace() string {
@@ -12370,7 +12551,7 @@ type SetShardTabletControlResponse struct {
func (x *SetShardTabletControlResponse) Reset() {
*x = SetShardTabletControlResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[192]
+ mi := &file_vtctldata_proto_msgTypes[195]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12383,7 +12564,7 @@ func (x *SetShardTabletControlResponse) String() string {
func (*SetShardTabletControlResponse) ProtoMessage() {}
func (x *SetShardTabletControlResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[192]
+ mi := &file_vtctldata_proto_msgTypes[195]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12396,7 +12577,7 @@ func (x *SetShardTabletControlResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetShardTabletControlResponse.ProtoReflect.Descriptor instead.
func (*SetShardTabletControlResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{192}
+ return file_vtctldata_proto_rawDescGZIP(), []int{195}
}
func (x *SetShardTabletControlResponse) GetShard() *topodata.Shard {
@@ -12418,7 +12599,7 @@ type SetWritableRequest struct {
func (x *SetWritableRequest) Reset() {
*x = SetWritableRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[193]
+ mi := &file_vtctldata_proto_msgTypes[196]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12431,7 +12612,7 @@ func (x *SetWritableRequest) String() string {
func (*SetWritableRequest) ProtoMessage() {}
func (x *SetWritableRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[193]
+ mi := &file_vtctldata_proto_msgTypes[196]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12444,7 +12625,7 @@ func (x *SetWritableRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetWritableRequest.ProtoReflect.Descriptor instead.
func (*SetWritableRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{193}
+ return file_vtctldata_proto_rawDescGZIP(), []int{196}
}
func (x *SetWritableRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -12470,7 +12651,7 @@ type SetWritableResponse struct {
func (x *SetWritableResponse) Reset() {
*x = SetWritableResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[194]
+ mi := &file_vtctldata_proto_msgTypes[197]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12483,7 +12664,7 @@ func (x *SetWritableResponse) String() string {
func (*SetWritableResponse) ProtoMessage() {}
func (x *SetWritableResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[194]
+ mi := &file_vtctldata_proto_msgTypes[197]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12496,7 +12677,7 @@ func (x *SetWritableResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetWritableResponse.ProtoReflect.Descriptor instead.
func (*SetWritableResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{194}
+ return file_vtctldata_proto_rawDescGZIP(), []int{197}
}
type ShardReplicationAddRequest struct {
@@ -12512,7 +12693,7 @@ type ShardReplicationAddRequest struct {
func (x *ShardReplicationAddRequest) Reset() {
*x = ShardReplicationAddRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[195]
+ mi := &file_vtctldata_proto_msgTypes[198]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12525,7 +12706,7 @@ func (x *ShardReplicationAddRequest) String() string {
func (*ShardReplicationAddRequest) ProtoMessage() {}
func (x *ShardReplicationAddRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[195]
+ mi := &file_vtctldata_proto_msgTypes[198]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12538,7 +12719,7 @@ func (x *ShardReplicationAddRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationAddRequest.ProtoReflect.Descriptor instead.
func (*ShardReplicationAddRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{195}
+ return file_vtctldata_proto_rawDescGZIP(), []int{198}
}
func (x *ShardReplicationAddRequest) GetKeyspace() string {
@@ -12571,7 +12752,7 @@ type ShardReplicationAddResponse struct {
func (x *ShardReplicationAddResponse) Reset() {
*x = ShardReplicationAddResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[196]
+ mi := &file_vtctldata_proto_msgTypes[199]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12584,7 +12765,7 @@ func (x *ShardReplicationAddResponse) String() string {
func (*ShardReplicationAddResponse) ProtoMessage() {}
func (x *ShardReplicationAddResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[196]
+ mi := &file_vtctldata_proto_msgTypes[199]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12597,7 +12778,7 @@ func (x *ShardReplicationAddResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationAddResponse.ProtoReflect.Descriptor instead.
func (*ShardReplicationAddResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{196}
+ return file_vtctldata_proto_rawDescGZIP(), []int{199}
}
type ShardReplicationFixRequest struct {
@@ -12613,7 +12794,7 @@ type ShardReplicationFixRequest struct {
func (x *ShardReplicationFixRequest) Reset() {
*x = ShardReplicationFixRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[197]
+ mi := &file_vtctldata_proto_msgTypes[200]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12626,7 +12807,7 @@ func (x *ShardReplicationFixRequest) String() string {
func (*ShardReplicationFixRequest) ProtoMessage() {}
func (x *ShardReplicationFixRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[197]
+ mi := &file_vtctldata_proto_msgTypes[200]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12639,7 +12820,7 @@ func (x *ShardReplicationFixRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationFixRequest.ProtoReflect.Descriptor instead.
func (*ShardReplicationFixRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{197}
+ return file_vtctldata_proto_rawDescGZIP(), []int{200}
}
func (x *ShardReplicationFixRequest) GetKeyspace() string {
@@ -12677,7 +12858,7 @@ type ShardReplicationFixResponse struct {
func (x *ShardReplicationFixResponse) Reset() {
*x = ShardReplicationFixResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[198]
+ mi := &file_vtctldata_proto_msgTypes[201]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12690,7 +12871,7 @@ func (x *ShardReplicationFixResponse) String() string {
func (*ShardReplicationFixResponse) ProtoMessage() {}
func (x *ShardReplicationFixResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[198]
+ mi := &file_vtctldata_proto_msgTypes[201]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12703,7 +12884,7 @@ func (x *ShardReplicationFixResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationFixResponse.ProtoReflect.Descriptor instead.
func (*ShardReplicationFixResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{198}
+ return file_vtctldata_proto_rawDescGZIP(), []int{201}
}
func (x *ShardReplicationFixResponse) GetError() *topodata.ShardReplicationError {
@@ -12725,7 +12906,7 @@ type ShardReplicationPositionsRequest struct {
func (x *ShardReplicationPositionsRequest) Reset() {
*x = ShardReplicationPositionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[199]
+ mi := &file_vtctldata_proto_msgTypes[202]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12738,7 +12919,7 @@ func (x *ShardReplicationPositionsRequest) String() string {
func (*ShardReplicationPositionsRequest) ProtoMessage() {}
func (x *ShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[199]
+ mi := &file_vtctldata_proto_msgTypes[202]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12751,7 +12932,7 @@ func (x *ShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationPositionsRequest.ProtoReflect.Descriptor instead.
func (*ShardReplicationPositionsRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{199}
+ return file_vtctldata_proto_rawDescGZIP(), []int{202}
}
func (x *ShardReplicationPositionsRequest) GetKeyspace() string {
@@ -12784,7 +12965,7 @@ type ShardReplicationPositionsResponse struct {
func (x *ShardReplicationPositionsResponse) Reset() {
*x = ShardReplicationPositionsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[200]
+ mi := &file_vtctldata_proto_msgTypes[203]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12797,7 +12978,7 @@ func (x *ShardReplicationPositionsResponse) String() string {
func (*ShardReplicationPositionsResponse) ProtoMessage() {}
func (x *ShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[200]
+ mi := &file_vtctldata_proto_msgTypes[203]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12810,7 +12991,7 @@ func (x *ShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ShardReplicationPositionsResponse.ProtoReflect.Descriptor instead.
func (*ShardReplicationPositionsResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{200}
+ return file_vtctldata_proto_rawDescGZIP(), []int{203}
}
func (x *ShardReplicationPositionsResponse) GetReplicationStatuses() map[string]*replicationdata.Status {
@@ -12840,7 +13021,7 @@ type ShardReplicationRemoveRequest struct {
func (x *ShardReplicationRemoveRequest) Reset() {
*x = ShardReplicationRemoveRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[201]
+ mi := &file_vtctldata_proto_msgTypes[204]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12853,7 +13034,7 @@ func (x *ShardReplicationRemoveRequest) String() string {
func (*ShardReplicationRemoveRequest) ProtoMessage() {}
func (x *ShardReplicationRemoveRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[201]
+ mi := &file_vtctldata_proto_msgTypes[204]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12866,7 +13047,7 @@ func (x *ShardReplicationRemoveRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationRemoveRequest.ProtoReflect.Descriptor instead.
func (*ShardReplicationRemoveRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{201}
+ return file_vtctldata_proto_rawDescGZIP(), []int{204}
}
func (x *ShardReplicationRemoveRequest) GetKeyspace() string {
@@ -12899,7 +13080,7 @@ type ShardReplicationRemoveResponse struct {
func (x *ShardReplicationRemoveResponse) Reset() {
*x = ShardReplicationRemoveResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[202]
+ mi := &file_vtctldata_proto_msgTypes[205]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12912,7 +13093,7 @@ func (x *ShardReplicationRemoveResponse) String() string {
func (*ShardReplicationRemoveResponse) ProtoMessage() {}
func (x *ShardReplicationRemoveResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[202]
+ mi := &file_vtctldata_proto_msgTypes[205]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12925,7 +13106,7 @@ func (x *ShardReplicationRemoveResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ShardReplicationRemoveResponse.ProtoReflect.Descriptor instead.
func (*ShardReplicationRemoveResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{202}
+ return file_vtctldata_proto_rawDescGZIP(), []int{205}
}
type SleepTabletRequest struct {
@@ -12940,7 +13121,7 @@ type SleepTabletRequest struct {
func (x *SleepTabletRequest) Reset() {
*x = SleepTabletRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[203]
+ mi := &file_vtctldata_proto_msgTypes[206]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -12953,7 +13134,7 @@ func (x *SleepTabletRequest) String() string {
func (*SleepTabletRequest) ProtoMessage() {}
func (x *SleepTabletRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[203]
+ mi := &file_vtctldata_proto_msgTypes[206]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -12966,7 +13147,7 @@ func (x *SleepTabletRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SleepTabletRequest.ProtoReflect.Descriptor instead.
func (*SleepTabletRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{203}
+ return file_vtctldata_proto_rawDescGZIP(), []int{206}
}
func (x *SleepTabletRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -12992,7 +13173,7 @@ type SleepTabletResponse struct {
func (x *SleepTabletResponse) Reset() {
*x = SleepTabletResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[204]
+ mi := &file_vtctldata_proto_msgTypes[207]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13005,7 +13186,7 @@ func (x *SleepTabletResponse) String() string {
func (*SleepTabletResponse) ProtoMessage() {}
func (x *SleepTabletResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[204]
+ mi := &file_vtctldata_proto_msgTypes[207]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13018,7 +13199,7 @@ func (x *SleepTabletResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SleepTabletResponse.ProtoReflect.Descriptor instead.
func (*SleepTabletResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{204}
+ return file_vtctldata_proto_rawDescGZIP(), []int{207}
}
type SourceShardAddRequest struct {
@@ -13042,7 +13223,7 @@ type SourceShardAddRequest struct {
func (x *SourceShardAddRequest) Reset() {
*x = SourceShardAddRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[205]
+ mi := &file_vtctldata_proto_msgTypes[208]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13055,7 +13236,7 @@ func (x *SourceShardAddRequest) String() string {
func (*SourceShardAddRequest) ProtoMessage() {}
func (x *SourceShardAddRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[205]
+ mi := &file_vtctldata_proto_msgTypes[208]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13068,7 +13249,7 @@ func (x *SourceShardAddRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SourceShardAddRequest.ProtoReflect.Descriptor instead.
func (*SourceShardAddRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{205}
+ return file_vtctldata_proto_rawDescGZIP(), []int{208}
}
func (x *SourceShardAddRequest) GetKeyspace() string {
@@ -13132,7 +13313,7 @@ type SourceShardAddResponse struct {
func (x *SourceShardAddResponse) Reset() {
*x = SourceShardAddResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[206]
+ mi := &file_vtctldata_proto_msgTypes[209]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13145,7 +13326,7 @@ func (x *SourceShardAddResponse) String() string {
func (*SourceShardAddResponse) ProtoMessage() {}
func (x *SourceShardAddResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[206]
+ mi := &file_vtctldata_proto_msgTypes[209]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13158,7 +13339,7 @@ func (x *SourceShardAddResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SourceShardAddResponse.ProtoReflect.Descriptor instead.
func (*SourceShardAddResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{206}
+ return file_vtctldata_proto_rawDescGZIP(), []int{209}
}
func (x *SourceShardAddResponse) GetShard() *topodata.Shard {
@@ -13181,7 +13362,7 @@ type SourceShardDeleteRequest struct {
func (x *SourceShardDeleteRequest) Reset() {
*x = SourceShardDeleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[207]
+ mi := &file_vtctldata_proto_msgTypes[210]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13194,7 +13375,7 @@ func (x *SourceShardDeleteRequest) String() string {
func (*SourceShardDeleteRequest) ProtoMessage() {}
func (x *SourceShardDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[207]
+ mi := &file_vtctldata_proto_msgTypes[210]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13207,7 +13388,7 @@ func (x *SourceShardDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SourceShardDeleteRequest.ProtoReflect.Descriptor instead.
func (*SourceShardDeleteRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{207}
+ return file_vtctldata_proto_rawDescGZIP(), []int{210}
}
func (x *SourceShardDeleteRequest) GetKeyspace() string {
@@ -13243,7 +13424,7 @@ type SourceShardDeleteResponse struct {
func (x *SourceShardDeleteResponse) Reset() {
*x = SourceShardDeleteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[208]
+ mi := &file_vtctldata_proto_msgTypes[211]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13256,7 +13437,7 @@ func (x *SourceShardDeleteResponse) String() string {
func (*SourceShardDeleteResponse) ProtoMessage() {}
func (x *SourceShardDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[208]
+ mi := &file_vtctldata_proto_msgTypes[211]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13269,7 +13450,7 @@ func (x *SourceShardDeleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SourceShardDeleteResponse.ProtoReflect.Descriptor instead.
func (*SourceShardDeleteResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{208}
+ return file_vtctldata_proto_rawDescGZIP(), []int{211}
}
func (x *SourceShardDeleteResponse) GetShard() *topodata.Shard {
@@ -13290,7 +13471,7 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[209]
+ mi := &file_vtctldata_proto_msgTypes[212]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13303,7 +13484,7 @@ func (x *StartReplicationRequest) String() string {
func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[209]
+ mi := &file_vtctldata_proto_msgTypes[212]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13316,7 +13497,7 @@ func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationRequest.ProtoReflect.Descriptor instead.
func (*StartReplicationRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{209}
+ return file_vtctldata_proto_rawDescGZIP(), []int{212}
}
func (x *StartReplicationRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -13335,7 +13516,7 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[210]
+ mi := &file_vtctldata_proto_msgTypes[213]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13348,7 +13529,7 @@ func (x *StartReplicationResponse) String() string {
func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[210]
+ mi := &file_vtctldata_proto_msgTypes[213]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13361,7 +13542,7 @@ func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationResponse.ProtoReflect.Descriptor instead.
func (*StartReplicationResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{210}
+ return file_vtctldata_proto_rawDescGZIP(), []int{213}
}
type StopReplicationRequest struct {
@@ -13375,7 +13556,7 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[211]
+ mi := &file_vtctldata_proto_msgTypes[214]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13388,7 +13569,7 @@ func (x *StopReplicationRequest) String() string {
func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[211]
+ mi := &file_vtctldata_proto_msgTypes[214]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13401,7 +13582,7 @@ func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{211}
+ return file_vtctldata_proto_rawDescGZIP(), []int{214}
}
func (x *StopReplicationRequest) GetTabletAlias() *topodata.TabletAlias {
@@ -13420,7 +13601,7 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[212]
+ mi := &file_vtctldata_proto_msgTypes[215]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13433,7 +13614,7 @@ func (x *StopReplicationResponse) String() string {
func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[212]
+ mi := &file_vtctldata_proto_msgTypes[215]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13446,7 +13627,7 @@ func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{212}
+ return file_vtctldata_proto_rawDescGZIP(), []int{215}
}
type TabletExternallyReparentedRequest struct {
@@ -13462,7 +13643,7 @@ type TabletExternallyReparentedRequest struct {
func (x *TabletExternallyReparentedRequest) Reset() {
*x = TabletExternallyReparentedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[213]
+ mi := &file_vtctldata_proto_msgTypes[216]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13475,7 +13656,7 @@ func (x *TabletExternallyReparentedRequest) String() string {
func (*TabletExternallyReparentedRequest) ProtoMessage() {}
func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[213]
+ mi := &file_vtctldata_proto_msgTypes[216]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13488,7 +13669,7 @@ func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use TabletExternallyReparentedRequest.ProtoReflect.Descriptor instead.
func (*TabletExternallyReparentedRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{213}
+ return file_vtctldata_proto_rawDescGZIP(), []int{216}
}
func (x *TabletExternallyReparentedRequest) GetTablet() *topodata.TabletAlias {
@@ -13512,7 +13693,7 @@ type TabletExternallyReparentedResponse struct {
func (x *TabletExternallyReparentedResponse) Reset() {
*x = TabletExternallyReparentedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[214]
+ mi := &file_vtctldata_proto_msgTypes[217]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13525,7 +13706,7 @@ func (x *TabletExternallyReparentedResponse) String() string {
func (*TabletExternallyReparentedResponse) ProtoMessage() {}
func (x *TabletExternallyReparentedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[214]
+ mi := &file_vtctldata_proto_msgTypes[217]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13538,7 +13719,7 @@ func (x *TabletExternallyReparentedResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use TabletExternallyReparentedResponse.ProtoReflect.Descriptor instead.
func (*TabletExternallyReparentedResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{214}
+ return file_vtctldata_proto_rawDescGZIP(), []int{217}
}
func (x *TabletExternallyReparentedResponse) GetKeyspace() string {
@@ -13581,7 +13762,7 @@ type UpdateCellInfoRequest struct {
func (x *UpdateCellInfoRequest) Reset() {
*x = UpdateCellInfoRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[215]
+ mi := &file_vtctldata_proto_msgTypes[218]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13594,7 +13775,7 @@ func (x *UpdateCellInfoRequest) String() string {
func (*UpdateCellInfoRequest) ProtoMessage() {}
func (x *UpdateCellInfoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[215]
+ mi := &file_vtctldata_proto_msgTypes[218]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13607,7 +13788,7 @@ func (x *UpdateCellInfoRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateCellInfoRequest.ProtoReflect.Descriptor instead.
func (*UpdateCellInfoRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{215}
+ return file_vtctldata_proto_rawDescGZIP(), []int{218}
}
func (x *UpdateCellInfoRequest) GetName() string {
@@ -13636,7 +13817,7 @@ type UpdateCellInfoResponse struct {
func (x *UpdateCellInfoResponse) Reset() {
*x = UpdateCellInfoResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[216]
+ mi := &file_vtctldata_proto_msgTypes[219]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13649,7 +13830,7 @@ func (x *UpdateCellInfoResponse) String() string {
func (*UpdateCellInfoResponse) ProtoMessage() {}
func (x *UpdateCellInfoResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[216]
+ mi := &file_vtctldata_proto_msgTypes[219]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13662,7 +13843,7 @@ func (x *UpdateCellInfoResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateCellInfoResponse.ProtoReflect.Descriptor instead.
func (*UpdateCellInfoResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{216}
+ return file_vtctldata_proto_rawDescGZIP(), []int{219}
}
func (x *UpdateCellInfoResponse) GetName() string {
@@ -13691,7 +13872,7 @@ type UpdateCellsAliasRequest struct {
func (x *UpdateCellsAliasRequest) Reset() {
*x = UpdateCellsAliasRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[217]
+ mi := &file_vtctldata_proto_msgTypes[220]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13704,7 +13885,7 @@ func (x *UpdateCellsAliasRequest) String() string {
func (*UpdateCellsAliasRequest) ProtoMessage() {}
func (x *UpdateCellsAliasRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[217]
+ mi := &file_vtctldata_proto_msgTypes[220]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13717,7 +13898,7 @@ func (x *UpdateCellsAliasRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateCellsAliasRequest.ProtoReflect.Descriptor instead.
func (*UpdateCellsAliasRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{217}
+ return file_vtctldata_proto_rawDescGZIP(), []int{220}
}
func (x *UpdateCellsAliasRequest) GetName() string {
@@ -13746,7 +13927,7 @@ type UpdateCellsAliasResponse struct {
func (x *UpdateCellsAliasResponse) Reset() {
*x = UpdateCellsAliasResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[218]
+ mi := &file_vtctldata_proto_msgTypes[221]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13759,7 +13940,7 @@ func (x *UpdateCellsAliasResponse) String() string {
func (*UpdateCellsAliasResponse) ProtoMessage() {}
func (x *UpdateCellsAliasResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[218]
+ mi := &file_vtctldata_proto_msgTypes[221]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13772,7 +13953,7 @@ func (x *UpdateCellsAliasResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateCellsAliasResponse.ProtoReflect.Descriptor instead.
func (*UpdateCellsAliasResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{218}
+ return file_vtctldata_proto_rawDescGZIP(), []int{221}
}
func (x *UpdateCellsAliasResponse) GetName() string {
@@ -13800,7 +13981,7 @@ type ValidateRequest struct {
func (x *ValidateRequest) Reset() {
*x = ValidateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[219]
+ mi := &file_vtctldata_proto_msgTypes[222]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13813,7 +13994,7 @@ func (x *ValidateRequest) String() string {
func (*ValidateRequest) ProtoMessage() {}
func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[219]
+ mi := &file_vtctldata_proto_msgTypes[222]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13826,7 +14007,7 @@ func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateRequest.ProtoReflect.Descriptor instead.
func (*ValidateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{219}
+ return file_vtctldata_proto_rawDescGZIP(), []int{222}
}
func (x *ValidateRequest) GetPingTablets() bool {
@@ -13848,7 +14029,7 @@ type ValidateResponse struct {
func (x *ValidateResponse) Reset() {
*x = ValidateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[220]
+ mi := &file_vtctldata_proto_msgTypes[223]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13861,7 +14042,7 @@ func (x *ValidateResponse) String() string {
func (*ValidateResponse) ProtoMessage() {}
func (x *ValidateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[220]
+ mi := &file_vtctldata_proto_msgTypes[223]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13874,7 +14055,7 @@ func (x *ValidateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateResponse.ProtoReflect.Descriptor instead.
func (*ValidateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{220}
+ return file_vtctldata_proto_rawDescGZIP(), []int{223}
}
func (x *ValidateResponse) GetResults() []string {
@@ -13903,7 +14084,7 @@ type ValidateKeyspaceRequest struct {
func (x *ValidateKeyspaceRequest) Reset() {
*x = ValidateKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[221]
+ mi := &file_vtctldata_proto_msgTypes[224]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13916,7 +14097,7 @@ func (x *ValidateKeyspaceRequest) String() string {
func (*ValidateKeyspaceRequest) ProtoMessage() {}
func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[221]
+ mi := &file_vtctldata_proto_msgTypes[224]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13929,7 +14110,7 @@ func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{221}
+ return file_vtctldata_proto_rawDescGZIP(), []int{224}
}
func (x *ValidateKeyspaceRequest) GetKeyspace() string {
@@ -13958,7 +14139,7 @@ type ValidateKeyspaceResponse struct {
func (x *ValidateKeyspaceResponse) Reset() {
*x = ValidateKeyspaceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[222]
+ mi := &file_vtctldata_proto_msgTypes[225]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -13971,7 +14152,7 @@ func (x *ValidateKeyspaceResponse) String() string {
func (*ValidateKeyspaceResponse) ProtoMessage() {}
func (x *ValidateKeyspaceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[222]
+ mi := &file_vtctldata_proto_msgTypes[225]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -13984,7 +14165,7 @@ func (x *ValidateKeyspaceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateKeyspaceResponse.ProtoReflect.Descriptor instead.
func (*ValidateKeyspaceResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{222}
+ return file_vtctldata_proto_rawDescGZIP(), []int{225}
}
func (x *ValidateKeyspaceResponse) GetResults() []string {
@@ -14016,7 +14197,7 @@ type ValidateSchemaKeyspaceRequest struct {
func (x *ValidateSchemaKeyspaceRequest) Reset() {
*x = ValidateSchemaKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[223]
+ mi := &file_vtctldata_proto_msgTypes[226]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14029,7 +14210,7 @@ func (x *ValidateSchemaKeyspaceRequest) String() string {
func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[223]
+ mi := &file_vtctldata_proto_msgTypes[226]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14042,7 +14223,7 @@ func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateSchemaKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateSchemaKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{223}
+ return file_vtctldata_proto_rawDescGZIP(), []int{226}
}
func (x *ValidateSchemaKeyspaceRequest) GetKeyspace() string {
@@ -14092,7 +14273,7 @@ type ValidateSchemaKeyspaceResponse struct {
func (x *ValidateSchemaKeyspaceResponse) Reset() {
*x = ValidateSchemaKeyspaceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[224]
+ mi := &file_vtctldata_proto_msgTypes[227]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14105,7 +14286,7 @@ func (x *ValidateSchemaKeyspaceResponse) String() string {
func (*ValidateSchemaKeyspaceResponse) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[224]
+ mi := &file_vtctldata_proto_msgTypes[227]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14118,7 +14299,7 @@ func (x *ValidateSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateSchemaKeyspaceResponse.ProtoReflect.Descriptor instead.
func (*ValidateSchemaKeyspaceResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{224}
+ return file_vtctldata_proto_rawDescGZIP(), []int{227}
}
func (x *ValidateSchemaKeyspaceResponse) GetResults() []string {
@@ -14148,7 +14329,7 @@ type ValidateShardRequest struct {
func (x *ValidateShardRequest) Reset() {
*x = ValidateShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[225]
+ mi := &file_vtctldata_proto_msgTypes[228]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14161,7 +14342,7 @@ func (x *ValidateShardRequest) String() string {
func (*ValidateShardRequest) ProtoMessage() {}
func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[225]
+ mi := &file_vtctldata_proto_msgTypes[228]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14174,7 +14355,7 @@ func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateShardRequest.ProtoReflect.Descriptor instead.
func (*ValidateShardRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{225}
+ return file_vtctldata_proto_rawDescGZIP(), []int{228}
}
func (x *ValidateShardRequest) GetKeyspace() string {
@@ -14209,7 +14390,7 @@ type ValidateShardResponse struct {
func (x *ValidateShardResponse) Reset() {
*x = ValidateShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[226]
+ mi := &file_vtctldata_proto_msgTypes[229]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14222,7 +14403,7 @@ func (x *ValidateShardResponse) String() string {
func (*ValidateShardResponse) ProtoMessage() {}
func (x *ValidateShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[226]
+ mi := &file_vtctldata_proto_msgTypes[229]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14235,7 +14416,7 @@ func (x *ValidateShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateShardResponse.ProtoReflect.Descriptor instead.
func (*ValidateShardResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{226}
+ return file_vtctldata_proto_rawDescGZIP(), []int{229}
}
func (x *ValidateShardResponse) GetResults() []string {
@@ -14256,7 +14437,7 @@ type ValidateVersionKeyspaceRequest struct {
func (x *ValidateVersionKeyspaceRequest) Reset() {
*x = ValidateVersionKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[227]
+ mi := &file_vtctldata_proto_msgTypes[230]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14269,7 +14450,7 @@ func (x *ValidateVersionKeyspaceRequest) String() string {
func (*ValidateVersionKeyspaceRequest) ProtoMessage() {}
func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[227]
+ mi := &file_vtctldata_proto_msgTypes[230]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14282,7 +14463,7 @@ func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateVersionKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{227}
+ return file_vtctldata_proto_rawDescGZIP(), []int{230}
}
func (x *ValidateVersionKeyspaceRequest) GetKeyspace() string {
@@ -14304,7 +14485,7 @@ type ValidateVersionKeyspaceResponse struct {
func (x *ValidateVersionKeyspaceResponse) Reset() {
*x = ValidateVersionKeyspaceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[228]
+ mi := &file_vtctldata_proto_msgTypes[231]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14317,7 +14498,7 @@ func (x *ValidateVersionKeyspaceResponse) String() string {
func (*ValidateVersionKeyspaceResponse) ProtoMessage() {}
func (x *ValidateVersionKeyspaceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[228]
+ mi := &file_vtctldata_proto_msgTypes[231]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14330,7 +14511,7 @@ func (x *ValidateVersionKeyspaceResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionKeyspaceResponse.ProtoReflect.Descriptor instead.
func (*ValidateVersionKeyspaceResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{228}
+ return file_vtctldata_proto_rawDescGZIP(), []int{231}
}
func (x *ValidateVersionKeyspaceResponse) GetResults() []string {
@@ -14359,7 +14540,7 @@ type ValidateVersionShardRequest struct {
func (x *ValidateVersionShardRequest) Reset() {
*x = ValidateVersionShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[229]
+ mi := &file_vtctldata_proto_msgTypes[232]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14372,7 +14553,7 @@ func (x *ValidateVersionShardRequest) String() string {
func (*ValidateVersionShardRequest) ProtoMessage() {}
func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[229]
+ mi := &file_vtctldata_proto_msgTypes[232]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14385,7 +14566,7 @@ func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionShardRequest.ProtoReflect.Descriptor instead.
func (*ValidateVersionShardRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{229}
+ return file_vtctldata_proto_rawDescGZIP(), []int{232}
}
func (x *ValidateVersionShardRequest) GetKeyspace() string {
@@ -14413,7 +14594,7 @@ type ValidateVersionShardResponse struct {
func (x *ValidateVersionShardResponse) Reset() {
*x = ValidateVersionShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[230]
+ mi := &file_vtctldata_proto_msgTypes[233]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14426,7 +14607,7 @@ func (x *ValidateVersionShardResponse) String() string {
func (*ValidateVersionShardResponse) ProtoMessage() {}
func (x *ValidateVersionShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[230]
+ mi := &file_vtctldata_proto_msgTypes[233]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14439,7 +14620,7 @@ func (x *ValidateVersionShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionShardResponse.ProtoReflect.Descriptor instead.
func (*ValidateVersionShardResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{230}
+ return file_vtctldata_proto_rawDescGZIP(), []int{233}
}
func (x *ValidateVersionShardResponse) GetResults() []string {
@@ -14463,7 +14644,7 @@ type ValidateVSchemaRequest struct {
func (x *ValidateVSchemaRequest) Reset() {
*x = ValidateVSchemaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[231]
+ mi := &file_vtctldata_proto_msgTypes[234]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14476,7 +14657,7 @@ func (x *ValidateVSchemaRequest) String() string {
func (*ValidateVSchemaRequest) ProtoMessage() {}
func (x *ValidateVSchemaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[231]
+ mi := &file_vtctldata_proto_msgTypes[234]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14489,7 +14670,7 @@ func (x *ValidateVSchemaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVSchemaRequest.ProtoReflect.Descriptor instead.
func (*ValidateVSchemaRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{231}
+ return file_vtctldata_proto_rawDescGZIP(), []int{234}
}
func (x *ValidateVSchemaRequest) GetKeyspace() string {
@@ -14532,7 +14713,7 @@ type ValidateVSchemaResponse struct {
func (x *ValidateVSchemaResponse) Reset() {
*x = ValidateVSchemaResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[232]
+ mi := &file_vtctldata_proto_msgTypes[235]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14545,7 +14726,7 @@ func (x *ValidateVSchemaResponse) String() string {
func (*ValidateVSchemaResponse) ProtoMessage() {}
func (x *ValidateVSchemaResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[232]
+ mi := &file_vtctldata_proto_msgTypes[235]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14558,7 +14739,7 @@ func (x *ValidateVSchemaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVSchemaResponse.ProtoReflect.Descriptor instead.
func (*ValidateVSchemaResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{232}
+ return file_vtctldata_proto_rawDescGZIP(), []int{235}
}
func (x *ValidateVSchemaResponse) GetResults() []string {
@@ -14665,7 +14846,7 @@ type VDiffCreateRequest struct {
func (x *VDiffCreateRequest) Reset() {
*x = VDiffCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[233]
+ mi := &file_vtctldata_proto_msgTypes[236]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14678,7 +14859,7 @@ func (x *VDiffCreateRequest) String() string {
func (*VDiffCreateRequest) ProtoMessage() {}
func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[233]
+ mi := &file_vtctldata_proto_msgTypes[236]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14691,7 +14872,7 @@ func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCreateRequest.ProtoReflect.Descriptor instead.
func (*VDiffCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{233}
+ return file_vtctldata_proto_rawDescGZIP(), []int{236}
}
func (x *VDiffCreateRequest) GetWorkflow() string {
@@ -14861,7 +15042,7 @@ type VDiffCreateResponse struct {
func (x *VDiffCreateResponse) Reset() {
*x = VDiffCreateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[234]
+ mi := &file_vtctldata_proto_msgTypes[237]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14874,7 +15055,7 @@ func (x *VDiffCreateResponse) String() string {
func (*VDiffCreateResponse) ProtoMessage() {}
func (x *VDiffCreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[234]
+ mi := &file_vtctldata_proto_msgTypes[237]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14887,7 +15068,7 @@ func (x *VDiffCreateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCreateResponse.ProtoReflect.Descriptor instead.
func (*VDiffCreateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{234}
+ return file_vtctldata_proto_rawDescGZIP(), []int{237}
}
func (x *VDiffCreateResponse) GetUUID() string {
@@ -14911,7 +15092,7 @@ type VDiffDeleteRequest struct {
func (x *VDiffDeleteRequest) Reset() {
*x = VDiffDeleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[235]
+ mi := &file_vtctldata_proto_msgTypes[238]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14924,7 +15105,7 @@ func (x *VDiffDeleteRequest) String() string {
func (*VDiffDeleteRequest) ProtoMessage() {}
func (x *VDiffDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[235]
+ mi := &file_vtctldata_proto_msgTypes[238]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14937,7 +15118,7 @@ func (x *VDiffDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffDeleteRequest.ProtoReflect.Descriptor instead.
func (*VDiffDeleteRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{235}
+ return file_vtctldata_proto_rawDescGZIP(), []int{238}
}
func (x *VDiffDeleteRequest) GetWorkflow() string {
@@ -14970,7 +15151,7 @@ type VDiffDeleteResponse struct {
func (x *VDiffDeleteResponse) Reset() {
*x = VDiffDeleteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[236]
+ mi := &file_vtctldata_proto_msgTypes[239]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -14983,7 +15164,7 @@ func (x *VDiffDeleteResponse) String() string {
func (*VDiffDeleteResponse) ProtoMessage() {}
func (x *VDiffDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[236]
+ mi := &file_vtctldata_proto_msgTypes[239]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -14996,7 +15177,7 @@ func (x *VDiffDeleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffDeleteResponse.ProtoReflect.Descriptor instead.
func (*VDiffDeleteResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{236}
+ return file_vtctldata_proto_rawDescGZIP(), []int{239}
}
type VDiffResumeRequest struct {
@@ -15013,7 +15194,7 @@ type VDiffResumeRequest struct {
func (x *VDiffResumeRequest) Reset() {
*x = VDiffResumeRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[237]
+ mi := &file_vtctldata_proto_msgTypes[240]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15026,7 +15207,7 @@ func (x *VDiffResumeRequest) String() string {
func (*VDiffResumeRequest) ProtoMessage() {}
func (x *VDiffResumeRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[237]
+ mi := &file_vtctldata_proto_msgTypes[240]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15039,7 +15220,7 @@ func (x *VDiffResumeRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffResumeRequest.ProtoReflect.Descriptor instead.
func (*VDiffResumeRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{237}
+ return file_vtctldata_proto_rawDescGZIP(), []int{240}
}
func (x *VDiffResumeRequest) GetWorkflow() string {
@@ -15079,7 +15260,7 @@ type VDiffResumeResponse struct {
func (x *VDiffResumeResponse) Reset() {
*x = VDiffResumeResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[238]
+ mi := &file_vtctldata_proto_msgTypes[241]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15092,7 +15273,7 @@ func (x *VDiffResumeResponse) String() string {
func (*VDiffResumeResponse) ProtoMessage() {}
func (x *VDiffResumeResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[238]
+ mi := &file_vtctldata_proto_msgTypes[241]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15105,7 +15286,7 @@ func (x *VDiffResumeResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffResumeResponse.ProtoReflect.Descriptor instead.
func (*VDiffResumeResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{238}
+ return file_vtctldata_proto_rawDescGZIP(), []int{241}
}
type VDiffShowRequest struct {
@@ -15122,7 +15303,7 @@ type VDiffShowRequest struct {
func (x *VDiffShowRequest) Reset() {
*x = VDiffShowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[239]
+ mi := &file_vtctldata_proto_msgTypes[242]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15135,7 +15316,7 @@ func (x *VDiffShowRequest) String() string {
func (*VDiffShowRequest) ProtoMessage() {}
func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[239]
+ mi := &file_vtctldata_proto_msgTypes[242]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15148,7 +15329,7 @@ func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffShowRequest.ProtoReflect.Descriptor instead.
func (*VDiffShowRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{239}
+ return file_vtctldata_proto_rawDescGZIP(), []int{242}
}
func (x *VDiffShowRequest) GetWorkflow() string {
@@ -15184,7 +15365,7 @@ type VDiffShowResponse struct {
func (x *VDiffShowResponse) Reset() {
*x = VDiffShowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[240]
+ mi := &file_vtctldata_proto_msgTypes[243]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15197,7 +15378,7 @@ func (x *VDiffShowResponse) String() string {
func (*VDiffShowResponse) ProtoMessage() {}
func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[240]
+ mi := &file_vtctldata_proto_msgTypes[243]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15210,7 +15391,7 @@ func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffShowResponse.ProtoReflect.Descriptor instead.
func (*VDiffShowResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{240}
+ return file_vtctldata_proto_rawDescGZIP(), []int{243}
}
func (x *VDiffShowResponse) GetTabletResponses() map[string]*tabletmanagerdata.VDiffResponse {
@@ -15234,7 +15415,7 @@ type VDiffStopRequest struct {
func (x *VDiffStopRequest) Reset() {
*x = VDiffStopRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[241]
+ mi := &file_vtctldata_proto_msgTypes[244]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15247,7 +15428,7 @@ func (x *VDiffStopRequest) String() string {
func (*VDiffStopRequest) ProtoMessage() {}
func (x *VDiffStopRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[241]
+ mi := &file_vtctldata_proto_msgTypes[244]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15260,7 +15441,7 @@ func (x *VDiffStopRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffStopRequest.ProtoReflect.Descriptor instead.
func (*VDiffStopRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{241}
+ return file_vtctldata_proto_rawDescGZIP(), []int{244}
}
func (x *VDiffStopRequest) GetWorkflow() string {
@@ -15300,7 +15481,7 @@ type VDiffStopResponse struct {
func (x *VDiffStopResponse) Reset() {
*x = VDiffStopResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[242]
+ mi := &file_vtctldata_proto_msgTypes[245]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15313,7 +15494,7 @@ func (x *VDiffStopResponse) String() string {
func (*VDiffStopResponse) ProtoMessage() {}
func (x *VDiffStopResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[242]
+ mi := &file_vtctldata_proto_msgTypes[245]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15326,7 +15507,7 @@ func (x *VDiffStopResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffStopResponse.ProtoReflect.Descriptor instead.
func (*VDiffStopResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{242}
+ return file_vtctldata_proto_rawDescGZIP(), []int{245}
}
type WorkflowDeleteRequest struct {
@@ -15348,7 +15529,7 @@ type WorkflowDeleteRequest struct {
func (x *WorkflowDeleteRequest) Reset() {
*x = WorkflowDeleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[243]
+ mi := &file_vtctldata_proto_msgTypes[246]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15361,7 +15542,7 @@ func (x *WorkflowDeleteRequest) String() string {
func (*WorkflowDeleteRequest) ProtoMessage() {}
func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[243]
+ mi := &file_vtctldata_proto_msgTypes[246]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15374,7 +15555,7 @@ func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowDeleteRequest.ProtoReflect.Descriptor instead.
func (*WorkflowDeleteRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{243}
+ return file_vtctldata_proto_rawDescGZIP(), []int{246}
}
func (x *WorkflowDeleteRequest) GetKeyspace() string {
@@ -15431,7 +15612,7 @@ type WorkflowDeleteResponse struct {
func (x *WorkflowDeleteResponse) Reset() {
*x = WorkflowDeleteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[244]
+ mi := &file_vtctldata_proto_msgTypes[247]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15444,7 +15625,7 @@ func (x *WorkflowDeleteResponse) String() string {
func (*WorkflowDeleteResponse) ProtoMessage() {}
func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[244]
+ mi := &file_vtctldata_proto_msgTypes[247]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15457,7 +15638,7 @@ func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowDeleteResponse.ProtoReflect.Descriptor instead.
func (*WorkflowDeleteResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{244}
+ return file_vtctldata_proto_rawDescGZIP(), []int{247}
}
func (x *WorkflowDeleteResponse) GetSummary() string {
@@ -15487,7 +15668,7 @@ type WorkflowStatusRequest struct {
func (x *WorkflowStatusRequest) Reset() {
*x = WorkflowStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[245]
+ mi := &file_vtctldata_proto_msgTypes[248]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15500,7 +15681,7 @@ func (x *WorkflowStatusRequest) String() string {
func (*WorkflowStatusRequest) ProtoMessage() {}
func (x *WorkflowStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[245]
+ mi := &file_vtctldata_proto_msgTypes[248]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15513,7 +15694,7 @@ func (x *WorkflowStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowStatusRequest.ProtoReflect.Descriptor instead.
func (*WorkflowStatusRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{245}
+ return file_vtctldata_proto_rawDescGZIP(), []int{248}
}
func (x *WorkflowStatusRequest) GetKeyspace() string {
@@ -15551,7 +15732,7 @@ type WorkflowStatusResponse struct {
func (x *WorkflowStatusResponse) Reset() {
*x = WorkflowStatusResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[246]
+ mi := &file_vtctldata_proto_msgTypes[249]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15564,7 +15745,7 @@ func (x *WorkflowStatusResponse) String() string {
func (*WorkflowStatusResponse) ProtoMessage() {}
func (x *WorkflowStatusResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[246]
+ mi := &file_vtctldata_proto_msgTypes[249]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15577,7 +15758,7 @@ func (x *WorkflowStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowStatusResponse.ProtoReflect.Descriptor instead.
func (*WorkflowStatusResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{246}
+ return file_vtctldata_proto_rawDescGZIP(), []int{249}
}
func (x *WorkflowStatusResponse) GetTableCopyState() map[string]*WorkflowStatusResponse_TableCopyState {
@@ -15623,7 +15804,7 @@ type WorkflowSwitchTrafficRequest struct {
func (x *WorkflowSwitchTrafficRequest) Reset() {
*x = WorkflowSwitchTrafficRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[247]
+ mi := &file_vtctldata_proto_msgTypes[250]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15636,7 +15817,7 @@ func (x *WorkflowSwitchTrafficRequest) String() string {
func (*WorkflowSwitchTrafficRequest) ProtoMessage() {}
func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[247]
+ mi := &file_vtctldata_proto_msgTypes[250]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15649,7 +15830,7 @@ func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowSwitchTrafficRequest.ProtoReflect.Descriptor instead.
func (*WorkflowSwitchTrafficRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{247}
+ return file_vtctldata_proto_rawDescGZIP(), []int{250}
}
func (x *WorkflowSwitchTrafficRequest) GetKeyspace() string {
@@ -15750,7 +15931,7 @@ type WorkflowSwitchTrafficResponse struct {
func (x *WorkflowSwitchTrafficResponse) Reset() {
*x = WorkflowSwitchTrafficResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[248]
+ mi := &file_vtctldata_proto_msgTypes[251]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15763,7 +15944,7 @@ func (x *WorkflowSwitchTrafficResponse) String() string {
func (*WorkflowSwitchTrafficResponse) ProtoMessage() {}
func (x *WorkflowSwitchTrafficResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[248]
+ mi := &file_vtctldata_proto_msgTypes[251]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15776,7 +15957,7 @@ func (x *WorkflowSwitchTrafficResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowSwitchTrafficResponse.ProtoReflect.Descriptor instead.
func (*WorkflowSwitchTrafficResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{248}
+ return file_vtctldata_proto_rawDescGZIP(), []int{251}
}
func (x *WorkflowSwitchTrafficResponse) GetSummary() string {
@@ -15821,7 +16002,7 @@ type WorkflowUpdateRequest struct {
func (x *WorkflowUpdateRequest) Reset() {
*x = WorkflowUpdateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[249]
+ mi := &file_vtctldata_proto_msgTypes[252]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15834,7 +16015,7 @@ func (x *WorkflowUpdateRequest) String() string {
func (*WorkflowUpdateRequest) ProtoMessage() {}
func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[249]
+ mi := &file_vtctldata_proto_msgTypes[252]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15847,7 +16028,7 @@ func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowUpdateRequest.ProtoReflect.Descriptor instead.
func (*WorkflowUpdateRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{249}
+ return file_vtctldata_proto_rawDescGZIP(), []int{252}
}
func (x *WorkflowUpdateRequest) GetKeyspace() string {
@@ -15876,7 +16057,7 @@ type WorkflowUpdateResponse struct {
func (x *WorkflowUpdateResponse) Reset() {
*x = WorkflowUpdateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[250]
+ mi := &file_vtctldata_proto_msgTypes[253]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15889,7 +16070,7 @@ func (x *WorkflowUpdateResponse) String() string {
func (*WorkflowUpdateResponse) ProtoMessage() {}
func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[250]
+ mi := &file_vtctldata_proto_msgTypes[253]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15902,7 +16083,7 @@ func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowUpdateResponse.ProtoReflect.Descriptor instead.
func (*WorkflowUpdateResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{250}
+ return file_vtctldata_proto_rawDescGZIP(), []int{253}
}
func (x *WorkflowUpdateResponse) GetSummary() string {
@@ -15928,7 +16109,7 @@ type GetMirrorRulesRequest struct {
func (x *GetMirrorRulesRequest) Reset() {
*x = GetMirrorRulesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[251]
+ mi := &file_vtctldata_proto_msgTypes[254]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15941,7 +16122,7 @@ func (x *GetMirrorRulesRequest) String() string {
func (*GetMirrorRulesRequest) ProtoMessage() {}
func (x *GetMirrorRulesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[251]
+ mi := &file_vtctldata_proto_msgTypes[254]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15954,7 +16135,7 @@ func (x *GetMirrorRulesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetMirrorRulesRequest.ProtoReflect.Descriptor instead.
func (*GetMirrorRulesRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{251}
+ return file_vtctldata_proto_rawDescGZIP(), []int{254}
}
type GetMirrorRulesResponse struct {
@@ -15968,7 +16149,7 @@ type GetMirrorRulesResponse struct {
func (x *GetMirrorRulesResponse) Reset() {
*x = GetMirrorRulesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[252]
+ mi := &file_vtctldata_proto_msgTypes[255]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -15981,7 +16162,7 @@ func (x *GetMirrorRulesResponse) String() string {
func (*GetMirrorRulesResponse) ProtoMessage() {}
func (x *GetMirrorRulesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[252]
+ mi := &file_vtctldata_proto_msgTypes[255]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -15994,7 +16175,7 @@ func (x *GetMirrorRulesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetMirrorRulesResponse.ProtoReflect.Descriptor instead.
func (*GetMirrorRulesResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{252}
+ return file_vtctldata_proto_rawDescGZIP(), []int{255}
}
func (x *GetMirrorRulesResponse) GetMirrorRules() *vschema.MirrorRules {
@@ -16018,7 +16199,7 @@ type WorkflowMirrorTrafficRequest struct {
func (x *WorkflowMirrorTrafficRequest) Reset() {
*x = WorkflowMirrorTrafficRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[253]
+ mi := &file_vtctldata_proto_msgTypes[256]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16031,7 +16212,7 @@ func (x *WorkflowMirrorTrafficRequest) String() string {
func (*WorkflowMirrorTrafficRequest) ProtoMessage() {}
func (x *WorkflowMirrorTrafficRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[253]
+ mi := &file_vtctldata_proto_msgTypes[256]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16044,7 +16225,7 @@ func (x *WorkflowMirrorTrafficRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowMirrorTrafficRequest.ProtoReflect.Descriptor instead.
func (*WorkflowMirrorTrafficRequest) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{253}
+ return file_vtctldata_proto_rawDescGZIP(), []int{256}
}
func (x *WorkflowMirrorTrafficRequest) GetKeyspace() string {
@@ -16088,7 +16269,7 @@ type WorkflowMirrorTrafficResponse struct {
func (x *WorkflowMirrorTrafficResponse) Reset() {
*x = WorkflowMirrorTrafficResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[254]
+ mi := &file_vtctldata_proto_msgTypes[257]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16101,7 +16282,7 @@ func (x *WorkflowMirrorTrafficResponse) String() string {
func (*WorkflowMirrorTrafficResponse) ProtoMessage() {}
func (x *WorkflowMirrorTrafficResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[254]
+ mi := &file_vtctldata_proto_msgTypes[257]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16114,7 +16295,7 @@ func (x *WorkflowMirrorTrafficResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use WorkflowMirrorTrafficResponse.ProtoReflect.Descriptor instead.
func (*WorkflowMirrorTrafficResponse) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{254}
+ return file_vtctldata_proto_rawDescGZIP(), []int{257}
}
func (x *WorkflowMirrorTrafficResponse) GetSummary() string {
@@ -16150,7 +16331,7 @@ type Workflow_ReplicationLocation struct {
func (x *Workflow_ReplicationLocation) Reset() {
*x = Workflow_ReplicationLocation{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[257]
+ mi := &file_vtctldata_proto_msgTypes[260]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16163,7 +16344,7 @@ func (x *Workflow_ReplicationLocation) String() string {
func (*Workflow_ReplicationLocation) ProtoMessage() {}
func (x *Workflow_ReplicationLocation) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[257]
+ mi := &file_vtctldata_proto_msgTypes[260]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16206,7 +16387,7 @@ type Workflow_ShardStream struct {
func (x *Workflow_ShardStream) Reset() {
*x = Workflow_ShardStream{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[258]
+ mi := &file_vtctldata_proto_msgTypes[261]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16219,7 +16400,7 @@ func (x *Workflow_ShardStream) String() string {
func (*Workflow_ShardStream) ProtoMessage() {}
func (x *Workflow_ShardStream) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[258]
+ mi := &file_vtctldata_proto_msgTypes[261]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16294,7 +16475,7 @@ type Workflow_Stream struct {
func (x *Workflow_Stream) Reset() {
*x = Workflow_Stream{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[259]
+ mi := &file_vtctldata_proto_msgTypes[262]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16307,7 +16488,7 @@ func (x *Workflow_Stream) String() string {
func (*Workflow_Stream) ProtoMessage() {}
func (x *Workflow_Stream) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[259]
+ mi := &file_vtctldata_proto_msgTypes[262]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16476,7 +16657,7 @@ type Workflow_Stream_CopyState struct {
func (x *Workflow_Stream_CopyState) Reset() {
*x = Workflow_Stream_CopyState{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[260]
+ mi := &file_vtctldata_proto_msgTypes[263]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16489,7 +16670,7 @@ func (x *Workflow_Stream_CopyState) String() string {
func (*Workflow_Stream_CopyState) ProtoMessage() {}
func (x *Workflow_Stream_CopyState) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[260]
+ mi := &file_vtctldata_proto_msgTypes[263]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16544,7 +16725,7 @@ type Workflow_Stream_Log struct {
func (x *Workflow_Stream_Log) Reset() {
*x = Workflow_Stream_Log{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[261]
+ mi := &file_vtctldata_proto_msgTypes[264]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16557,7 +16738,7 @@ func (x *Workflow_Stream_Log) String() string {
func (*Workflow_Stream_Log) ProtoMessage() {}
func (x *Workflow_Stream_Log) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[261]
+ mi := &file_vtctldata_proto_msgTypes[264]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16641,7 +16822,7 @@ type Workflow_Stream_ThrottlerStatus struct {
func (x *Workflow_Stream_ThrottlerStatus) Reset() {
*x = Workflow_Stream_ThrottlerStatus{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[262]
+ mi := &file_vtctldata_proto_msgTypes[265]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16654,7 +16835,7 @@ func (x *Workflow_Stream_ThrottlerStatus) String() string {
func (*Workflow_Stream_ThrottlerStatus) ProtoMessage() {}
func (x *Workflow_Stream_ThrottlerStatus) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[262]
+ mi := &file_vtctldata_proto_msgTypes[265]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16695,7 +16876,7 @@ type ApplyVSchemaResponse_ParamList struct {
func (x *ApplyVSchemaResponse_ParamList) Reset() {
*x = ApplyVSchemaResponse_ParamList{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[265]
+ mi := &file_vtctldata_proto_msgTypes[268]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16708,7 +16889,7 @@ func (x *ApplyVSchemaResponse_ParamList) String() string {
func (*ApplyVSchemaResponse_ParamList) ProtoMessage() {}
func (x *ApplyVSchemaResponse_ParamList) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[265]
+ mi := &file_vtctldata_proto_msgTypes[268]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16742,7 +16923,7 @@ type GetSrvKeyspaceNamesResponse_NameList struct {
func (x *GetSrvKeyspaceNamesResponse_NameList) Reset() {
*x = GetSrvKeyspaceNamesResponse_NameList{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[277]
+ mi := &file_vtctldata_proto_msgTypes[280]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16755,7 +16936,7 @@ func (x *GetSrvKeyspaceNamesResponse_NameList) String() string {
func (*GetSrvKeyspaceNamesResponse_NameList) ProtoMessage() {}
func (x *GetSrvKeyspaceNamesResponse_NameList) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[277]
+ mi := &file_vtctldata_proto_msgTypes[280]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16791,7 +16972,7 @@ type MoveTablesCreateResponse_TabletInfo struct {
func (x *MoveTablesCreateResponse_TabletInfo) Reset() {
*x = MoveTablesCreateResponse_TabletInfo{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[281]
+ mi := &file_vtctldata_proto_msgTypes[284]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16804,7 +16985,7 @@ func (x *MoveTablesCreateResponse_TabletInfo) String() string {
func (*MoveTablesCreateResponse_TabletInfo) ProtoMessage() {}
func (x *MoveTablesCreateResponse_TabletInfo) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[281]
+ mi := &file_vtctldata_proto_msgTypes[284]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16817,7 +16998,7 @@ func (x *MoveTablesCreateResponse_TabletInfo) ProtoReflect() protoreflect.Messag
// Deprecated: Use MoveTablesCreateResponse_TabletInfo.ProtoReflect.Descriptor instead.
func (*MoveTablesCreateResponse_TabletInfo) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{149, 0}
+ return file_vtctldata_proto_rawDescGZIP(), []int{152, 0}
}
func (x *MoveTablesCreateResponse_TabletInfo) GetTablet() *topodata.TabletAlias {
@@ -16847,7 +17028,7 @@ type WorkflowDeleteResponse_TabletInfo struct {
func (x *WorkflowDeleteResponse_TabletInfo) Reset() {
*x = WorkflowDeleteResponse_TabletInfo{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[291]
+ mi := &file_vtctldata_proto_msgTypes[294]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16860,7 +17041,7 @@ func (x *WorkflowDeleteResponse_TabletInfo) String() string {
func (*WorkflowDeleteResponse_TabletInfo) ProtoMessage() {}
func (x *WorkflowDeleteResponse_TabletInfo) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[291]
+ mi := &file_vtctldata_proto_msgTypes[294]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16873,7 +17054,7 @@ func (x *WorkflowDeleteResponse_TabletInfo) ProtoReflect() protoreflect.Message
// Deprecated: Use WorkflowDeleteResponse_TabletInfo.ProtoReflect.Descriptor instead.
func (*WorkflowDeleteResponse_TabletInfo) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{244, 0}
+ return file_vtctldata_proto_rawDescGZIP(), []int{247, 0}
}
func (x *WorkflowDeleteResponse_TabletInfo) GetTablet() *topodata.TabletAlias {
@@ -16906,7 +17087,7 @@ type WorkflowStatusResponse_TableCopyState struct {
func (x *WorkflowStatusResponse_TableCopyState) Reset() {
*x = WorkflowStatusResponse_TableCopyState{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[292]
+ mi := &file_vtctldata_proto_msgTypes[295]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -16919,7 +17100,7 @@ func (x *WorkflowStatusResponse_TableCopyState) String() string {
func (*WorkflowStatusResponse_TableCopyState) ProtoMessage() {}
func (x *WorkflowStatusResponse_TableCopyState) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[292]
+ mi := &file_vtctldata_proto_msgTypes[295]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -16932,7 +17113,7 @@ func (x *WorkflowStatusResponse_TableCopyState) ProtoReflect() protoreflect.Mess
// Deprecated: Use WorkflowStatusResponse_TableCopyState.ProtoReflect.Descriptor instead.
func (*WorkflowStatusResponse_TableCopyState) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{246, 0}
+ return file_vtctldata_proto_rawDescGZIP(), []int{249, 0}
}
func (x *WorkflowStatusResponse_TableCopyState) GetRowsCopied() int64 {
@@ -16993,7 +17174,7 @@ type WorkflowStatusResponse_ShardStreamState struct {
func (x *WorkflowStatusResponse_ShardStreamState) Reset() {
*x = WorkflowStatusResponse_ShardStreamState{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[293]
+ mi := &file_vtctldata_proto_msgTypes[296]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -17006,7 +17187,7 @@ func (x *WorkflowStatusResponse_ShardStreamState) String() string {
func (*WorkflowStatusResponse_ShardStreamState) ProtoMessage() {}
func (x *WorkflowStatusResponse_ShardStreamState) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[293]
+ mi := &file_vtctldata_proto_msgTypes[296]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -17019,7 +17200,7 @@ func (x *WorkflowStatusResponse_ShardStreamState) ProtoReflect() protoreflect.Me
// Deprecated: Use WorkflowStatusResponse_ShardStreamState.ProtoReflect.Descriptor instead.
func (*WorkflowStatusResponse_ShardStreamState) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{246, 1}
+ return file_vtctldata_proto_rawDescGZIP(), []int{249, 1}
}
func (x *WorkflowStatusResponse_ShardStreamState) GetId() int32 {
@@ -17075,7 +17256,7 @@ type WorkflowStatusResponse_ShardStreams struct {
func (x *WorkflowStatusResponse_ShardStreams) Reset() {
*x = WorkflowStatusResponse_ShardStreams{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[294]
+ mi := &file_vtctldata_proto_msgTypes[297]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -17088,7 +17269,7 @@ func (x *WorkflowStatusResponse_ShardStreams) String() string {
func (*WorkflowStatusResponse_ShardStreams) ProtoMessage() {}
func (x *WorkflowStatusResponse_ShardStreams) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[294]
+ mi := &file_vtctldata_proto_msgTypes[297]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -17101,7 +17282,7 @@ func (x *WorkflowStatusResponse_ShardStreams) ProtoReflect() protoreflect.Messag
// Deprecated: Use WorkflowStatusResponse_ShardStreams.ProtoReflect.Descriptor instead.
func (*WorkflowStatusResponse_ShardStreams) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{246, 2}
+ return file_vtctldata_proto_rawDescGZIP(), []int{249, 2}
}
func (x *WorkflowStatusResponse_ShardStreams) GetStreams() []*WorkflowStatusResponse_ShardStreamState {
@@ -17125,7 +17306,7 @@ type WorkflowUpdateResponse_TabletInfo struct {
func (x *WorkflowUpdateResponse_TabletInfo) Reset() {
*x = WorkflowUpdateResponse_TabletInfo{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[297]
+ mi := &file_vtctldata_proto_msgTypes[300]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -17138,7 +17319,7 @@ func (x *WorkflowUpdateResponse_TabletInfo) String() string {
func (*WorkflowUpdateResponse_TabletInfo) ProtoMessage() {}
func (x *WorkflowUpdateResponse_TabletInfo) ProtoReflect() protoreflect.Message {
- mi := &file_vtctldata_proto_msgTypes[297]
+ mi := &file_vtctldata_proto_msgTypes[300]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -17151,7 +17332,7 @@ func (x *WorkflowUpdateResponse_TabletInfo) ProtoReflect() protoreflect.Message
// Deprecated: Use WorkflowUpdateResponse_TabletInfo.ProtoReflect.Descriptor instead.
func (*WorkflowUpdateResponse_TabletInfo) Descriptor() ([]byte, []int) {
- return file_vtctldata_proto_rawDescGZIP(), []int{250, 0}
+ return file_vtctldata_proto_rawDescGZIP(), []int{253, 0}
}
func (x *WorkflowUpdateResponse_TabletInfo) GetTablet() *topodata.TabletAlias {
@@ -18472,7 +18653,30 @@ var file_vtctldata_proto_rawDesc = []byte{
0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61,
0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
- 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x63,
+ 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2f,
+ 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64,
+ 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22,
+ 0xa0, 0x01, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61,
+ 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12,
+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
+ 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e,
+ 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52,
+ 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x68, 0x61,
+ 0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x63,
0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
0x64, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64,
@@ -19740,7 +19944,7 @@ func file_vtctldata_proto_rawDescGZIP() []byte {
}
var file_vtctldata_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
-var file_vtctldata_proto_msgTypes = make([]protoimpl.MessageInfo, 298)
+var file_vtctldata_proto_msgTypes = make([]protoimpl.MessageInfo, 301)
var file_vtctldata_proto_goTypes = []any{
(MaterializationIntent)(0), // 0: vtctldata.MaterializationIntent
(QueryOrdering)(0), // 1: vtctldata.QueryOrdering
@@ -19866,471 +20070,476 @@ var file_vtctldata_proto_goTypes = []any{
(*TopologyCell)(nil), // 121: vtctldata.TopologyCell
(*GetUnresolvedTransactionsRequest)(nil), // 122: vtctldata.GetUnresolvedTransactionsRequest
(*GetUnresolvedTransactionsResponse)(nil), // 123: vtctldata.GetUnresolvedTransactionsResponse
- (*ConcludeTransactionRequest)(nil), // 124: vtctldata.ConcludeTransactionRequest
- (*ConcludeTransactionResponse)(nil), // 125: vtctldata.ConcludeTransactionResponse
- (*GetVSchemaRequest)(nil), // 126: vtctldata.GetVSchemaRequest
- (*GetVersionRequest)(nil), // 127: vtctldata.GetVersionRequest
- (*GetVersionResponse)(nil), // 128: vtctldata.GetVersionResponse
- (*GetVSchemaResponse)(nil), // 129: vtctldata.GetVSchemaResponse
- (*GetWorkflowsRequest)(nil), // 130: vtctldata.GetWorkflowsRequest
- (*GetWorkflowsResponse)(nil), // 131: vtctldata.GetWorkflowsResponse
- (*InitShardPrimaryRequest)(nil), // 132: vtctldata.InitShardPrimaryRequest
- (*InitShardPrimaryResponse)(nil), // 133: vtctldata.InitShardPrimaryResponse
- (*LaunchSchemaMigrationRequest)(nil), // 134: vtctldata.LaunchSchemaMigrationRequest
- (*LaunchSchemaMigrationResponse)(nil), // 135: vtctldata.LaunchSchemaMigrationResponse
- (*LookupVindexCreateRequest)(nil), // 136: vtctldata.LookupVindexCreateRequest
- (*LookupVindexCreateResponse)(nil), // 137: vtctldata.LookupVindexCreateResponse
- (*LookupVindexExternalizeRequest)(nil), // 138: vtctldata.LookupVindexExternalizeRequest
- (*LookupVindexExternalizeResponse)(nil), // 139: vtctldata.LookupVindexExternalizeResponse
- (*MaterializeCreateRequest)(nil), // 140: vtctldata.MaterializeCreateRequest
- (*MaterializeCreateResponse)(nil), // 141: vtctldata.MaterializeCreateResponse
- (*MigrateCreateRequest)(nil), // 142: vtctldata.MigrateCreateRequest
- (*MigrateCompleteRequest)(nil), // 143: vtctldata.MigrateCompleteRequest
- (*MigrateCompleteResponse)(nil), // 144: vtctldata.MigrateCompleteResponse
- (*MountRegisterRequest)(nil), // 145: vtctldata.MountRegisterRequest
- (*MountRegisterResponse)(nil), // 146: vtctldata.MountRegisterResponse
- (*MountUnregisterRequest)(nil), // 147: vtctldata.MountUnregisterRequest
- (*MountUnregisterResponse)(nil), // 148: vtctldata.MountUnregisterResponse
- (*MountShowRequest)(nil), // 149: vtctldata.MountShowRequest
- (*MountShowResponse)(nil), // 150: vtctldata.MountShowResponse
- (*MountListRequest)(nil), // 151: vtctldata.MountListRequest
- (*MountListResponse)(nil), // 152: vtctldata.MountListResponse
- (*MoveTablesCreateRequest)(nil), // 153: vtctldata.MoveTablesCreateRequest
- (*MoveTablesCreateResponse)(nil), // 154: vtctldata.MoveTablesCreateResponse
- (*MoveTablesCompleteRequest)(nil), // 155: vtctldata.MoveTablesCompleteRequest
- (*MoveTablesCompleteResponse)(nil), // 156: vtctldata.MoveTablesCompleteResponse
- (*PingTabletRequest)(nil), // 157: vtctldata.PingTabletRequest
- (*PingTabletResponse)(nil), // 158: vtctldata.PingTabletResponse
- (*PlannedReparentShardRequest)(nil), // 159: vtctldata.PlannedReparentShardRequest
- (*PlannedReparentShardResponse)(nil), // 160: vtctldata.PlannedReparentShardResponse
- (*RebuildKeyspaceGraphRequest)(nil), // 161: vtctldata.RebuildKeyspaceGraphRequest
- (*RebuildKeyspaceGraphResponse)(nil), // 162: vtctldata.RebuildKeyspaceGraphResponse
- (*RebuildVSchemaGraphRequest)(nil), // 163: vtctldata.RebuildVSchemaGraphRequest
- (*RebuildVSchemaGraphResponse)(nil), // 164: vtctldata.RebuildVSchemaGraphResponse
- (*RefreshStateRequest)(nil), // 165: vtctldata.RefreshStateRequest
- (*RefreshStateResponse)(nil), // 166: vtctldata.RefreshStateResponse
- (*RefreshStateByShardRequest)(nil), // 167: vtctldata.RefreshStateByShardRequest
- (*RefreshStateByShardResponse)(nil), // 168: vtctldata.RefreshStateByShardResponse
- (*ReloadSchemaRequest)(nil), // 169: vtctldata.ReloadSchemaRequest
- (*ReloadSchemaResponse)(nil), // 170: vtctldata.ReloadSchemaResponse
- (*ReloadSchemaKeyspaceRequest)(nil), // 171: vtctldata.ReloadSchemaKeyspaceRequest
- (*ReloadSchemaKeyspaceResponse)(nil), // 172: vtctldata.ReloadSchemaKeyspaceResponse
- (*ReloadSchemaShardRequest)(nil), // 173: vtctldata.ReloadSchemaShardRequest
- (*ReloadSchemaShardResponse)(nil), // 174: vtctldata.ReloadSchemaShardResponse
- (*RemoveBackupRequest)(nil), // 175: vtctldata.RemoveBackupRequest
- (*RemoveBackupResponse)(nil), // 176: vtctldata.RemoveBackupResponse
- (*RemoveKeyspaceCellRequest)(nil), // 177: vtctldata.RemoveKeyspaceCellRequest
- (*RemoveKeyspaceCellResponse)(nil), // 178: vtctldata.RemoveKeyspaceCellResponse
- (*RemoveShardCellRequest)(nil), // 179: vtctldata.RemoveShardCellRequest
- (*RemoveShardCellResponse)(nil), // 180: vtctldata.RemoveShardCellResponse
- (*ReparentTabletRequest)(nil), // 181: vtctldata.ReparentTabletRequest
- (*ReparentTabletResponse)(nil), // 182: vtctldata.ReparentTabletResponse
- (*ReshardCreateRequest)(nil), // 183: vtctldata.ReshardCreateRequest
- (*RestoreFromBackupRequest)(nil), // 184: vtctldata.RestoreFromBackupRequest
- (*RestoreFromBackupResponse)(nil), // 185: vtctldata.RestoreFromBackupResponse
- (*RetrySchemaMigrationRequest)(nil), // 186: vtctldata.RetrySchemaMigrationRequest
- (*RetrySchemaMigrationResponse)(nil), // 187: vtctldata.RetrySchemaMigrationResponse
- (*RunHealthCheckRequest)(nil), // 188: vtctldata.RunHealthCheckRequest
- (*RunHealthCheckResponse)(nil), // 189: vtctldata.RunHealthCheckResponse
- (*SetKeyspaceDurabilityPolicyRequest)(nil), // 190: vtctldata.SetKeyspaceDurabilityPolicyRequest
- (*SetKeyspaceDurabilityPolicyResponse)(nil), // 191: vtctldata.SetKeyspaceDurabilityPolicyResponse
- (*SetKeyspaceShardingInfoRequest)(nil), // 192: vtctldata.SetKeyspaceShardingInfoRequest
- (*SetKeyspaceShardingInfoResponse)(nil), // 193: vtctldata.SetKeyspaceShardingInfoResponse
- (*SetShardIsPrimaryServingRequest)(nil), // 194: vtctldata.SetShardIsPrimaryServingRequest
- (*SetShardIsPrimaryServingResponse)(nil), // 195: vtctldata.SetShardIsPrimaryServingResponse
- (*SetShardTabletControlRequest)(nil), // 196: vtctldata.SetShardTabletControlRequest
- (*SetShardTabletControlResponse)(nil), // 197: vtctldata.SetShardTabletControlResponse
- (*SetWritableRequest)(nil), // 198: vtctldata.SetWritableRequest
- (*SetWritableResponse)(nil), // 199: vtctldata.SetWritableResponse
- (*ShardReplicationAddRequest)(nil), // 200: vtctldata.ShardReplicationAddRequest
- (*ShardReplicationAddResponse)(nil), // 201: vtctldata.ShardReplicationAddResponse
- (*ShardReplicationFixRequest)(nil), // 202: vtctldata.ShardReplicationFixRequest
- (*ShardReplicationFixResponse)(nil), // 203: vtctldata.ShardReplicationFixResponse
- (*ShardReplicationPositionsRequest)(nil), // 204: vtctldata.ShardReplicationPositionsRequest
- (*ShardReplicationPositionsResponse)(nil), // 205: vtctldata.ShardReplicationPositionsResponse
- (*ShardReplicationRemoveRequest)(nil), // 206: vtctldata.ShardReplicationRemoveRequest
- (*ShardReplicationRemoveResponse)(nil), // 207: vtctldata.ShardReplicationRemoveResponse
- (*SleepTabletRequest)(nil), // 208: vtctldata.SleepTabletRequest
- (*SleepTabletResponse)(nil), // 209: vtctldata.SleepTabletResponse
- (*SourceShardAddRequest)(nil), // 210: vtctldata.SourceShardAddRequest
- (*SourceShardAddResponse)(nil), // 211: vtctldata.SourceShardAddResponse
- (*SourceShardDeleteRequest)(nil), // 212: vtctldata.SourceShardDeleteRequest
- (*SourceShardDeleteResponse)(nil), // 213: vtctldata.SourceShardDeleteResponse
- (*StartReplicationRequest)(nil), // 214: vtctldata.StartReplicationRequest
- (*StartReplicationResponse)(nil), // 215: vtctldata.StartReplicationResponse
- (*StopReplicationRequest)(nil), // 216: vtctldata.StopReplicationRequest
- (*StopReplicationResponse)(nil), // 217: vtctldata.StopReplicationResponse
- (*TabletExternallyReparentedRequest)(nil), // 218: vtctldata.TabletExternallyReparentedRequest
- (*TabletExternallyReparentedResponse)(nil), // 219: vtctldata.TabletExternallyReparentedResponse
- (*UpdateCellInfoRequest)(nil), // 220: vtctldata.UpdateCellInfoRequest
- (*UpdateCellInfoResponse)(nil), // 221: vtctldata.UpdateCellInfoResponse
- (*UpdateCellsAliasRequest)(nil), // 222: vtctldata.UpdateCellsAliasRequest
- (*UpdateCellsAliasResponse)(nil), // 223: vtctldata.UpdateCellsAliasResponse
- (*ValidateRequest)(nil), // 224: vtctldata.ValidateRequest
- (*ValidateResponse)(nil), // 225: vtctldata.ValidateResponse
- (*ValidateKeyspaceRequest)(nil), // 226: vtctldata.ValidateKeyspaceRequest
- (*ValidateKeyspaceResponse)(nil), // 227: vtctldata.ValidateKeyspaceResponse
- (*ValidateSchemaKeyspaceRequest)(nil), // 228: vtctldata.ValidateSchemaKeyspaceRequest
- (*ValidateSchemaKeyspaceResponse)(nil), // 229: vtctldata.ValidateSchemaKeyspaceResponse
- (*ValidateShardRequest)(nil), // 230: vtctldata.ValidateShardRequest
- (*ValidateShardResponse)(nil), // 231: vtctldata.ValidateShardResponse
- (*ValidateVersionKeyspaceRequest)(nil), // 232: vtctldata.ValidateVersionKeyspaceRequest
- (*ValidateVersionKeyspaceResponse)(nil), // 233: vtctldata.ValidateVersionKeyspaceResponse
- (*ValidateVersionShardRequest)(nil), // 234: vtctldata.ValidateVersionShardRequest
- (*ValidateVersionShardResponse)(nil), // 235: vtctldata.ValidateVersionShardResponse
- (*ValidateVSchemaRequest)(nil), // 236: vtctldata.ValidateVSchemaRequest
- (*ValidateVSchemaResponse)(nil), // 237: vtctldata.ValidateVSchemaResponse
- (*VDiffCreateRequest)(nil), // 238: vtctldata.VDiffCreateRequest
- (*VDiffCreateResponse)(nil), // 239: vtctldata.VDiffCreateResponse
- (*VDiffDeleteRequest)(nil), // 240: vtctldata.VDiffDeleteRequest
- (*VDiffDeleteResponse)(nil), // 241: vtctldata.VDiffDeleteResponse
- (*VDiffResumeRequest)(nil), // 242: vtctldata.VDiffResumeRequest
- (*VDiffResumeResponse)(nil), // 243: vtctldata.VDiffResumeResponse
- (*VDiffShowRequest)(nil), // 244: vtctldata.VDiffShowRequest
- (*VDiffShowResponse)(nil), // 245: vtctldata.VDiffShowResponse
- (*VDiffStopRequest)(nil), // 246: vtctldata.VDiffStopRequest
- (*VDiffStopResponse)(nil), // 247: vtctldata.VDiffStopResponse
- (*WorkflowDeleteRequest)(nil), // 248: vtctldata.WorkflowDeleteRequest
- (*WorkflowDeleteResponse)(nil), // 249: vtctldata.WorkflowDeleteResponse
- (*WorkflowStatusRequest)(nil), // 250: vtctldata.WorkflowStatusRequest
- (*WorkflowStatusResponse)(nil), // 251: vtctldata.WorkflowStatusResponse
- (*WorkflowSwitchTrafficRequest)(nil), // 252: vtctldata.WorkflowSwitchTrafficRequest
- (*WorkflowSwitchTrafficResponse)(nil), // 253: vtctldata.WorkflowSwitchTrafficResponse
- (*WorkflowUpdateRequest)(nil), // 254: vtctldata.WorkflowUpdateRequest
- (*WorkflowUpdateResponse)(nil), // 255: vtctldata.WorkflowUpdateResponse
- (*GetMirrorRulesRequest)(nil), // 256: vtctldata.GetMirrorRulesRequest
- (*GetMirrorRulesResponse)(nil), // 257: vtctldata.GetMirrorRulesResponse
- (*WorkflowMirrorTrafficRequest)(nil), // 258: vtctldata.WorkflowMirrorTrafficRequest
- (*WorkflowMirrorTrafficResponse)(nil), // 259: vtctldata.WorkflowMirrorTrafficResponse
- nil, // 260: vtctldata.WorkflowOptions.ConfigEntry
- nil, // 261: vtctldata.Workflow.ShardStreamsEntry
- (*Workflow_ReplicationLocation)(nil), // 262: vtctldata.Workflow.ReplicationLocation
- (*Workflow_ShardStream)(nil), // 263: vtctldata.Workflow.ShardStream
- (*Workflow_Stream)(nil), // 264: vtctldata.Workflow.Stream
- (*Workflow_Stream_CopyState)(nil), // 265: vtctldata.Workflow.Stream.CopyState
- (*Workflow_Stream_Log)(nil), // 266: vtctldata.Workflow.Stream.Log
- (*Workflow_Stream_ThrottlerStatus)(nil), // 267: vtctldata.Workflow.Stream.ThrottlerStatus
- nil, // 268: vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry
- nil, // 269: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry
- (*ApplyVSchemaResponse_ParamList)(nil), // 270: vtctldata.ApplyVSchemaResponse.ParamList
- nil, // 271: vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry
- nil, // 272: vtctldata.ChangeTabletTagsRequest.TagsEntry
- nil, // 273: vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry
- nil, // 274: vtctldata.ChangeTabletTagsResponse.AfterTagsEntry
- nil, // 275: vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry
- nil, // 276: vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry
- nil, // 277: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry
- nil, // 278: vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry
- nil, // 279: vtctldata.GetCellsAliasesResponse.AliasesEntry
- nil, // 280: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry
- nil, // 281: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry
- (*GetSrvKeyspaceNamesResponse_NameList)(nil), // 282: vtctldata.GetSrvKeyspaceNamesResponse.NameList
- nil, // 283: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry
- nil, // 284: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry
- nil, // 285: vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry
- (*MoveTablesCreateResponse_TabletInfo)(nil), // 286: vtctldata.MoveTablesCreateResponse.TabletInfo
- nil, // 287: vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry
- nil, // 288: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry
- nil, // 289: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry
- nil, // 290: vtctldata.ValidateResponse.ResultsByKeyspaceEntry
- nil, // 291: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry
- nil, // 292: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry
- nil, // 293: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry
- nil, // 294: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry
- nil, // 295: vtctldata.VDiffShowResponse.TabletResponsesEntry
- (*WorkflowDeleteResponse_TabletInfo)(nil), // 296: vtctldata.WorkflowDeleteResponse.TabletInfo
- (*WorkflowStatusResponse_TableCopyState)(nil), // 297: vtctldata.WorkflowStatusResponse.TableCopyState
- (*WorkflowStatusResponse_ShardStreamState)(nil), // 298: vtctldata.WorkflowStatusResponse.ShardStreamState
- (*WorkflowStatusResponse_ShardStreams)(nil), // 299: vtctldata.WorkflowStatusResponse.ShardStreams
- nil, // 300: vtctldata.WorkflowStatusResponse.TableCopyStateEntry
- nil, // 301: vtctldata.WorkflowStatusResponse.ShardStreamsEntry
- (*WorkflowUpdateResponse_TabletInfo)(nil), // 302: vtctldata.WorkflowUpdateResponse.TabletInfo
- (*logutil.Event)(nil), // 303: logutil.Event
- (tabletmanagerdata.TabletSelectionPreference)(0), // 304: tabletmanagerdata.TabletSelectionPreference
- (*topodata.Keyspace)(nil), // 305: topodata.Keyspace
- (*vttime.Time)(nil), // 306: vttime.Time
- (*topodata.TabletAlias)(nil), // 307: topodata.TabletAlias
- (*vttime.Duration)(nil), // 308: vttime.Duration
- (*topodata.Shard)(nil), // 309: topodata.Shard
- (*topodata.CellInfo)(nil), // 310: topodata.CellInfo
- (*vschema.KeyspaceRoutingRules)(nil), // 311: vschema.KeyspaceRoutingRules
- (*vschema.RoutingRules)(nil), // 312: vschema.RoutingRules
- (*vschema.ShardRoutingRules)(nil), // 313: vschema.ShardRoutingRules
- (*vtrpc.CallerID)(nil), // 314: vtrpc.CallerID
- (*vschema.Keyspace)(nil), // 315: vschema.Keyspace
- (topodata.TabletType)(0), // 316: topodata.TabletType
- (*topodata.Tablet)(nil), // 317: topodata.Tablet
- (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 318: tabletmanagerdata.CheckThrottlerResponse
- (topodata.KeyspaceType)(0), // 319: topodata.KeyspaceType
- (*query.QueryResult)(nil), // 320: query.QueryResult
- (*tabletmanagerdata.ExecuteHookRequest)(nil), // 321: tabletmanagerdata.ExecuteHookRequest
- (*tabletmanagerdata.ExecuteHookResponse)(nil), // 322: tabletmanagerdata.ExecuteHookResponse
- (*mysqlctl.BackupInfo)(nil), // 323: mysqlctl.BackupInfo
- (*replicationdata.FullStatus)(nil), // 324: replicationdata.FullStatus
- (*tabletmanagerdata.Permissions)(nil), // 325: tabletmanagerdata.Permissions
- (*tabletmanagerdata.SchemaDefinition)(nil), // 326: tabletmanagerdata.SchemaDefinition
- (*topodata.ThrottledAppRule)(nil), // 327: topodata.ThrottledAppRule
- (*vschema.SrvVSchema)(nil), // 328: vschema.SrvVSchema
- (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 329: tabletmanagerdata.GetThrottlerStatusResponse
- (*query.TransactionMetadata)(nil), // 330: query.TransactionMetadata
- (*query.Target)(nil), // 331: query.Target
- (*topodata.ShardReplicationError)(nil), // 332: topodata.ShardReplicationError
- (*topodata.KeyRange)(nil), // 333: topodata.KeyRange
- (*topodata.CellsAlias)(nil), // 334: topodata.CellsAlias
- (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 335: tabletmanagerdata.UpdateVReplicationWorkflowRequest
- (*vschema.MirrorRules)(nil), // 336: vschema.MirrorRules
- (*topodata.Shard_TabletControl)(nil), // 337: topodata.Shard.TabletControl
- (*binlogdata.BinlogSource)(nil), // 338: binlogdata.BinlogSource
- (*topodata.ShardReplication)(nil), // 339: topodata.ShardReplication
- (*topodata.SrvKeyspace)(nil), // 340: topodata.SrvKeyspace
- (*replicationdata.Status)(nil), // 341: replicationdata.Status
- (*tabletmanagerdata.VDiffResponse)(nil), // 342: tabletmanagerdata.VDiffResponse
+ (*GetTransactionInfoRequest)(nil), // 124: vtctldata.GetTransactionInfoRequest
+ (*ShardTransactionState)(nil), // 125: vtctldata.ShardTransactionState
+ (*GetTransactionInfoResponse)(nil), // 126: vtctldata.GetTransactionInfoResponse
+ (*ConcludeTransactionRequest)(nil), // 127: vtctldata.ConcludeTransactionRequest
+ (*ConcludeTransactionResponse)(nil), // 128: vtctldata.ConcludeTransactionResponse
+ (*GetVSchemaRequest)(nil), // 129: vtctldata.GetVSchemaRequest
+ (*GetVersionRequest)(nil), // 130: vtctldata.GetVersionRequest
+ (*GetVersionResponse)(nil), // 131: vtctldata.GetVersionResponse
+ (*GetVSchemaResponse)(nil), // 132: vtctldata.GetVSchemaResponse
+ (*GetWorkflowsRequest)(nil), // 133: vtctldata.GetWorkflowsRequest
+ (*GetWorkflowsResponse)(nil), // 134: vtctldata.GetWorkflowsResponse
+ (*InitShardPrimaryRequest)(nil), // 135: vtctldata.InitShardPrimaryRequest
+ (*InitShardPrimaryResponse)(nil), // 136: vtctldata.InitShardPrimaryResponse
+ (*LaunchSchemaMigrationRequest)(nil), // 137: vtctldata.LaunchSchemaMigrationRequest
+ (*LaunchSchemaMigrationResponse)(nil), // 138: vtctldata.LaunchSchemaMigrationResponse
+ (*LookupVindexCreateRequest)(nil), // 139: vtctldata.LookupVindexCreateRequest
+ (*LookupVindexCreateResponse)(nil), // 140: vtctldata.LookupVindexCreateResponse
+ (*LookupVindexExternalizeRequest)(nil), // 141: vtctldata.LookupVindexExternalizeRequest
+ (*LookupVindexExternalizeResponse)(nil), // 142: vtctldata.LookupVindexExternalizeResponse
+ (*MaterializeCreateRequest)(nil), // 143: vtctldata.MaterializeCreateRequest
+ (*MaterializeCreateResponse)(nil), // 144: vtctldata.MaterializeCreateResponse
+ (*MigrateCreateRequest)(nil), // 145: vtctldata.MigrateCreateRequest
+ (*MigrateCompleteRequest)(nil), // 146: vtctldata.MigrateCompleteRequest
+ (*MigrateCompleteResponse)(nil), // 147: vtctldata.MigrateCompleteResponse
+ (*MountRegisterRequest)(nil), // 148: vtctldata.MountRegisterRequest
+ (*MountRegisterResponse)(nil), // 149: vtctldata.MountRegisterResponse
+ (*MountUnregisterRequest)(nil), // 150: vtctldata.MountUnregisterRequest
+ (*MountUnregisterResponse)(nil), // 151: vtctldata.MountUnregisterResponse
+ (*MountShowRequest)(nil), // 152: vtctldata.MountShowRequest
+ (*MountShowResponse)(nil), // 153: vtctldata.MountShowResponse
+ (*MountListRequest)(nil), // 154: vtctldata.MountListRequest
+ (*MountListResponse)(nil), // 155: vtctldata.MountListResponse
+ (*MoveTablesCreateRequest)(nil), // 156: vtctldata.MoveTablesCreateRequest
+ (*MoveTablesCreateResponse)(nil), // 157: vtctldata.MoveTablesCreateResponse
+ (*MoveTablesCompleteRequest)(nil), // 158: vtctldata.MoveTablesCompleteRequest
+ (*MoveTablesCompleteResponse)(nil), // 159: vtctldata.MoveTablesCompleteResponse
+ (*PingTabletRequest)(nil), // 160: vtctldata.PingTabletRequest
+ (*PingTabletResponse)(nil), // 161: vtctldata.PingTabletResponse
+ (*PlannedReparentShardRequest)(nil), // 162: vtctldata.PlannedReparentShardRequest
+ (*PlannedReparentShardResponse)(nil), // 163: vtctldata.PlannedReparentShardResponse
+ (*RebuildKeyspaceGraphRequest)(nil), // 164: vtctldata.RebuildKeyspaceGraphRequest
+ (*RebuildKeyspaceGraphResponse)(nil), // 165: vtctldata.RebuildKeyspaceGraphResponse
+ (*RebuildVSchemaGraphRequest)(nil), // 166: vtctldata.RebuildVSchemaGraphRequest
+ (*RebuildVSchemaGraphResponse)(nil), // 167: vtctldata.RebuildVSchemaGraphResponse
+ (*RefreshStateRequest)(nil), // 168: vtctldata.RefreshStateRequest
+ (*RefreshStateResponse)(nil), // 169: vtctldata.RefreshStateResponse
+ (*RefreshStateByShardRequest)(nil), // 170: vtctldata.RefreshStateByShardRequest
+ (*RefreshStateByShardResponse)(nil), // 171: vtctldata.RefreshStateByShardResponse
+ (*ReloadSchemaRequest)(nil), // 172: vtctldata.ReloadSchemaRequest
+ (*ReloadSchemaResponse)(nil), // 173: vtctldata.ReloadSchemaResponse
+ (*ReloadSchemaKeyspaceRequest)(nil), // 174: vtctldata.ReloadSchemaKeyspaceRequest
+ (*ReloadSchemaKeyspaceResponse)(nil), // 175: vtctldata.ReloadSchemaKeyspaceResponse
+ (*ReloadSchemaShardRequest)(nil), // 176: vtctldata.ReloadSchemaShardRequest
+ (*ReloadSchemaShardResponse)(nil), // 177: vtctldata.ReloadSchemaShardResponse
+ (*RemoveBackupRequest)(nil), // 178: vtctldata.RemoveBackupRequest
+ (*RemoveBackupResponse)(nil), // 179: vtctldata.RemoveBackupResponse
+ (*RemoveKeyspaceCellRequest)(nil), // 180: vtctldata.RemoveKeyspaceCellRequest
+ (*RemoveKeyspaceCellResponse)(nil), // 181: vtctldata.RemoveKeyspaceCellResponse
+ (*RemoveShardCellRequest)(nil), // 182: vtctldata.RemoveShardCellRequest
+ (*RemoveShardCellResponse)(nil), // 183: vtctldata.RemoveShardCellResponse
+ (*ReparentTabletRequest)(nil), // 184: vtctldata.ReparentTabletRequest
+ (*ReparentTabletResponse)(nil), // 185: vtctldata.ReparentTabletResponse
+ (*ReshardCreateRequest)(nil), // 186: vtctldata.ReshardCreateRequest
+ (*RestoreFromBackupRequest)(nil), // 187: vtctldata.RestoreFromBackupRequest
+ (*RestoreFromBackupResponse)(nil), // 188: vtctldata.RestoreFromBackupResponse
+ (*RetrySchemaMigrationRequest)(nil), // 189: vtctldata.RetrySchemaMigrationRequest
+ (*RetrySchemaMigrationResponse)(nil), // 190: vtctldata.RetrySchemaMigrationResponse
+ (*RunHealthCheckRequest)(nil), // 191: vtctldata.RunHealthCheckRequest
+ (*RunHealthCheckResponse)(nil), // 192: vtctldata.RunHealthCheckResponse
+ (*SetKeyspaceDurabilityPolicyRequest)(nil), // 193: vtctldata.SetKeyspaceDurabilityPolicyRequest
+ (*SetKeyspaceDurabilityPolicyResponse)(nil), // 194: vtctldata.SetKeyspaceDurabilityPolicyResponse
+ (*SetKeyspaceShardingInfoRequest)(nil), // 195: vtctldata.SetKeyspaceShardingInfoRequest
+ (*SetKeyspaceShardingInfoResponse)(nil), // 196: vtctldata.SetKeyspaceShardingInfoResponse
+ (*SetShardIsPrimaryServingRequest)(nil), // 197: vtctldata.SetShardIsPrimaryServingRequest
+ (*SetShardIsPrimaryServingResponse)(nil), // 198: vtctldata.SetShardIsPrimaryServingResponse
+ (*SetShardTabletControlRequest)(nil), // 199: vtctldata.SetShardTabletControlRequest
+ (*SetShardTabletControlResponse)(nil), // 200: vtctldata.SetShardTabletControlResponse
+ (*SetWritableRequest)(nil), // 201: vtctldata.SetWritableRequest
+ (*SetWritableResponse)(nil), // 202: vtctldata.SetWritableResponse
+ (*ShardReplicationAddRequest)(nil), // 203: vtctldata.ShardReplicationAddRequest
+ (*ShardReplicationAddResponse)(nil), // 204: vtctldata.ShardReplicationAddResponse
+ (*ShardReplicationFixRequest)(nil), // 205: vtctldata.ShardReplicationFixRequest
+ (*ShardReplicationFixResponse)(nil), // 206: vtctldata.ShardReplicationFixResponse
+ (*ShardReplicationPositionsRequest)(nil), // 207: vtctldata.ShardReplicationPositionsRequest
+ (*ShardReplicationPositionsResponse)(nil), // 208: vtctldata.ShardReplicationPositionsResponse
+ (*ShardReplicationRemoveRequest)(nil), // 209: vtctldata.ShardReplicationRemoveRequest
+ (*ShardReplicationRemoveResponse)(nil), // 210: vtctldata.ShardReplicationRemoveResponse
+ (*SleepTabletRequest)(nil), // 211: vtctldata.SleepTabletRequest
+ (*SleepTabletResponse)(nil), // 212: vtctldata.SleepTabletResponse
+ (*SourceShardAddRequest)(nil), // 213: vtctldata.SourceShardAddRequest
+ (*SourceShardAddResponse)(nil), // 214: vtctldata.SourceShardAddResponse
+ (*SourceShardDeleteRequest)(nil), // 215: vtctldata.SourceShardDeleteRequest
+ (*SourceShardDeleteResponse)(nil), // 216: vtctldata.SourceShardDeleteResponse
+ (*StartReplicationRequest)(nil), // 217: vtctldata.StartReplicationRequest
+ (*StartReplicationResponse)(nil), // 218: vtctldata.StartReplicationResponse
+ (*StopReplicationRequest)(nil), // 219: vtctldata.StopReplicationRequest
+ (*StopReplicationResponse)(nil), // 220: vtctldata.StopReplicationResponse
+ (*TabletExternallyReparentedRequest)(nil), // 221: vtctldata.TabletExternallyReparentedRequest
+ (*TabletExternallyReparentedResponse)(nil), // 222: vtctldata.TabletExternallyReparentedResponse
+ (*UpdateCellInfoRequest)(nil), // 223: vtctldata.UpdateCellInfoRequest
+ (*UpdateCellInfoResponse)(nil), // 224: vtctldata.UpdateCellInfoResponse
+ (*UpdateCellsAliasRequest)(nil), // 225: vtctldata.UpdateCellsAliasRequest
+ (*UpdateCellsAliasResponse)(nil), // 226: vtctldata.UpdateCellsAliasResponse
+ (*ValidateRequest)(nil), // 227: vtctldata.ValidateRequest
+ (*ValidateResponse)(nil), // 228: vtctldata.ValidateResponse
+ (*ValidateKeyspaceRequest)(nil), // 229: vtctldata.ValidateKeyspaceRequest
+ (*ValidateKeyspaceResponse)(nil), // 230: vtctldata.ValidateKeyspaceResponse
+ (*ValidateSchemaKeyspaceRequest)(nil), // 231: vtctldata.ValidateSchemaKeyspaceRequest
+ (*ValidateSchemaKeyspaceResponse)(nil), // 232: vtctldata.ValidateSchemaKeyspaceResponse
+ (*ValidateShardRequest)(nil), // 233: vtctldata.ValidateShardRequest
+ (*ValidateShardResponse)(nil), // 234: vtctldata.ValidateShardResponse
+ (*ValidateVersionKeyspaceRequest)(nil), // 235: vtctldata.ValidateVersionKeyspaceRequest
+ (*ValidateVersionKeyspaceResponse)(nil), // 236: vtctldata.ValidateVersionKeyspaceResponse
+ (*ValidateVersionShardRequest)(nil), // 237: vtctldata.ValidateVersionShardRequest
+ (*ValidateVersionShardResponse)(nil), // 238: vtctldata.ValidateVersionShardResponse
+ (*ValidateVSchemaRequest)(nil), // 239: vtctldata.ValidateVSchemaRequest
+ (*ValidateVSchemaResponse)(nil), // 240: vtctldata.ValidateVSchemaResponse
+ (*VDiffCreateRequest)(nil), // 241: vtctldata.VDiffCreateRequest
+ (*VDiffCreateResponse)(nil), // 242: vtctldata.VDiffCreateResponse
+ (*VDiffDeleteRequest)(nil), // 243: vtctldata.VDiffDeleteRequest
+ (*VDiffDeleteResponse)(nil), // 244: vtctldata.VDiffDeleteResponse
+ (*VDiffResumeRequest)(nil), // 245: vtctldata.VDiffResumeRequest
+ (*VDiffResumeResponse)(nil), // 246: vtctldata.VDiffResumeResponse
+ (*VDiffShowRequest)(nil), // 247: vtctldata.VDiffShowRequest
+ (*VDiffShowResponse)(nil), // 248: vtctldata.VDiffShowResponse
+ (*VDiffStopRequest)(nil), // 249: vtctldata.VDiffStopRequest
+ (*VDiffStopResponse)(nil), // 250: vtctldata.VDiffStopResponse
+ (*WorkflowDeleteRequest)(nil), // 251: vtctldata.WorkflowDeleteRequest
+ (*WorkflowDeleteResponse)(nil), // 252: vtctldata.WorkflowDeleteResponse
+ (*WorkflowStatusRequest)(nil), // 253: vtctldata.WorkflowStatusRequest
+ (*WorkflowStatusResponse)(nil), // 254: vtctldata.WorkflowStatusResponse
+ (*WorkflowSwitchTrafficRequest)(nil), // 255: vtctldata.WorkflowSwitchTrafficRequest
+ (*WorkflowSwitchTrafficResponse)(nil), // 256: vtctldata.WorkflowSwitchTrafficResponse
+ (*WorkflowUpdateRequest)(nil), // 257: vtctldata.WorkflowUpdateRequest
+ (*WorkflowUpdateResponse)(nil), // 258: vtctldata.WorkflowUpdateResponse
+ (*GetMirrorRulesRequest)(nil), // 259: vtctldata.GetMirrorRulesRequest
+ (*GetMirrorRulesResponse)(nil), // 260: vtctldata.GetMirrorRulesResponse
+ (*WorkflowMirrorTrafficRequest)(nil), // 261: vtctldata.WorkflowMirrorTrafficRequest
+ (*WorkflowMirrorTrafficResponse)(nil), // 262: vtctldata.WorkflowMirrorTrafficResponse
+ nil, // 263: vtctldata.WorkflowOptions.ConfigEntry
+ nil, // 264: vtctldata.Workflow.ShardStreamsEntry
+ (*Workflow_ReplicationLocation)(nil), // 265: vtctldata.Workflow.ReplicationLocation
+ (*Workflow_ShardStream)(nil), // 266: vtctldata.Workflow.ShardStream
+ (*Workflow_Stream)(nil), // 267: vtctldata.Workflow.Stream
+ (*Workflow_Stream_CopyState)(nil), // 268: vtctldata.Workflow.Stream.CopyState
+ (*Workflow_Stream_Log)(nil), // 269: vtctldata.Workflow.Stream.Log
+ (*Workflow_Stream_ThrottlerStatus)(nil), // 270: vtctldata.Workflow.Stream.ThrottlerStatus
+ nil, // 271: vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry
+ nil, // 272: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry
+ (*ApplyVSchemaResponse_ParamList)(nil), // 273: vtctldata.ApplyVSchemaResponse.ParamList
+ nil, // 274: vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry
+ nil, // 275: vtctldata.ChangeTabletTagsRequest.TagsEntry
+ nil, // 276: vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry
+ nil, // 277: vtctldata.ChangeTabletTagsResponse.AfterTagsEntry
+ nil, // 278: vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry
+ nil, // 279: vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry
+ nil, // 280: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry
+ nil, // 281: vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry
+ nil, // 282: vtctldata.GetCellsAliasesResponse.AliasesEntry
+ nil, // 283: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry
+ nil, // 284: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry
+ (*GetSrvKeyspaceNamesResponse_NameList)(nil), // 285: vtctldata.GetSrvKeyspaceNamesResponse.NameList
+ nil, // 286: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry
+ nil, // 287: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry
+ nil, // 288: vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry
+ (*MoveTablesCreateResponse_TabletInfo)(nil), // 289: vtctldata.MoveTablesCreateResponse.TabletInfo
+ nil, // 290: vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry
+ nil, // 291: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry
+ nil, // 292: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry
+ nil, // 293: vtctldata.ValidateResponse.ResultsByKeyspaceEntry
+ nil, // 294: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry
+ nil, // 295: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry
+ nil, // 296: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry
+ nil, // 297: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry
+ nil, // 298: vtctldata.VDiffShowResponse.TabletResponsesEntry
+ (*WorkflowDeleteResponse_TabletInfo)(nil), // 299: vtctldata.WorkflowDeleteResponse.TabletInfo
+ (*WorkflowStatusResponse_TableCopyState)(nil), // 300: vtctldata.WorkflowStatusResponse.TableCopyState
+ (*WorkflowStatusResponse_ShardStreamState)(nil), // 301: vtctldata.WorkflowStatusResponse.ShardStreamState
+ (*WorkflowStatusResponse_ShardStreams)(nil), // 302: vtctldata.WorkflowStatusResponse.ShardStreams
+ nil, // 303: vtctldata.WorkflowStatusResponse.TableCopyStateEntry
+ nil, // 304: vtctldata.WorkflowStatusResponse.ShardStreamsEntry
+ (*WorkflowUpdateResponse_TabletInfo)(nil), // 305: vtctldata.WorkflowUpdateResponse.TabletInfo
+ (*logutil.Event)(nil), // 306: logutil.Event
+ (tabletmanagerdata.TabletSelectionPreference)(0), // 307: tabletmanagerdata.TabletSelectionPreference
+ (*topodata.Keyspace)(nil), // 308: topodata.Keyspace
+ (*vttime.Time)(nil), // 309: vttime.Time
+ (*topodata.TabletAlias)(nil), // 310: topodata.TabletAlias
+ (*vttime.Duration)(nil), // 311: vttime.Duration
+ (*topodata.Shard)(nil), // 312: topodata.Shard
+ (*topodata.CellInfo)(nil), // 313: topodata.CellInfo
+ (*vschema.KeyspaceRoutingRules)(nil), // 314: vschema.KeyspaceRoutingRules
+ (*vschema.RoutingRules)(nil), // 315: vschema.RoutingRules
+ (*vschema.ShardRoutingRules)(nil), // 316: vschema.ShardRoutingRules
+ (*vtrpc.CallerID)(nil), // 317: vtrpc.CallerID
+ (*vschema.Keyspace)(nil), // 318: vschema.Keyspace
+ (topodata.TabletType)(0), // 319: topodata.TabletType
+ (*topodata.Tablet)(nil), // 320: topodata.Tablet
+ (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 321: tabletmanagerdata.CheckThrottlerResponse
+ (topodata.KeyspaceType)(0), // 322: topodata.KeyspaceType
+ (*query.QueryResult)(nil), // 323: query.QueryResult
+ (*tabletmanagerdata.ExecuteHookRequest)(nil), // 324: tabletmanagerdata.ExecuteHookRequest
+ (*tabletmanagerdata.ExecuteHookResponse)(nil), // 325: tabletmanagerdata.ExecuteHookResponse
+ (*mysqlctl.BackupInfo)(nil), // 326: mysqlctl.BackupInfo
+ (*replicationdata.FullStatus)(nil), // 327: replicationdata.FullStatus
+ (*tabletmanagerdata.Permissions)(nil), // 328: tabletmanagerdata.Permissions
+ (*tabletmanagerdata.SchemaDefinition)(nil), // 329: tabletmanagerdata.SchemaDefinition
+ (*topodata.ThrottledAppRule)(nil), // 330: topodata.ThrottledAppRule
+ (*vschema.SrvVSchema)(nil), // 331: vschema.SrvVSchema
+ (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 332: tabletmanagerdata.GetThrottlerStatusResponse
+ (*query.TransactionMetadata)(nil), // 333: query.TransactionMetadata
+ (*query.Target)(nil), // 334: query.Target
+ (*topodata.ShardReplicationError)(nil), // 335: topodata.ShardReplicationError
+ (*topodata.KeyRange)(nil), // 336: topodata.KeyRange
+ (*topodata.CellsAlias)(nil), // 337: topodata.CellsAlias
+ (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 338: tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ (*vschema.MirrorRules)(nil), // 339: vschema.MirrorRules
+ (*topodata.Shard_TabletControl)(nil), // 340: topodata.Shard.TabletControl
+ (*binlogdata.BinlogSource)(nil), // 341: binlogdata.BinlogSource
+ (*topodata.ShardReplication)(nil), // 342: topodata.ShardReplication
+ (*topodata.SrvKeyspace)(nil), // 343: topodata.SrvKeyspace
+ (*replicationdata.Status)(nil), // 344: replicationdata.Status
+ (*tabletmanagerdata.VDiffResponse)(nil), // 345: tabletmanagerdata.VDiffResponse
}
var file_vtctldata_proto_depIdxs = []int32{
- 303, // 0: vtctldata.ExecuteVtctlCommandResponse.event:type_name -> logutil.Event
+ 306, // 0: vtctldata.ExecuteVtctlCommandResponse.event:type_name -> logutil.Event
7, // 1: vtctldata.MaterializeSettings.table_settings:type_name -> vtctldata.TableMaterializeSettings
0, // 2: vtctldata.MaterializeSettings.materialization_intent:type_name -> vtctldata.MaterializationIntent
- 304, // 3: vtctldata.MaterializeSettings.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 307, // 3: vtctldata.MaterializeSettings.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
12, // 4: vtctldata.MaterializeSettings.workflow_options:type_name -> vtctldata.WorkflowOptions
- 305, // 5: vtctldata.Keyspace.keyspace:type_name -> topodata.Keyspace
+ 308, // 5: vtctldata.Keyspace.keyspace:type_name -> topodata.Keyspace
3, // 6: vtctldata.SchemaMigration.strategy:type_name -> vtctldata.SchemaMigration.Strategy
- 306, // 7: vtctldata.SchemaMigration.added_at:type_name -> vttime.Time
- 306, // 8: vtctldata.SchemaMigration.requested_at:type_name -> vttime.Time
- 306, // 9: vtctldata.SchemaMigration.ready_at:type_name -> vttime.Time
- 306, // 10: vtctldata.SchemaMigration.started_at:type_name -> vttime.Time
- 306, // 11: vtctldata.SchemaMigration.liveness_timestamp:type_name -> vttime.Time
- 306, // 12: vtctldata.SchemaMigration.completed_at:type_name -> vttime.Time
- 306, // 13: vtctldata.SchemaMigration.cleaned_up_at:type_name -> vttime.Time
+ 309, // 7: vtctldata.SchemaMigration.added_at:type_name -> vttime.Time
+ 309, // 8: vtctldata.SchemaMigration.requested_at:type_name -> vttime.Time
+ 309, // 9: vtctldata.SchemaMigration.ready_at:type_name -> vttime.Time
+ 309, // 10: vtctldata.SchemaMigration.started_at:type_name -> vttime.Time
+ 309, // 11: vtctldata.SchemaMigration.liveness_timestamp:type_name -> vttime.Time
+ 309, // 12: vtctldata.SchemaMigration.completed_at:type_name -> vttime.Time
+ 309, // 13: vtctldata.SchemaMigration.cleaned_up_at:type_name -> vttime.Time
4, // 14: vtctldata.SchemaMigration.status:type_name -> vtctldata.SchemaMigration.Status
- 307, // 15: vtctldata.SchemaMigration.tablet:type_name -> topodata.TabletAlias
- 308, // 16: vtctldata.SchemaMigration.artifact_retention:type_name -> vttime.Duration
- 306, // 17: vtctldata.SchemaMigration.last_throttled_at:type_name -> vttime.Time
- 306, // 18: vtctldata.SchemaMigration.cancelled_at:type_name -> vttime.Time
- 306, // 19: vtctldata.SchemaMigration.reviewed_at:type_name -> vttime.Time
- 306, // 20: vtctldata.SchemaMigration.ready_to_complete_at:type_name -> vttime.Time
- 309, // 21: vtctldata.Shard.shard:type_name -> topodata.Shard
+ 310, // 15: vtctldata.SchemaMigration.tablet:type_name -> topodata.TabletAlias
+ 311, // 16: vtctldata.SchemaMigration.artifact_retention:type_name -> vttime.Duration
+ 309, // 17: vtctldata.SchemaMigration.last_throttled_at:type_name -> vttime.Time
+ 309, // 18: vtctldata.SchemaMigration.cancelled_at:type_name -> vttime.Time
+ 309, // 19: vtctldata.SchemaMigration.reviewed_at:type_name -> vttime.Time
+ 309, // 20: vtctldata.SchemaMigration.ready_to_complete_at:type_name -> vttime.Time
+ 312, // 21: vtctldata.Shard.shard:type_name -> topodata.Shard
2, // 22: vtctldata.WorkflowOptions.sharded_auto_increment_handling:type_name -> vtctldata.ShardedAutoIncrementHandling
- 260, // 23: vtctldata.WorkflowOptions.config:type_name -> vtctldata.WorkflowOptions.ConfigEntry
- 262, // 24: vtctldata.Workflow.source:type_name -> vtctldata.Workflow.ReplicationLocation
- 262, // 25: vtctldata.Workflow.target:type_name -> vtctldata.Workflow.ReplicationLocation
- 261, // 26: vtctldata.Workflow.shard_streams:type_name -> vtctldata.Workflow.ShardStreamsEntry
+ 263, // 23: vtctldata.WorkflowOptions.config:type_name -> vtctldata.WorkflowOptions.ConfigEntry
+ 265, // 24: vtctldata.Workflow.source:type_name -> vtctldata.Workflow.ReplicationLocation
+ 265, // 25: vtctldata.Workflow.target:type_name -> vtctldata.Workflow.ReplicationLocation
+ 264, // 26: vtctldata.Workflow.shard_streams:type_name -> vtctldata.Workflow.ShardStreamsEntry
12, // 27: vtctldata.Workflow.options:type_name -> vtctldata.WorkflowOptions
- 310, // 28: vtctldata.AddCellInfoRequest.cell_info:type_name -> topodata.CellInfo
- 311, // 29: vtctldata.ApplyKeyspaceRoutingRulesRequest.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
- 311, // 30: vtctldata.ApplyKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
- 312, // 31: vtctldata.ApplyRoutingRulesRequest.routing_rules:type_name -> vschema.RoutingRules
- 313, // 32: vtctldata.ApplyShardRoutingRulesRequest.shard_routing_rules:type_name -> vschema.ShardRoutingRules
- 308, // 33: vtctldata.ApplySchemaRequest.wait_replicas_timeout:type_name -> vttime.Duration
- 314, // 34: vtctldata.ApplySchemaRequest.caller_id:type_name -> vtrpc.CallerID
- 268, // 35: vtctldata.ApplySchemaResponse.rows_affected_by_shard:type_name -> vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry
- 315, // 36: vtctldata.ApplyVSchemaRequest.v_schema:type_name -> vschema.Keyspace
- 315, // 37: vtctldata.ApplyVSchemaResponse.v_schema:type_name -> vschema.Keyspace
- 269, // 38: vtctldata.ApplyVSchemaResponse.unknown_vindex_params:type_name -> vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry
- 307, // 39: vtctldata.BackupRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 40: vtctldata.BackupResponse.tablet_alias:type_name -> topodata.TabletAlias
- 303, // 41: vtctldata.BackupResponse.event:type_name -> logutil.Event
- 271, // 42: vtctldata.CancelSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry
- 307, // 43: vtctldata.ChangeTabletTagsRequest.tablet_alias:type_name -> topodata.TabletAlias
- 272, // 44: vtctldata.ChangeTabletTagsRequest.tags:type_name -> vtctldata.ChangeTabletTagsRequest.TagsEntry
- 273, // 45: vtctldata.ChangeTabletTagsResponse.before_tags:type_name -> vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry
- 274, // 46: vtctldata.ChangeTabletTagsResponse.after_tags:type_name -> vtctldata.ChangeTabletTagsResponse.AfterTagsEntry
- 307, // 47: vtctldata.ChangeTabletTypeRequest.tablet_alias:type_name -> topodata.TabletAlias
- 316, // 48: vtctldata.ChangeTabletTypeRequest.db_type:type_name -> topodata.TabletType
- 317, // 49: vtctldata.ChangeTabletTypeResponse.before_tablet:type_name -> topodata.Tablet
- 317, // 50: vtctldata.ChangeTabletTypeResponse.after_tablet:type_name -> topodata.Tablet
- 307, // 51: vtctldata.CheckThrottlerRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 52: vtctldata.CheckThrottlerResponse.tablet_alias:type_name -> topodata.TabletAlias
- 318, // 53: vtctldata.CheckThrottlerResponse.Check:type_name -> tabletmanagerdata.CheckThrottlerResponse
- 275, // 54: vtctldata.CleanupSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry
- 276, // 55: vtctldata.CompleteSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry
- 319, // 56: vtctldata.CreateKeyspaceRequest.type:type_name -> topodata.KeyspaceType
- 306, // 57: vtctldata.CreateKeyspaceRequest.snapshot_time:type_name -> vttime.Time
+ 313, // 28: vtctldata.AddCellInfoRequest.cell_info:type_name -> topodata.CellInfo
+ 314, // 29: vtctldata.ApplyKeyspaceRoutingRulesRequest.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
+ 314, // 30: vtctldata.ApplyKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
+ 315, // 31: vtctldata.ApplyRoutingRulesRequest.routing_rules:type_name -> vschema.RoutingRules
+ 316, // 32: vtctldata.ApplyShardRoutingRulesRequest.shard_routing_rules:type_name -> vschema.ShardRoutingRules
+ 311, // 33: vtctldata.ApplySchemaRequest.wait_replicas_timeout:type_name -> vttime.Duration
+ 317, // 34: vtctldata.ApplySchemaRequest.caller_id:type_name -> vtrpc.CallerID
+ 271, // 35: vtctldata.ApplySchemaResponse.rows_affected_by_shard:type_name -> vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry
+ 318, // 36: vtctldata.ApplyVSchemaRequest.v_schema:type_name -> vschema.Keyspace
+ 318, // 37: vtctldata.ApplyVSchemaResponse.v_schema:type_name -> vschema.Keyspace
+ 272, // 38: vtctldata.ApplyVSchemaResponse.unknown_vindex_params:type_name -> vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry
+ 310, // 39: vtctldata.BackupRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 40: vtctldata.BackupResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 306, // 41: vtctldata.BackupResponse.event:type_name -> logutil.Event
+ 274, // 42: vtctldata.CancelSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry
+ 310, // 43: vtctldata.ChangeTabletTagsRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 275, // 44: vtctldata.ChangeTabletTagsRequest.tags:type_name -> vtctldata.ChangeTabletTagsRequest.TagsEntry
+ 276, // 45: vtctldata.ChangeTabletTagsResponse.before_tags:type_name -> vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry
+ 277, // 46: vtctldata.ChangeTabletTagsResponse.after_tags:type_name -> vtctldata.ChangeTabletTagsResponse.AfterTagsEntry
+ 310, // 47: vtctldata.ChangeTabletTypeRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 319, // 48: vtctldata.ChangeTabletTypeRequest.db_type:type_name -> topodata.TabletType
+ 320, // 49: vtctldata.ChangeTabletTypeResponse.before_tablet:type_name -> topodata.Tablet
+ 320, // 50: vtctldata.ChangeTabletTypeResponse.after_tablet:type_name -> topodata.Tablet
+ 310, // 51: vtctldata.CheckThrottlerRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 52: vtctldata.CheckThrottlerResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 321, // 53: vtctldata.CheckThrottlerResponse.Check:type_name -> tabletmanagerdata.CheckThrottlerResponse
+ 278, // 54: vtctldata.CleanupSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry
+ 279, // 55: vtctldata.CompleteSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry
+ 322, // 56: vtctldata.CreateKeyspaceRequest.type:type_name -> topodata.KeyspaceType
+ 309, // 57: vtctldata.CreateKeyspaceRequest.snapshot_time:type_name -> vttime.Time
9, // 58: vtctldata.CreateKeyspaceResponse.keyspace:type_name -> vtctldata.Keyspace
9, // 59: vtctldata.CreateShardResponse.keyspace:type_name -> vtctldata.Keyspace
11, // 60: vtctldata.CreateShardResponse.shard:type_name -> vtctldata.Shard
11, // 61: vtctldata.DeleteShardsRequest.shards:type_name -> vtctldata.Shard
- 307, // 62: vtctldata.DeleteTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias
- 307, // 63: vtctldata.EmergencyReparentShardRequest.new_primary:type_name -> topodata.TabletAlias
- 307, // 64: vtctldata.EmergencyReparentShardRequest.ignore_replicas:type_name -> topodata.TabletAlias
- 308, // 65: vtctldata.EmergencyReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration
- 307, // 66: vtctldata.EmergencyReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias
- 307, // 67: vtctldata.EmergencyReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias
- 303, // 68: vtctldata.EmergencyReparentShardResponse.events:type_name -> logutil.Event
- 307, // 69: vtctldata.ExecuteFetchAsAppRequest.tablet_alias:type_name -> topodata.TabletAlias
- 320, // 70: vtctldata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
- 307, // 71: vtctldata.ExecuteFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias
- 320, // 72: vtctldata.ExecuteFetchAsDBAResponse.result:type_name -> query.QueryResult
- 307, // 73: vtctldata.ExecuteHookRequest.tablet_alias:type_name -> topodata.TabletAlias
- 321, // 74: vtctldata.ExecuteHookRequest.tablet_hook_request:type_name -> tabletmanagerdata.ExecuteHookRequest
- 322, // 75: vtctldata.ExecuteHookResponse.hook_result:type_name -> tabletmanagerdata.ExecuteHookResponse
- 307, // 76: vtctldata.ExecuteMultiFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias
- 320, // 77: vtctldata.ExecuteMultiFetchAsDBAResponse.results:type_name -> query.QueryResult
- 277, // 78: vtctldata.FindAllShardsInKeyspaceResponse.shards:type_name -> vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry
- 278, // 79: vtctldata.ForceCutOverSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry
- 323, // 80: vtctldata.GetBackupsResponse.backups:type_name -> mysqlctl.BackupInfo
- 310, // 81: vtctldata.GetCellInfoResponse.cell_info:type_name -> topodata.CellInfo
- 279, // 82: vtctldata.GetCellsAliasesResponse.aliases:type_name -> vtctldata.GetCellsAliasesResponse.AliasesEntry
- 307, // 83: vtctldata.GetFullStatusRequest.tablet_alias:type_name -> topodata.TabletAlias
- 324, // 84: vtctldata.GetFullStatusResponse.status:type_name -> replicationdata.FullStatus
+ 310, // 62: vtctldata.DeleteTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias
+ 310, // 63: vtctldata.EmergencyReparentShardRequest.new_primary:type_name -> topodata.TabletAlias
+ 310, // 64: vtctldata.EmergencyReparentShardRequest.ignore_replicas:type_name -> topodata.TabletAlias
+ 311, // 65: vtctldata.EmergencyReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration
+ 310, // 66: vtctldata.EmergencyReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias
+ 310, // 67: vtctldata.EmergencyReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias
+ 306, // 68: vtctldata.EmergencyReparentShardResponse.events:type_name -> logutil.Event
+ 310, // 69: vtctldata.ExecuteFetchAsAppRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 323, // 70: vtctldata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult
+ 310, // 71: vtctldata.ExecuteFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias
+ 323, // 72: vtctldata.ExecuteFetchAsDBAResponse.result:type_name -> query.QueryResult
+ 310, // 73: vtctldata.ExecuteHookRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 324, // 74: vtctldata.ExecuteHookRequest.tablet_hook_request:type_name -> tabletmanagerdata.ExecuteHookRequest
+ 325, // 75: vtctldata.ExecuteHookResponse.hook_result:type_name -> tabletmanagerdata.ExecuteHookResponse
+ 310, // 76: vtctldata.ExecuteMultiFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias
+ 323, // 77: vtctldata.ExecuteMultiFetchAsDBAResponse.results:type_name -> query.QueryResult
+ 280, // 78: vtctldata.FindAllShardsInKeyspaceResponse.shards:type_name -> vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry
+ 281, // 79: vtctldata.ForceCutOverSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry
+ 326, // 80: vtctldata.GetBackupsResponse.backups:type_name -> mysqlctl.BackupInfo
+ 313, // 81: vtctldata.GetCellInfoResponse.cell_info:type_name -> topodata.CellInfo
+ 282, // 82: vtctldata.GetCellsAliasesResponse.aliases:type_name -> vtctldata.GetCellsAliasesResponse.AliasesEntry
+ 310, // 83: vtctldata.GetFullStatusRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 327, // 84: vtctldata.GetFullStatusResponse.status:type_name -> replicationdata.FullStatus
9, // 85: vtctldata.GetKeyspacesResponse.keyspaces:type_name -> vtctldata.Keyspace
9, // 86: vtctldata.GetKeyspaceResponse.keyspace:type_name -> vtctldata.Keyspace
- 307, // 87: vtctldata.GetPermissionsRequest.tablet_alias:type_name -> topodata.TabletAlias
- 325, // 88: vtctldata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions
- 311, // 89: vtctldata.GetKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
- 312, // 90: vtctldata.GetRoutingRulesResponse.routing_rules:type_name -> vschema.RoutingRules
- 307, // 91: vtctldata.GetSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias
- 326, // 92: vtctldata.GetSchemaResponse.schema:type_name -> tabletmanagerdata.SchemaDefinition
+ 310, // 87: vtctldata.GetPermissionsRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 328, // 88: vtctldata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions
+ 314, // 89: vtctldata.GetKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules
+ 315, // 90: vtctldata.GetRoutingRulesResponse.routing_rules:type_name -> vschema.RoutingRules
+ 310, // 91: vtctldata.GetSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 329, // 92: vtctldata.GetSchemaResponse.schema:type_name -> tabletmanagerdata.SchemaDefinition
4, // 93: vtctldata.GetSchemaMigrationsRequest.status:type_name -> vtctldata.SchemaMigration.Status
- 308, // 94: vtctldata.GetSchemaMigrationsRequest.recent:type_name -> vttime.Duration
+ 311, // 94: vtctldata.GetSchemaMigrationsRequest.recent:type_name -> vttime.Duration
1, // 95: vtctldata.GetSchemaMigrationsRequest.order:type_name -> vtctldata.QueryOrdering
10, // 96: vtctldata.GetSchemaMigrationsResponse.migrations:type_name -> vtctldata.SchemaMigration
- 280, // 97: vtctldata.GetShardReplicationResponse.shard_replication_by_cell:type_name -> vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry
+ 283, // 97: vtctldata.GetShardReplicationResponse.shard_replication_by_cell:type_name -> vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry
11, // 98: vtctldata.GetShardResponse.shard:type_name -> vtctldata.Shard
- 313, // 99: vtctldata.GetShardRoutingRulesResponse.shard_routing_rules:type_name -> vschema.ShardRoutingRules
- 281, // 100: vtctldata.GetSrvKeyspaceNamesResponse.names:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry
- 283, // 101: vtctldata.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry
- 327, // 102: vtctldata.UpdateThrottlerConfigRequest.throttled_app:type_name -> topodata.ThrottledAppRule
- 328, // 103: vtctldata.GetSrvVSchemaResponse.srv_v_schema:type_name -> vschema.SrvVSchema
- 284, // 104: vtctldata.GetSrvVSchemasResponse.srv_v_schemas:type_name -> vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry
- 307, // 105: vtctldata.GetTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
- 317, // 106: vtctldata.GetTabletResponse.tablet:type_name -> topodata.Tablet
- 307, // 107: vtctldata.GetTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias
- 316, // 108: vtctldata.GetTabletsRequest.tablet_type:type_name -> topodata.TabletType
- 317, // 109: vtctldata.GetTabletsResponse.tablets:type_name -> topodata.Tablet
- 307, // 110: vtctldata.GetThrottlerStatusRequest.tablet_alias:type_name -> topodata.TabletAlias
- 329, // 111: vtctldata.GetThrottlerStatusResponse.status:type_name -> tabletmanagerdata.GetThrottlerStatusResponse
+ 316, // 99: vtctldata.GetShardRoutingRulesResponse.shard_routing_rules:type_name -> vschema.ShardRoutingRules
+ 284, // 100: vtctldata.GetSrvKeyspaceNamesResponse.names:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry
+ 286, // 101: vtctldata.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry
+ 330, // 102: vtctldata.UpdateThrottlerConfigRequest.throttled_app:type_name -> topodata.ThrottledAppRule
+ 331, // 103: vtctldata.GetSrvVSchemaResponse.srv_v_schema:type_name -> vschema.SrvVSchema
+ 287, // 104: vtctldata.GetSrvVSchemasResponse.srv_v_schemas:type_name -> vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry
+ 310, // 105: vtctldata.GetTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 320, // 106: vtctldata.GetTabletResponse.tablet:type_name -> topodata.Tablet
+ 310, // 107: vtctldata.GetTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias
+ 319, // 108: vtctldata.GetTabletsRequest.tablet_type:type_name -> topodata.TabletType
+ 320, // 109: vtctldata.GetTabletsResponse.tablets:type_name -> topodata.Tablet
+ 310, // 110: vtctldata.GetThrottlerStatusRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 332, // 111: vtctldata.GetThrottlerStatusResponse.status:type_name -> tabletmanagerdata.GetThrottlerStatusResponse
121, // 112: vtctldata.GetTopologyPathResponse.cell:type_name -> vtctldata.TopologyCell
- 330, // 113: vtctldata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
- 331, // 114: vtctldata.ConcludeTransactionRequest.participants:type_name -> query.Target
- 307, // 115: vtctldata.GetVersionRequest.tablet_alias:type_name -> topodata.TabletAlias
- 315, // 116: vtctldata.GetVSchemaResponse.v_schema:type_name -> vschema.Keyspace
- 13, // 117: vtctldata.GetWorkflowsResponse.workflows:type_name -> vtctldata.Workflow
- 307, // 118: vtctldata.InitShardPrimaryRequest.primary_elect_tablet_alias:type_name -> topodata.TabletAlias
- 308, // 119: vtctldata.InitShardPrimaryRequest.wait_replicas_timeout:type_name -> vttime.Duration
- 303, // 120: vtctldata.InitShardPrimaryResponse.events:type_name -> logutil.Event
- 285, // 121: vtctldata.LaunchSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry
- 315, // 122: vtctldata.LookupVindexCreateRequest.vindex:type_name -> vschema.Keyspace
- 316, // 123: vtctldata.LookupVindexCreateRequest.tablet_types:type_name -> topodata.TabletType
- 304, // 124: vtctldata.LookupVindexCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 8, // 125: vtctldata.MaterializeCreateRequest.settings:type_name -> vtctldata.MaterializeSettings
- 316, // 126: vtctldata.MigrateCreateRequest.tablet_types:type_name -> topodata.TabletType
- 304, // 127: vtctldata.MigrateCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 316, // 128: vtctldata.MoveTablesCreateRequest.tablet_types:type_name -> topodata.TabletType
- 304, // 129: vtctldata.MoveTablesCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 12, // 130: vtctldata.MoveTablesCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions
- 286, // 131: vtctldata.MoveTablesCreateResponse.details:type_name -> vtctldata.MoveTablesCreateResponse.TabletInfo
- 307, // 132: vtctldata.PingTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 133: vtctldata.PlannedReparentShardRequest.new_primary:type_name -> topodata.TabletAlias
- 307, // 134: vtctldata.PlannedReparentShardRequest.avoid_primary:type_name -> topodata.TabletAlias
- 308, // 135: vtctldata.PlannedReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration
- 308, // 136: vtctldata.PlannedReparentShardRequest.tolerable_replication_lag:type_name -> vttime.Duration
- 307, // 137: vtctldata.PlannedReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias
- 307, // 138: vtctldata.PlannedReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias
- 303, // 139: vtctldata.PlannedReparentShardResponse.events:type_name -> logutil.Event
- 307, // 140: vtctldata.RefreshStateRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 141: vtctldata.ReloadSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias
- 303, // 142: vtctldata.ReloadSchemaKeyspaceResponse.events:type_name -> logutil.Event
- 303, // 143: vtctldata.ReloadSchemaShardResponse.events:type_name -> logutil.Event
- 307, // 144: vtctldata.ReparentTabletRequest.tablet:type_name -> topodata.TabletAlias
- 307, // 145: vtctldata.ReparentTabletResponse.primary:type_name -> topodata.TabletAlias
- 316, // 146: vtctldata.ReshardCreateRequest.tablet_types:type_name -> topodata.TabletType
- 304, // 147: vtctldata.ReshardCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 12, // 148: vtctldata.ReshardCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions
- 307, // 149: vtctldata.RestoreFromBackupRequest.tablet_alias:type_name -> topodata.TabletAlias
- 306, // 150: vtctldata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
- 306, // 151: vtctldata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
- 307, // 152: vtctldata.RestoreFromBackupResponse.tablet_alias:type_name -> topodata.TabletAlias
- 303, // 153: vtctldata.RestoreFromBackupResponse.event:type_name -> logutil.Event
- 287, // 154: vtctldata.RetrySchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry
- 307, // 155: vtctldata.RunHealthCheckRequest.tablet_alias:type_name -> topodata.TabletAlias
- 305, // 156: vtctldata.SetKeyspaceDurabilityPolicyResponse.keyspace:type_name -> topodata.Keyspace
- 305, // 157: vtctldata.SetKeyspaceShardingInfoResponse.keyspace:type_name -> topodata.Keyspace
- 309, // 158: vtctldata.SetShardIsPrimaryServingResponse.shard:type_name -> topodata.Shard
- 316, // 159: vtctldata.SetShardTabletControlRequest.tablet_type:type_name -> topodata.TabletType
- 309, // 160: vtctldata.SetShardTabletControlResponse.shard:type_name -> topodata.Shard
- 307, // 161: vtctldata.SetWritableRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 162: vtctldata.ShardReplicationAddRequest.tablet_alias:type_name -> topodata.TabletAlias
- 332, // 163: vtctldata.ShardReplicationFixResponse.error:type_name -> topodata.ShardReplicationError
- 288, // 164: vtctldata.ShardReplicationPositionsResponse.replication_statuses:type_name -> vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry
- 289, // 165: vtctldata.ShardReplicationPositionsResponse.tablet_map:type_name -> vtctldata.ShardReplicationPositionsResponse.TabletMapEntry
- 307, // 166: vtctldata.ShardReplicationRemoveRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 167: vtctldata.SleepTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
- 308, // 168: vtctldata.SleepTabletRequest.duration:type_name -> vttime.Duration
- 333, // 169: vtctldata.SourceShardAddRequest.key_range:type_name -> topodata.KeyRange
- 309, // 170: vtctldata.SourceShardAddResponse.shard:type_name -> topodata.Shard
- 309, // 171: vtctldata.SourceShardDeleteResponse.shard:type_name -> topodata.Shard
- 307, // 172: vtctldata.StartReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 173: vtctldata.StopReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias
- 307, // 174: vtctldata.TabletExternallyReparentedRequest.tablet:type_name -> topodata.TabletAlias
- 307, // 175: vtctldata.TabletExternallyReparentedResponse.new_primary:type_name -> topodata.TabletAlias
- 307, // 176: vtctldata.TabletExternallyReparentedResponse.old_primary:type_name -> topodata.TabletAlias
- 310, // 177: vtctldata.UpdateCellInfoRequest.cell_info:type_name -> topodata.CellInfo
- 310, // 178: vtctldata.UpdateCellInfoResponse.cell_info:type_name -> topodata.CellInfo
- 334, // 179: vtctldata.UpdateCellsAliasRequest.cells_alias:type_name -> topodata.CellsAlias
- 334, // 180: vtctldata.UpdateCellsAliasResponse.cells_alias:type_name -> topodata.CellsAlias
- 290, // 181: vtctldata.ValidateResponse.results_by_keyspace:type_name -> vtctldata.ValidateResponse.ResultsByKeyspaceEntry
- 291, // 182: vtctldata.ValidateKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry
- 292, // 183: vtctldata.ValidateSchemaKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry
- 293, // 184: vtctldata.ValidateVersionKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry
- 294, // 185: vtctldata.ValidateVSchemaResponse.results_by_shard:type_name -> vtctldata.ValidateVSchemaResponse.ResultsByShardEntry
- 316, // 186: vtctldata.VDiffCreateRequest.tablet_types:type_name -> topodata.TabletType
- 304, // 187: vtctldata.VDiffCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 308, // 188: vtctldata.VDiffCreateRequest.filtered_replication_wait_time:type_name -> vttime.Duration
- 308, // 189: vtctldata.VDiffCreateRequest.wait_update_interval:type_name -> vttime.Duration
- 308, // 190: vtctldata.VDiffCreateRequest.max_diff_duration:type_name -> vttime.Duration
- 295, // 191: vtctldata.VDiffShowResponse.tablet_responses:type_name -> vtctldata.VDiffShowResponse.TabletResponsesEntry
- 296, // 192: vtctldata.WorkflowDeleteResponse.details:type_name -> vtctldata.WorkflowDeleteResponse.TabletInfo
- 300, // 193: vtctldata.WorkflowStatusResponse.table_copy_state:type_name -> vtctldata.WorkflowStatusResponse.TableCopyStateEntry
- 301, // 194: vtctldata.WorkflowStatusResponse.shard_streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamsEntry
- 316, // 195: vtctldata.WorkflowSwitchTrafficRequest.tablet_types:type_name -> topodata.TabletType
- 308, // 196: vtctldata.WorkflowSwitchTrafficRequest.max_replication_lag_allowed:type_name -> vttime.Duration
- 308, // 197: vtctldata.WorkflowSwitchTrafficRequest.timeout:type_name -> vttime.Duration
- 335, // 198: vtctldata.WorkflowUpdateRequest.tablet_request:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
- 302, // 199: vtctldata.WorkflowUpdateResponse.details:type_name -> vtctldata.WorkflowUpdateResponse.TabletInfo
- 336, // 200: vtctldata.GetMirrorRulesResponse.mirror_rules:type_name -> vschema.MirrorRules
- 316, // 201: vtctldata.WorkflowMirrorTrafficRequest.tablet_types:type_name -> topodata.TabletType
- 263, // 202: vtctldata.Workflow.ShardStreamsEntry.value:type_name -> vtctldata.Workflow.ShardStream
- 264, // 203: vtctldata.Workflow.ShardStream.streams:type_name -> vtctldata.Workflow.Stream
- 337, // 204: vtctldata.Workflow.ShardStream.tablet_controls:type_name -> topodata.Shard.TabletControl
- 307, // 205: vtctldata.Workflow.Stream.tablet:type_name -> topodata.TabletAlias
- 338, // 206: vtctldata.Workflow.Stream.binlog_source:type_name -> binlogdata.BinlogSource
- 306, // 207: vtctldata.Workflow.Stream.transaction_timestamp:type_name -> vttime.Time
- 306, // 208: vtctldata.Workflow.Stream.time_updated:type_name -> vttime.Time
- 265, // 209: vtctldata.Workflow.Stream.copy_states:type_name -> vtctldata.Workflow.Stream.CopyState
- 266, // 210: vtctldata.Workflow.Stream.logs:type_name -> vtctldata.Workflow.Stream.Log
- 267, // 211: vtctldata.Workflow.Stream.throttler_status:type_name -> vtctldata.Workflow.Stream.ThrottlerStatus
- 316, // 212: vtctldata.Workflow.Stream.tablet_types:type_name -> topodata.TabletType
- 304, // 213: vtctldata.Workflow.Stream.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
- 306, // 214: vtctldata.Workflow.Stream.Log.created_at:type_name -> vttime.Time
- 306, // 215: vtctldata.Workflow.Stream.Log.updated_at:type_name -> vttime.Time
- 306, // 216: vtctldata.Workflow.Stream.ThrottlerStatus.time_throttled:type_name -> vttime.Time
- 270, // 217: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry.value:type_name -> vtctldata.ApplyVSchemaResponse.ParamList
- 11, // 218: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry.value:type_name -> vtctldata.Shard
- 334, // 219: vtctldata.GetCellsAliasesResponse.AliasesEntry.value:type_name -> topodata.CellsAlias
- 339, // 220: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry.value:type_name -> topodata.ShardReplication
- 282, // 221: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry.value:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NameList
- 340, // 222: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> topodata.SrvKeyspace
- 328, // 223: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry.value:type_name -> vschema.SrvVSchema
- 307, // 224: vtctldata.MoveTablesCreateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
- 341, // 225: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry.value:type_name -> replicationdata.Status
- 317, // 226: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry.value:type_name -> topodata.Tablet
- 227, // 227: vtctldata.ValidateResponse.ResultsByKeyspaceEntry.value:type_name -> vtctldata.ValidateKeyspaceResponse
- 231, // 228: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
- 231, // 229: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
- 231, // 230: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
- 231, // 231: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
- 342, // 232: vtctldata.VDiffShowResponse.TabletResponsesEntry.value:type_name -> tabletmanagerdata.VDiffResponse
- 307, // 233: vtctldata.WorkflowDeleteResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
- 307, // 234: vtctldata.WorkflowStatusResponse.ShardStreamState.tablet:type_name -> topodata.TabletAlias
- 298, // 235: vtctldata.WorkflowStatusResponse.ShardStreams.streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamState
- 297, // 236: vtctldata.WorkflowStatusResponse.TableCopyStateEntry.value:type_name -> vtctldata.WorkflowStatusResponse.TableCopyState
- 299, // 237: vtctldata.WorkflowStatusResponse.ShardStreamsEntry.value:type_name -> vtctldata.WorkflowStatusResponse.ShardStreams
- 307, // 238: vtctldata.WorkflowUpdateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
- 239, // [239:239] is the sub-list for method output_type
- 239, // [239:239] is the sub-list for method input_type
- 239, // [239:239] is the sub-list for extension type_name
- 239, // [239:239] is the sub-list for extension extendee
- 0, // [0:239] is the sub-list for field type_name
+ 333, // 113: vtctldata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
+ 333, // 114: vtctldata.GetTransactionInfoResponse.metadata:type_name -> query.TransactionMetadata
+ 125, // 115: vtctldata.GetTransactionInfoResponse.shard_states:type_name -> vtctldata.ShardTransactionState
+ 334, // 116: vtctldata.ConcludeTransactionRequest.participants:type_name -> query.Target
+ 310, // 117: vtctldata.GetVersionRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 318, // 118: vtctldata.GetVSchemaResponse.v_schema:type_name -> vschema.Keyspace
+ 13, // 119: vtctldata.GetWorkflowsResponse.workflows:type_name -> vtctldata.Workflow
+ 310, // 120: vtctldata.InitShardPrimaryRequest.primary_elect_tablet_alias:type_name -> topodata.TabletAlias
+ 311, // 121: vtctldata.InitShardPrimaryRequest.wait_replicas_timeout:type_name -> vttime.Duration
+ 306, // 122: vtctldata.InitShardPrimaryResponse.events:type_name -> logutil.Event
+ 288, // 123: vtctldata.LaunchSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry
+ 318, // 124: vtctldata.LookupVindexCreateRequest.vindex:type_name -> vschema.Keyspace
+ 319, // 125: vtctldata.LookupVindexCreateRequest.tablet_types:type_name -> topodata.TabletType
+ 307, // 126: vtctldata.LookupVindexCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 8, // 127: vtctldata.MaterializeCreateRequest.settings:type_name -> vtctldata.MaterializeSettings
+ 319, // 128: vtctldata.MigrateCreateRequest.tablet_types:type_name -> topodata.TabletType
+ 307, // 129: vtctldata.MigrateCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 319, // 130: vtctldata.MoveTablesCreateRequest.tablet_types:type_name -> topodata.TabletType
+ 307, // 131: vtctldata.MoveTablesCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 12, // 132: vtctldata.MoveTablesCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions
+ 289, // 133: vtctldata.MoveTablesCreateResponse.details:type_name -> vtctldata.MoveTablesCreateResponse.TabletInfo
+ 310, // 134: vtctldata.PingTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 135: vtctldata.PlannedReparentShardRequest.new_primary:type_name -> topodata.TabletAlias
+ 310, // 136: vtctldata.PlannedReparentShardRequest.avoid_primary:type_name -> topodata.TabletAlias
+ 311, // 137: vtctldata.PlannedReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration
+ 311, // 138: vtctldata.PlannedReparentShardRequest.tolerable_replication_lag:type_name -> vttime.Duration
+ 310, // 139: vtctldata.PlannedReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias
+ 310, // 140: vtctldata.PlannedReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias
+ 306, // 141: vtctldata.PlannedReparentShardResponse.events:type_name -> logutil.Event
+ 310, // 142: vtctldata.RefreshStateRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 143: vtctldata.ReloadSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 306, // 144: vtctldata.ReloadSchemaKeyspaceResponse.events:type_name -> logutil.Event
+ 306, // 145: vtctldata.ReloadSchemaShardResponse.events:type_name -> logutil.Event
+ 310, // 146: vtctldata.ReparentTabletRequest.tablet:type_name -> topodata.TabletAlias
+ 310, // 147: vtctldata.ReparentTabletResponse.primary:type_name -> topodata.TabletAlias
+ 319, // 148: vtctldata.ReshardCreateRequest.tablet_types:type_name -> topodata.TabletType
+ 307, // 149: vtctldata.ReshardCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 12, // 150: vtctldata.ReshardCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions
+ 310, // 151: vtctldata.RestoreFromBackupRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 309, // 152: vtctldata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time
+ 309, // 153: vtctldata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time
+ 310, // 154: vtctldata.RestoreFromBackupResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 306, // 155: vtctldata.RestoreFromBackupResponse.event:type_name -> logutil.Event
+ 290, // 156: vtctldata.RetrySchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry
+ 310, // 157: vtctldata.RunHealthCheckRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 308, // 158: vtctldata.SetKeyspaceDurabilityPolicyResponse.keyspace:type_name -> topodata.Keyspace
+ 308, // 159: vtctldata.SetKeyspaceShardingInfoResponse.keyspace:type_name -> topodata.Keyspace
+ 312, // 160: vtctldata.SetShardIsPrimaryServingResponse.shard:type_name -> topodata.Shard
+ 319, // 161: vtctldata.SetShardTabletControlRequest.tablet_type:type_name -> topodata.TabletType
+ 312, // 162: vtctldata.SetShardTabletControlResponse.shard:type_name -> topodata.Shard
+ 310, // 163: vtctldata.SetWritableRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 164: vtctldata.ShardReplicationAddRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 335, // 165: vtctldata.ShardReplicationFixResponse.error:type_name -> topodata.ShardReplicationError
+ 291, // 166: vtctldata.ShardReplicationPositionsResponse.replication_statuses:type_name -> vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry
+ 292, // 167: vtctldata.ShardReplicationPositionsResponse.tablet_map:type_name -> vtctldata.ShardReplicationPositionsResponse.TabletMapEntry
+ 310, // 168: vtctldata.ShardReplicationRemoveRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 169: vtctldata.SleepTabletRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 311, // 170: vtctldata.SleepTabletRequest.duration:type_name -> vttime.Duration
+ 336, // 171: vtctldata.SourceShardAddRequest.key_range:type_name -> topodata.KeyRange
+ 312, // 172: vtctldata.SourceShardAddResponse.shard:type_name -> topodata.Shard
+ 312, // 173: vtctldata.SourceShardDeleteResponse.shard:type_name -> topodata.Shard
+ 310, // 174: vtctldata.StartReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 175: vtctldata.StopReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias
+ 310, // 176: vtctldata.TabletExternallyReparentedRequest.tablet:type_name -> topodata.TabletAlias
+ 310, // 177: vtctldata.TabletExternallyReparentedResponse.new_primary:type_name -> topodata.TabletAlias
+ 310, // 178: vtctldata.TabletExternallyReparentedResponse.old_primary:type_name -> topodata.TabletAlias
+ 313, // 179: vtctldata.UpdateCellInfoRequest.cell_info:type_name -> topodata.CellInfo
+ 313, // 180: vtctldata.UpdateCellInfoResponse.cell_info:type_name -> topodata.CellInfo
+ 337, // 181: vtctldata.UpdateCellsAliasRequest.cells_alias:type_name -> topodata.CellsAlias
+ 337, // 182: vtctldata.UpdateCellsAliasResponse.cells_alias:type_name -> topodata.CellsAlias
+ 293, // 183: vtctldata.ValidateResponse.results_by_keyspace:type_name -> vtctldata.ValidateResponse.ResultsByKeyspaceEntry
+ 294, // 184: vtctldata.ValidateKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry
+ 295, // 185: vtctldata.ValidateSchemaKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry
+ 296, // 186: vtctldata.ValidateVersionKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry
+ 297, // 187: vtctldata.ValidateVSchemaResponse.results_by_shard:type_name -> vtctldata.ValidateVSchemaResponse.ResultsByShardEntry
+ 319, // 188: vtctldata.VDiffCreateRequest.tablet_types:type_name -> topodata.TabletType
+ 307, // 189: vtctldata.VDiffCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 311, // 190: vtctldata.VDiffCreateRequest.filtered_replication_wait_time:type_name -> vttime.Duration
+ 311, // 191: vtctldata.VDiffCreateRequest.wait_update_interval:type_name -> vttime.Duration
+ 311, // 192: vtctldata.VDiffCreateRequest.max_diff_duration:type_name -> vttime.Duration
+ 298, // 193: vtctldata.VDiffShowResponse.tablet_responses:type_name -> vtctldata.VDiffShowResponse.TabletResponsesEntry
+ 299, // 194: vtctldata.WorkflowDeleteResponse.details:type_name -> vtctldata.WorkflowDeleteResponse.TabletInfo
+ 303, // 195: vtctldata.WorkflowStatusResponse.table_copy_state:type_name -> vtctldata.WorkflowStatusResponse.TableCopyStateEntry
+ 304, // 196: vtctldata.WorkflowStatusResponse.shard_streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamsEntry
+ 319, // 197: vtctldata.WorkflowSwitchTrafficRequest.tablet_types:type_name -> topodata.TabletType
+ 311, // 198: vtctldata.WorkflowSwitchTrafficRequest.max_replication_lag_allowed:type_name -> vttime.Duration
+ 311, // 199: vtctldata.WorkflowSwitchTrafficRequest.timeout:type_name -> vttime.Duration
+ 338, // 200: vtctldata.WorkflowUpdateRequest.tablet_request:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest
+ 305, // 201: vtctldata.WorkflowUpdateResponse.details:type_name -> vtctldata.WorkflowUpdateResponse.TabletInfo
+ 339, // 202: vtctldata.GetMirrorRulesResponse.mirror_rules:type_name -> vschema.MirrorRules
+ 319, // 203: vtctldata.WorkflowMirrorTrafficRequest.tablet_types:type_name -> topodata.TabletType
+ 266, // 204: vtctldata.Workflow.ShardStreamsEntry.value:type_name -> vtctldata.Workflow.ShardStream
+ 267, // 205: vtctldata.Workflow.ShardStream.streams:type_name -> vtctldata.Workflow.Stream
+ 340, // 206: vtctldata.Workflow.ShardStream.tablet_controls:type_name -> topodata.Shard.TabletControl
+ 310, // 207: vtctldata.Workflow.Stream.tablet:type_name -> topodata.TabletAlias
+ 341, // 208: vtctldata.Workflow.Stream.binlog_source:type_name -> binlogdata.BinlogSource
+ 309, // 209: vtctldata.Workflow.Stream.transaction_timestamp:type_name -> vttime.Time
+ 309, // 210: vtctldata.Workflow.Stream.time_updated:type_name -> vttime.Time
+ 268, // 211: vtctldata.Workflow.Stream.copy_states:type_name -> vtctldata.Workflow.Stream.CopyState
+ 269, // 212: vtctldata.Workflow.Stream.logs:type_name -> vtctldata.Workflow.Stream.Log
+ 270, // 213: vtctldata.Workflow.Stream.throttler_status:type_name -> vtctldata.Workflow.Stream.ThrottlerStatus
+ 319, // 214: vtctldata.Workflow.Stream.tablet_types:type_name -> topodata.TabletType
+ 307, // 215: vtctldata.Workflow.Stream.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference
+ 309, // 216: vtctldata.Workflow.Stream.Log.created_at:type_name -> vttime.Time
+ 309, // 217: vtctldata.Workflow.Stream.Log.updated_at:type_name -> vttime.Time
+ 309, // 218: vtctldata.Workflow.Stream.ThrottlerStatus.time_throttled:type_name -> vttime.Time
+ 273, // 219: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry.value:type_name -> vtctldata.ApplyVSchemaResponse.ParamList
+ 11, // 220: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry.value:type_name -> vtctldata.Shard
+ 337, // 221: vtctldata.GetCellsAliasesResponse.AliasesEntry.value:type_name -> topodata.CellsAlias
+ 342, // 222: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry.value:type_name -> topodata.ShardReplication
+ 285, // 223: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry.value:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NameList
+ 343, // 224: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> topodata.SrvKeyspace
+ 331, // 225: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry.value:type_name -> vschema.SrvVSchema
+ 310, // 226: vtctldata.MoveTablesCreateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
+ 344, // 227: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry.value:type_name -> replicationdata.Status
+ 320, // 228: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry.value:type_name -> topodata.Tablet
+ 230, // 229: vtctldata.ValidateResponse.ResultsByKeyspaceEntry.value:type_name -> vtctldata.ValidateKeyspaceResponse
+ 234, // 230: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
+ 234, // 231: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
+ 234, // 232: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
+ 234, // 233: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse
+ 345, // 234: vtctldata.VDiffShowResponse.TabletResponsesEntry.value:type_name -> tabletmanagerdata.VDiffResponse
+ 310, // 235: vtctldata.WorkflowDeleteResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
+ 310, // 236: vtctldata.WorkflowStatusResponse.ShardStreamState.tablet:type_name -> topodata.TabletAlias
+ 301, // 237: vtctldata.WorkflowStatusResponse.ShardStreams.streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamState
+ 300, // 238: vtctldata.WorkflowStatusResponse.TableCopyStateEntry.value:type_name -> vtctldata.WorkflowStatusResponse.TableCopyState
+ 302, // 239: vtctldata.WorkflowStatusResponse.ShardStreamsEntry.value:type_name -> vtctldata.WorkflowStatusResponse.ShardStreams
+ 310, // 240: vtctldata.WorkflowUpdateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias
+ 241, // [241:241] is the sub-list for method output_type
+ 241, // [241:241] is the sub-list for method input_type
+ 241, // [241:241] is the sub-list for extension type_name
+ 241, // [241:241] is the sub-list for extension extendee
+ 0, // [0:241] is the sub-list for field type_name
}
func init() { file_vtctldata_proto_init() }
@@ -21768,7 +21977,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
+ switch v := v.(*GetTransactionInfoRequest); i {
case 0:
return &v.state
case 1:
@@ -21780,7 +21989,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionResponse); i {
+ switch v := v.(*ShardTransactionState); i {
case 0:
return &v.state
case 1:
@@ -21792,7 +22001,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaRequest); i {
+ switch v := v.(*GetTransactionInfoResponse); i {
case 0:
return &v.state
case 1:
@@ -21804,7 +22013,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*GetVersionRequest); i {
+ switch v := v.(*ConcludeTransactionRequest); i {
case 0:
return &v.state
case 1:
@@ -21816,7 +22025,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*GetVersionResponse); i {
+ switch v := v.(*ConcludeTransactionResponse); i {
case 0:
return &v.state
case 1:
@@ -21828,7 +22037,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaResponse); i {
+ switch v := v.(*GetVSchemaRequest); i {
case 0:
return &v.state
case 1:
@@ -21840,7 +22049,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsRequest); i {
+ switch v := v.(*GetVersionRequest); i {
case 0:
return &v.state
case 1:
@@ -21852,7 +22061,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsResponse); i {
+ switch v := v.(*GetVersionResponse); i {
case 0:
return &v.state
case 1:
@@ -21864,7 +22073,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*InitShardPrimaryRequest); i {
+ switch v := v.(*GetVSchemaResponse); i {
case 0:
return &v.state
case 1:
@@ -21876,7 +22085,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*InitShardPrimaryResponse); i {
+ switch v := v.(*GetWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -21888,7 +22097,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationRequest); i {
+ switch v := v.(*GetWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -21900,7 +22109,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationResponse); i {
+ switch v := v.(*InitShardPrimaryRequest); i {
case 0:
return &v.state
case 1:
@@ -21912,7 +22121,7 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*LookupVindexCreateRequest); i {
+ switch v := v.(*InitShardPrimaryResponse); i {
case 0:
return &v.state
case 1:
@@ -21924,6 +22133,42 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[132].Exporter = func(v any, i int) any {
+ switch v := v.(*LaunchSchemaMigrationRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_vtctldata_proto_msgTypes[133].Exporter = func(v any, i int) any {
+ switch v := v.(*LaunchSchemaMigrationResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_vtctldata_proto_msgTypes[134].Exporter = func(v any, i int) any {
+ switch v := v.(*LookupVindexCreateRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_vtctldata_proto_msgTypes[135].Exporter = func(v any, i int) any {
switch v := v.(*LookupVindexCreateResponse); i {
case 0:
return &v.state
@@ -21935,7 +22180,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[133].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[136].Exporter = func(v any, i int) any {
switch v := v.(*LookupVindexExternalizeRequest); i {
case 0:
return &v.state
@@ -21947,7 +22192,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[134].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[137].Exporter = func(v any, i int) any {
switch v := v.(*LookupVindexExternalizeResponse); i {
case 0:
return &v.state
@@ -21959,7 +22204,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[135].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[138].Exporter = func(v any, i int) any {
switch v := v.(*MaterializeCreateRequest); i {
case 0:
return &v.state
@@ -21971,7 +22216,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[136].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[139].Exporter = func(v any, i int) any {
switch v := v.(*MaterializeCreateResponse); i {
case 0:
return &v.state
@@ -21983,7 +22228,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[137].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[140].Exporter = func(v any, i int) any {
switch v := v.(*MigrateCreateRequest); i {
case 0:
return &v.state
@@ -21995,7 +22240,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[138].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[141].Exporter = func(v any, i int) any {
switch v := v.(*MigrateCompleteRequest); i {
case 0:
return &v.state
@@ -22007,7 +22252,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[139].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[142].Exporter = func(v any, i int) any {
switch v := v.(*MigrateCompleteResponse); i {
case 0:
return &v.state
@@ -22019,7 +22264,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[140].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[143].Exporter = func(v any, i int) any {
switch v := v.(*MountRegisterRequest); i {
case 0:
return &v.state
@@ -22031,7 +22276,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[141].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[144].Exporter = func(v any, i int) any {
switch v := v.(*MountRegisterResponse); i {
case 0:
return &v.state
@@ -22043,7 +22288,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[142].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[145].Exporter = func(v any, i int) any {
switch v := v.(*MountUnregisterRequest); i {
case 0:
return &v.state
@@ -22055,7 +22300,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[143].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[146].Exporter = func(v any, i int) any {
switch v := v.(*MountUnregisterResponse); i {
case 0:
return &v.state
@@ -22067,7 +22312,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[144].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[147].Exporter = func(v any, i int) any {
switch v := v.(*MountShowRequest); i {
case 0:
return &v.state
@@ -22079,7 +22324,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[145].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[148].Exporter = func(v any, i int) any {
switch v := v.(*MountShowResponse); i {
case 0:
return &v.state
@@ -22091,7 +22336,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[146].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[149].Exporter = func(v any, i int) any {
switch v := v.(*MountListRequest); i {
case 0:
return &v.state
@@ -22103,7 +22348,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[147].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[150].Exporter = func(v any, i int) any {
switch v := v.(*MountListResponse); i {
case 0:
return &v.state
@@ -22115,7 +22360,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[148].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[151].Exporter = func(v any, i int) any {
switch v := v.(*MoveTablesCreateRequest); i {
case 0:
return &v.state
@@ -22127,7 +22372,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[149].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[152].Exporter = func(v any, i int) any {
switch v := v.(*MoveTablesCreateResponse); i {
case 0:
return &v.state
@@ -22139,7 +22384,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[150].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[153].Exporter = func(v any, i int) any {
switch v := v.(*MoveTablesCompleteRequest); i {
case 0:
return &v.state
@@ -22151,7 +22396,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[151].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[154].Exporter = func(v any, i int) any {
switch v := v.(*MoveTablesCompleteResponse); i {
case 0:
return &v.state
@@ -22163,7 +22408,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[152].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[155].Exporter = func(v any, i int) any {
switch v := v.(*PingTabletRequest); i {
case 0:
return &v.state
@@ -22175,7 +22420,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[153].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[156].Exporter = func(v any, i int) any {
switch v := v.(*PingTabletResponse); i {
case 0:
return &v.state
@@ -22187,7 +22432,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[154].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[157].Exporter = func(v any, i int) any {
switch v := v.(*PlannedReparentShardRequest); i {
case 0:
return &v.state
@@ -22199,7 +22444,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[155].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[158].Exporter = func(v any, i int) any {
switch v := v.(*PlannedReparentShardResponse); i {
case 0:
return &v.state
@@ -22211,7 +22456,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[156].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[159].Exporter = func(v any, i int) any {
switch v := v.(*RebuildKeyspaceGraphRequest); i {
case 0:
return &v.state
@@ -22223,7 +22468,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[157].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[160].Exporter = func(v any, i int) any {
switch v := v.(*RebuildKeyspaceGraphResponse); i {
case 0:
return &v.state
@@ -22235,7 +22480,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[158].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[161].Exporter = func(v any, i int) any {
switch v := v.(*RebuildVSchemaGraphRequest); i {
case 0:
return &v.state
@@ -22247,7 +22492,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[159].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[162].Exporter = func(v any, i int) any {
switch v := v.(*RebuildVSchemaGraphResponse); i {
case 0:
return &v.state
@@ -22259,7 +22504,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[160].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[163].Exporter = func(v any, i int) any {
switch v := v.(*RefreshStateRequest); i {
case 0:
return &v.state
@@ -22271,7 +22516,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[161].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[164].Exporter = func(v any, i int) any {
switch v := v.(*RefreshStateResponse); i {
case 0:
return &v.state
@@ -22283,7 +22528,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[162].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[165].Exporter = func(v any, i int) any {
switch v := v.(*RefreshStateByShardRequest); i {
case 0:
return &v.state
@@ -22295,7 +22540,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[163].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[166].Exporter = func(v any, i int) any {
switch v := v.(*RefreshStateByShardResponse); i {
case 0:
return &v.state
@@ -22307,7 +22552,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[164].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[167].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaRequest); i {
case 0:
return &v.state
@@ -22319,7 +22564,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[165].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[168].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaResponse); i {
case 0:
return &v.state
@@ -22331,7 +22576,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[166].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[169].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaKeyspaceRequest); i {
case 0:
return &v.state
@@ -22343,7 +22588,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[167].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[170].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaKeyspaceResponse); i {
case 0:
return &v.state
@@ -22355,7 +22600,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[168].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[171].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaShardRequest); i {
case 0:
return &v.state
@@ -22367,7 +22612,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[169].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[172].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemaShardResponse); i {
case 0:
return &v.state
@@ -22379,7 +22624,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[170].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[173].Exporter = func(v any, i int) any {
switch v := v.(*RemoveBackupRequest); i {
case 0:
return &v.state
@@ -22391,7 +22636,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[171].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[174].Exporter = func(v any, i int) any {
switch v := v.(*RemoveBackupResponse); i {
case 0:
return &v.state
@@ -22403,7 +22648,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[172].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[175].Exporter = func(v any, i int) any {
switch v := v.(*RemoveKeyspaceCellRequest); i {
case 0:
return &v.state
@@ -22415,7 +22660,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[173].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[176].Exporter = func(v any, i int) any {
switch v := v.(*RemoveKeyspaceCellResponse); i {
case 0:
return &v.state
@@ -22427,7 +22672,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[174].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[177].Exporter = func(v any, i int) any {
switch v := v.(*RemoveShardCellRequest); i {
case 0:
return &v.state
@@ -22439,7 +22684,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[175].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[178].Exporter = func(v any, i int) any {
switch v := v.(*RemoveShardCellResponse); i {
case 0:
return &v.state
@@ -22451,7 +22696,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[176].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[179].Exporter = func(v any, i int) any {
switch v := v.(*ReparentTabletRequest); i {
case 0:
return &v.state
@@ -22463,7 +22708,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[177].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[180].Exporter = func(v any, i int) any {
switch v := v.(*ReparentTabletResponse); i {
case 0:
return &v.state
@@ -22475,7 +22720,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[178].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[181].Exporter = func(v any, i int) any {
switch v := v.(*ReshardCreateRequest); i {
case 0:
return &v.state
@@ -22487,7 +22732,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[179].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[182].Exporter = func(v any, i int) any {
switch v := v.(*RestoreFromBackupRequest); i {
case 0:
return &v.state
@@ -22499,7 +22744,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[180].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[183].Exporter = func(v any, i int) any {
switch v := v.(*RestoreFromBackupResponse); i {
case 0:
return &v.state
@@ -22511,7 +22756,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[181].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[184].Exporter = func(v any, i int) any {
switch v := v.(*RetrySchemaMigrationRequest); i {
case 0:
return &v.state
@@ -22523,7 +22768,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[182].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[185].Exporter = func(v any, i int) any {
switch v := v.(*RetrySchemaMigrationResponse); i {
case 0:
return &v.state
@@ -22535,7 +22780,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[183].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[186].Exporter = func(v any, i int) any {
switch v := v.(*RunHealthCheckRequest); i {
case 0:
return &v.state
@@ -22547,7 +22792,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[184].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[187].Exporter = func(v any, i int) any {
switch v := v.(*RunHealthCheckResponse); i {
case 0:
return &v.state
@@ -22559,7 +22804,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[185].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[188].Exporter = func(v any, i int) any {
switch v := v.(*SetKeyspaceDurabilityPolicyRequest); i {
case 0:
return &v.state
@@ -22571,7 +22816,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[186].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[189].Exporter = func(v any, i int) any {
switch v := v.(*SetKeyspaceDurabilityPolicyResponse); i {
case 0:
return &v.state
@@ -22583,7 +22828,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[187].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[190].Exporter = func(v any, i int) any {
switch v := v.(*SetKeyspaceShardingInfoRequest); i {
case 0:
return &v.state
@@ -22595,7 +22840,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[188].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[191].Exporter = func(v any, i int) any {
switch v := v.(*SetKeyspaceShardingInfoResponse); i {
case 0:
return &v.state
@@ -22607,7 +22852,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[189].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[192].Exporter = func(v any, i int) any {
switch v := v.(*SetShardIsPrimaryServingRequest); i {
case 0:
return &v.state
@@ -22619,7 +22864,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[190].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[193].Exporter = func(v any, i int) any {
switch v := v.(*SetShardIsPrimaryServingResponse); i {
case 0:
return &v.state
@@ -22631,7 +22876,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[191].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[194].Exporter = func(v any, i int) any {
switch v := v.(*SetShardTabletControlRequest); i {
case 0:
return &v.state
@@ -22643,7 +22888,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[192].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[195].Exporter = func(v any, i int) any {
switch v := v.(*SetShardTabletControlResponse); i {
case 0:
return &v.state
@@ -22655,7 +22900,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[193].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[196].Exporter = func(v any, i int) any {
switch v := v.(*SetWritableRequest); i {
case 0:
return &v.state
@@ -22667,7 +22912,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[194].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[197].Exporter = func(v any, i int) any {
switch v := v.(*SetWritableResponse); i {
case 0:
return &v.state
@@ -22679,7 +22924,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[195].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[198].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationAddRequest); i {
case 0:
return &v.state
@@ -22691,7 +22936,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[196].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[199].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationAddResponse); i {
case 0:
return &v.state
@@ -22703,7 +22948,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[197].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[200].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationFixRequest); i {
case 0:
return &v.state
@@ -22715,7 +22960,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[198].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[201].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationFixResponse); i {
case 0:
return &v.state
@@ -22727,7 +22972,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[199].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[202].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationPositionsRequest); i {
case 0:
return &v.state
@@ -22739,7 +22984,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[200].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[203].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationPositionsResponse); i {
case 0:
return &v.state
@@ -22751,7 +22996,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[201].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[204].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationRemoveRequest); i {
case 0:
return &v.state
@@ -22763,7 +23008,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[202].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[205].Exporter = func(v any, i int) any {
switch v := v.(*ShardReplicationRemoveResponse); i {
case 0:
return &v.state
@@ -22775,7 +23020,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[203].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[206].Exporter = func(v any, i int) any {
switch v := v.(*SleepTabletRequest); i {
case 0:
return &v.state
@@ -22787,7 +23032,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[204].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[207].Exporter = func(v any, i int) any {
switch v := v.(*SleepTabletResponse); i {
case 0:
return &v.state
@@ -22799,7 +23044,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[205].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[208].Exporter = func(v any, i int) any {
switch v := v.(*SourceShardAddRequest); i {
case 0:
return &v.state
@@ -22811,7 +23056,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[206].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[209].Exporter = func(v any, i int) any {
switch v := v.(*SourceShardAddResponse); i {
case 0:
return &v.state
@@ -22823,7 +23068,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[207].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[210].Exporter = func(v any, i int) any {
switch v := v.(*SourceShardDeleteRequest); i {
case 0:
return &v.state
@@ -22835,7 +23080,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[208].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[211].Exporter = func(v any, i int) any {
switch v := v.(*SourceShardDeleteResponse); i {
case 0:
return &v.state
@@ -22847,7 +23092,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[209].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[212].Exporter = func(v any, i int) any {
switch v := v.(*StartReplicationRequest); i {
case 0:
return &v.state
@@ -22859,7 +23104,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[210].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[213].Exporter = func(v any, i int) any {
switch v := v.(*StartReplicationResponse); i {
case 0:
return &v.state
@@ -22871,7 +23116,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[211].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[214].Exporter = func(v any, i int) any {
switch v := v.(*StopReplicationRequest); i {
case 0:
return &v.state
@@ -22883,7 +23128,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[212].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[215].Exporter = func(v any, i int) any {
switch v := v.(*StopReplicationResponse); i {
case 0:
return &v.state
@@ -22895,7 +23140,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[213].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[216].Exporter = func(v any, i int) any {
switch v := v.(*TabletExternallyReparentedRequest); i {
case 0:
return &v.state
@@ -22907,7 +23152,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[214].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[217].Exporter = func(v any, i int) any {
switch v := v.(*TabletExternallyReparentedResponse); i {
case 0:
return &v.state
@@ -22919,7 +23164,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[215].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[218].Exporter = func(v any, i int) any {
switch v := v.(*UpdateCellInfoRequest); i {
case 0:
return &v.state
@@ -22931,7 +23176,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[216].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[219].Exporter = func(v any, i int) any {
switch v := v.(*UpdateCellInfoResponse); i {
case 0:
return &v.state
@@ -22943,7 +23188,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[217].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[220].Exporter = func(v any, i int) any {
switch v := v.(*UpdateCellsAliasRequest); i {
case 0:
return &v.state
@@ -22955,7 +23200,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[218].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[221].Exporter = func(v any, i int) any {
switch v := v.(*UpdateCellsAliasResponse); i {
case 0:
return &v.state
@@ -22967,7 +23212,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[219].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[222].Exporter = func(v any, i int) any {
switch v := v.(*ValidateRequest); i {
case 0:
return &v.state
@@ -22979,7 +23224,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[220].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[223].Exporter = func(v any, i int) any {
switch v := v.(*ValidateResponse); i {
case 0:
return &v.state
@@ -22991,7 +23236,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[221].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[224].Exporter = func(v any, i int) any {
switch v := v.(*ValidateKeyspaceRequest); i {
case 0:
return &v.state
@@ -23003,7 +23248,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[222].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[225].Exporter = func(v any, i int) any {
switch v := v.(*ValidateKeyspaceResponse); i {
case 0:
return &v.state
@@ -23015,7 +23260,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[223].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[226].Exporter = func(v any, i int) any {
switch v := v.(*ValidateSchemaKeyspaceRequest); i {
case 0:
return &v.state
@@ -23027,7 +23272,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[224].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[227].Exporter = func(v any, i int) any {
switch v := v.(*ValidateSchemaKeyspaceResponse); i {
case 0:
return &v.state
@@ -23039,7 +23284,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[225].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[228].Exporter = func(v any, i int) any {
switch v := v.(*ValidateShardRequest); i {
case 0:
return &v.state
@@ -23051,7 +23296,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[226].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[229].Exporter = func(v any, i int) any {
switch v := v.(*ValidateShardResponse); i {
case 0:
return &v.state
@@ -23063,7 +23308,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[227].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[230].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVersionKeyspaceRequest); i {
case 0:
return &v.state
@@ -23075,7 +23320,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[228].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[231].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVersionKeyspaceResponse); i {
case 0:
return &v.state
@@ -23087,7 +23332,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[229].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[232].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVersionShardRequest); i {
case 0:
return &v.state
@@ -23099,7 +23344,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[230].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[233].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVersionShardResponse); i {
case 0:
return &v.state
@@ -23111,7 +23356,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[231].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[234].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVSchemaRequest); i {
case 0:
return &v.state
@@ -23123,7 +23368,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[232].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[235].Exporter = func(v any, i int) any {
switch v := v.(*ValidateVSchemaResponse); i {
case 0:
return &v.state
@@ -23135,7 +23380,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[233].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[236].Exporter = func(v any, i int) any {
switch v := v.(*VDiffCreateRequest); i {
case 0:
return &v.state
@@ -23147,7 +23392,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[234].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[237].Exporter = func(v any, i int) any {
switch v := v.(*VDiffCreateResponse); i {
case 0:
return &v.state
@@ -23159,7 +23404,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[235].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[238].Exporter = func(v any, i int) any {
switch v := v.(*VDiffDeleteRequest); i {
case 0:
return &v.state
@@ -23171,7 +23416,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[236].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[239].Exporter = func(v any, i int) any {
switch v := v.(*VDiffDeleteResponse); i {
case 0:
return &v.state
@@ -23183,7 +23428,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[237].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[240].Exporter = func(v any, i int) any {
switch v := v.(*VDiffResumeRequest); i {
case 0:
return &v.state
@@ -23195,7 +23440,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[238].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[241].Exporter = func(v any, i int) any {
switch v := v.(*VDiffResumeResponse); i {
case 0:
return &v.state
@@ -23207,7 +23452,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[239].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[242].Exporter = func(v any, i int) any {
switch v := v.(*VDiffShowRequest); i {
case 0:
return &v.state
@@ -23219,7 +23464,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[240].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[243].Exporter = func(v any, i int) any {
switch v := v.(*VDiffShowResponse); i {
case 0:
return &v.state
@@ -23231,7 +23476,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[241].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[244].Exporter = func(v any, i int) any {
switch v := v.(*VDiffStopRequest); i {
case 0:
return &v.state
@@ -23243,7 +23488,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[242].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[245].Exporter = func(v any, i int) any {
switch v := v.(*VDiffStopResponse); i {
case 0:
return &v.state
@@ -23255,7 +23500,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[243].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[246].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowDeleteRequest); i {
case 0:
return &v.state
@@ -23267,7 +23512,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[244].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[247].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowDeleteResponse); i {
case 0:
return &v.state
@@ -23279,7 +23524,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[245].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[248].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowStatusRequest); i {
case 0:
return &v.state
@@ -23291,7 +23536,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[246].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[249].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowStatusResponse); i {
case 0:
return &v.state
@@ -23303,7 +23548,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[247].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[250].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowSwitchTrafficRequest); i {
case 0:
return &v.state
@@ -23315,7 +23560,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[248].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[251].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowSwitchTrafficResponse); i {
case 0:
return &v.state
@@ -23327,7 +23572,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[249].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[252].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowUpdateRequest); i {
case 0:
return &v.state
@@ -23339,7 +23584,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[250].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[253].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowUpdateResponse); i {
case 0:
return &v.state
@@ -23351,7 +23596,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[251].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[254].Exporter = func(v any, i int) any {
switch v := v.(*GetMirrorRulesRequest); i {
case 0:
return &v.state
@@ -23363,7 +23608,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[252].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[255].Exporter = func(v any, i int) any {
switch v := v.(*GetMirrorRulesResponse); i {
case 0:
return &v.state
@@ -23375,7 +23620,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[253].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[256].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowMirrorTrafficRequest); i {
case 0:
return &v.state
@@ -23387,7 +23632,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[254].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[257].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowMirrorTrafficResponse); i {
case 0:
return &v.state
@@ -23399,7 +23644,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[257].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[260].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_ReplicationLocation); i {
case 0:
return &v.state
@@ -23411,7 +23656,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[258].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[261].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_ShardStream); i {
case 0:
return &v.state
@@ -23423,7 +23668,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[259].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[262].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_Stream); i {
case 0:
return &v.state
@@ -23435,7 +23680,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[260].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[263].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_Stream_CopyState); i {
case 0:
return &v.state
@@ -23447,7 +23692,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[261].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[264].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_Stream_Log); i {
case 0:
return &v.state
@@ -23459,7 +23704,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[262].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[265].Exporter = func(v any, i int) any {
switch v := v.(*Workflow_Stream_ThrottlerStatus); i {
case 0:
return &v.state
@@ -23471,7 +23716,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[265].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[268].Exporter = func(v any, i int) any {
switch v := v.(*ApplyVSchemaResponse_ParamList); i {
case 0:
return &v.state
@@ -23483,7 +23728,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[277].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[280].Exporter = func(v any, i int) any {
switch v := v.(*GetSrvKeyspaceNamesResponse_NameList); i {
case 0:
return &v.state
@@ -23495,7 +23740,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[281].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[284].Exporter = func(v any, i int) any {
switch v := v.(*MoveTablesCreateResponse_TabletInfo); i {
case 0:
return &v.state
@@ -23507,7 +23752,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[291].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[294].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowDeleteResponse_TabletInfo); i {
case 0:
return &v.state
@@ -23519,7 +23764,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[292].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[295].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowStatusResponse_TableCopyState); i {
case 0:
return &v.state
@@ -23531,7 +23776,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[293].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[296].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowStatusResponse_ShardStreamState); i {
case 0:
return &v.state
@@ -23543,7 +23788,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[294].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[297].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowStatusResponse_ShardStreams); i {
case 0:
return &v.state
@@ -23555,7 +23800,7 @@ func file_vtctldata_proto_init() {
return nil
}
}
- file_vtctldata_proto_msgTypes[297].Exporter = func(v any, i int) any {
+ file_vtctldata_proto_msgTypes[300].Exporter = func(v any, i int) any {
switch v := v.(*WorkflowUpdateResponse_TabletInfo); i {
case 0:
return &v.state
@@ -23569,14 +23814,14 @@ func file_vtctldata_proto_init() {
}
}
file_vtctldata_proto_msgTypes[23].OneofWrappers = []any{}
- file_vtctldata_proto_msgTypes[233].OneofWrappers = []any{}
+ file_vtctldata_proto_msgTypes[236].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_vtctldata_proto_rawDesc,
NumEnums: 5,
- NumMessages: 298,
+ NumMessages: 301,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
index 438357693b3..455819ba614 100644
--- a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
@@ -2744,6 +2744,72 @@ func (m *GetUnresolvedTransactionsResponse) CloneMessageVT() proto.Message {
return m.CloneVT()
}
+func (m *GetTransactionInfoRequest) CloneVT() *GetTransactionInfoRequest {
+ if m == nil {
+ return (*GetTransactionInfoRequest)(nil)
+ }
+ r := new(GetTransactionInfoRequest)
+ r.Dtid = m.Dtid
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GetTransactionInfoRequest) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *ShardTransactionState) CloneVT() *ShardTransactionState {
+ if m == nil {
+ return (*ShardTransactionState)(nil)
+ }
+ r := new(ShardTransactionState)
+ r.Shard = m.Shard
+ r.State = m.State
+ r.Message = m.Message
+ r.TimeCreated = m.TimeCreated
+ if rhs := m.Statements; rhs != nil {
+ tmpContainer := make([]string, len(rhs))
+ copy(tmpContainer, rhs)
+ r.Statements = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *ShardTransactionState) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
+func (m *GetTransactionInfoResponse) CloneVT() *GetTransactionInfoResponse {
+ if m == nil {
+ return (*GetTransactionInfoResponse)(nil)
+ }
+ r := new(GetTransactionInfoResponse)
+ r.Metadata = m.Metadata.CloneVT()
+ if rhs := m.ShardStates; rhs != nil {
+ tmpContainer := make([]*ShardTransactionState, len(rhs))
+ for k, v := range rhs {
+ tmpContainer[k] = v.CloneVT()
+ }
+ r.ShardStates = tmpContainer
+ }
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GetTransactionInfoResponse) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
func (m *ConcludeTransactionRequest) CloneVT() *ConcludeTransactionRequest {
if m == nil {
return (*ConcludeTransactionRequest)(nil)
@@ -13287,6 +13353,169 @@ func (m *GetUnresolvedTransactionsResponse) MarshalToSizedBufferVT(dAtA []byte)
return len(dAtA) - i, nil
}
+func (m *GetTransactionInfoRequest) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GetTransactionInfoRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GetTransactionInfoRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Dtid) > 0 {
+ i -= len(m.Dtid)
+ copy(dAtA[i:], m.Dtid)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Dtid)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *ShardTransactionState) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ShardTransactionState) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *ShardTransactionState) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.Statements) > 0 {
+ for iNdEx := len(m.Statements) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.Statements[iNdEx])
+ copy(dAtA[i:], m.Statements[iNdEx])
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Statements[iNdEx])))
+ i--
+ dAtA[i] = 0x2a
+ }
+ }
+ if m.TimeCreated != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TimeCreated))
+ i--
+ dAtA[i] = 0x20
+ }
+ if len(m.Message) > 0 {
+ i -= len(m.Message)
+ copy(dAtA[i:], m.Message)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Message)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.State) > 0 {
+ i -= len(m.State)
+ copy(dAtA[i:], m.State)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.State)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.Shard) > 0 {
+ i -= len(m.Shard)
+ copy(dAtA[i:], m.Shard)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Shard)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *GetTransactionInfoResponse) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GetTransactionInfoResponse) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GetTransactionInfoResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if len(m.ShardStates) > 0 {
+ for iNdEx := len(m.ShardStates) - 1; iNdEx >= 0; iNdEx-- {
+ size, err := m.ShardStates[iNdEx].MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if m.Metadata != nil {
+ size, err := m.Metadata.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *ConcludeTransactionRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@@ -24175,6 +24404,71 @@ func (m *GetUnresolvedTransactionsResponse) SizeVT() (n int) {
return n
}
+func (m *GetTransactionInfoRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Dtid)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *ShardTransactionState) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Shard)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.State)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ l = len(m.Message)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.TimeCreated != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TimeCreated))
+ }
+ if len(m.Statements) > 0 {
+ for _, s := range m.Statements {
+ l = len(s)
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
+func (m *GetTransactionInfoResponse) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Metadata != nil {
+ l = m.Metadata.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if len(m.ShardStates) > 0 {
+ for _, e := range m.ShardStates {
+ l = e.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
func (m *ConcludeTransactionRequest) SizeVT() (n int) {
if m == nil {
return 0
@@ -44888,7 +45182,486 @@ func (m *GetSrvVSchemasResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTabletRequest) UnmarshalVT(dAtA []byte) error {
+func (m *GetTabletRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTabletRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTabletRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TabletAlias", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.TabletAlias == nil {
+ m.TabletAlias = &topodata.TabletAlias{}
+ }
+ if err := m.TabletAlias.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GetTabletResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTabletResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTabletResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Tablet", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Tablet == nil {
+ m.Tablet = &topodata.Tablet{}
+ }
+ if err := m.Tablet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTabletsRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTabletsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Keyspace = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Shard", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Shard = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Cells", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Cells = append(m.Cells, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Strict", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.Strict = bool(v != 0)
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TabletAliases", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.TabletAliases = append(m.TabletAliases, &topodata.TabletAlias{})
+ if err := m.TabletAliases[len(m.TabletAliases)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 6:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TabletType", wireType)
+ }
+ m.TabletType = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.TabletType |= topodata.TabletType(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GetTabletsResponse) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTabletsResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTabletsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Tablets", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Tablets = append(m.Tablets, &topodata.Tablet{})
+ if err := m.Tablets[len(m.Tablets)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *GetThrottlerStatusRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -44911,10 +45684,10 @@ func (m *GetTabletRequest) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTabletRequest: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetThrottlerStatusRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTabletRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetThrottlerStatusRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@@ -44975,7 +45748,7 @@ func (m *GetTabletRequest) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTabletResponse) UnmarshalVT(dAtA []byte) error {
+func (m *GetThrottlerStatusResponse) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -44998,15 +45771,15 @@ func (m *GetTabletResponse) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTabletResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetThrottlerStatusResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTabletResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetThrottlerStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Tablet", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -45033,10 +45806,10 @@ func (m *GetTabletResponse) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.Tablet == nil {
- m.Tablet = &topodata.Tablet{}
+ if m.Status == nil {
+ m.Status = &tabletmanagerdata.GetThrottlerStatusResponse{}
}
- if err := m.Tablet.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ if err := m.Status.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -45062,7 +45835,7 @@ func (m *GetTabletResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
+func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45085,15 +45858,15 @@ func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTabletsRequest: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetTopologyPathRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTabletsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetTopologyPathRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -45121,13 +45894,13 @@ func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Keyspace = string(dAtA[iNdEx:postIndex])
+ m.Path = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Shard", wireType)
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
}
- var stringLen uint64
+ m.Version = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45137,59 +45910,14 @@ func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ m.Version |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return protohelpers.ErrInvalidLength
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return protohelpers.ErrInvalidLength
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Shard = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Cells", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return protohelpers.ErrInvalidLength
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return protohelpers.ErrInvalidLength
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Cells = append(m.Cells, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
- case 4:
if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Strict", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field AsJson", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
@@ -45206,60 +45934,7 @@ func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
break
}
}
- m.Strict = bool(v != 0)
- case 5:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field TabletAliases", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return protohelpers.ErrInvalidLength
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return protohelpers.ErrInvalidLength
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.TabletAliases = append(m.TabletAliases, &topodata.TabletAlias{})
- if err := m.TabletAliases[len(m.TabletAliases)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 6:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field TabletType", wireType)
- }
- m.TabletType = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.TabletType |= topodata.TabletType(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
+ m.AsJson = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -45282,7 +45957,7 @@ func (m *GetTabletsRequest) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTabletsResponse) UnmarshalVT(dAtA []byte) error {
+func (m *GetTopologyPathResponse) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45305,15 +45980,15 @@ func (m *GetTabletsResponse) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTabletsResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetTopologyPathResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTabletsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetTopologyPathResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Tablets", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Cell", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -45340,8 +46015,10 @@ func (m *GetTabletsResponse) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Tablets = append(m.Tablets, &topodata.Tablet{})
- if err := m.Tablets[len(m.Tablets)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ if m.Cell == nil {
+ m.Cell = &TopologyCell{}
+ }
+ if err := m.Cell.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -45367,7 +46044,7 @@ func (m *GetTabletsResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetThrottlerStatusRequest) UnmarshalVT(dAtA []byte) error {
+func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45390,17 +46067,17 @@ func (m *GetThrottlerStatusRequest) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetThrottlerStatusRequest: wiretype end group for non-group")
+ return fmt.Errorf("proto: TopologyCell: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetThrottlerStatusRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: TopologyCell: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field TabletAlias", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45410,28 +46087,139 @@ func (m *GetThrottlerStatusRequest) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return protohelpers.ErrInvalidLength
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.TabletAlias == nil {
- m.TabletAlias = &topodata.TabletAlias{}
+ m.Name = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
}
- if err := m.TabletAlias.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
- return err
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
}
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Path = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Data = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Children = append(m.Children, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
+ case 5:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ }
+ m.Version = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Version |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -45454,7 +46242,7 @@ func (m *GetThrottlerStatusRequest) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetThrottlerStatusResponse) UnmarshalVT(dAtA []byte) error {
+func (m *GetUnresolvedTransactionsRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45477,17 +46265,17 @@ func (m *GetThrottlerStatusResponse) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetThrottlerStatusResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetUnresolvedTransactionsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetThrottlerStatusResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetUnresolvedTransactionsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45497,28 +46285,43 @@ func (m *GetThrottlerStatusResponse) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return protohelpers.ErrInvalidLength
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.Status == nil {
- m.Status = &tabletmanagerdata.GetThrottlerStatusResponse{}
+ m.Keyspace = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AbandonAge", wireType)
}
- if err := m.Status.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
- return err
+ m.AbandonAge = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.AbandonAge |= int64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
}
- iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -45541,7 +46344,7 @@ func (m *GetThrottlerStatusResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
+func (m *GetUnresolvedTransactionsResponse) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45564,17 +46367,17 @@ func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTopologyPathRequest: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetUnresolvedTransactionsResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTopologyPathRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetUnresolvedTransactionsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Transactions", wireType)
}
- var stringLen uint64
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45584,63 +46387,26 @@ func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
+ if msglen < 0 {
return protohelpers.ErrInvalidLength
}
- postIndex := iNdEx + intStringLen
+ postIndex := iNdEx + msglen
if postIndex < 0 {
return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Path = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
- }
- m.Version = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Version |= int64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field AsJson", wireType)
- }
- var v int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
+ m.Transactions = append(m.Transactions, &query.TransactionMetadata{})
+ if err := m.Transactions[len(m.Transactions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
}
- m.AsJson = bool(v != 0)
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -45663,7 +46429,7 @@ func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetTopologyPathResponse) UnmarshalVT(dAtA []byte) error {
+func (m *GetTransactionInfoRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45686,17 +46452,17 @@ func (m *GetTopologyPathResponse) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetTopologyPathResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetTransactionInfoRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetTopologyPathResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetTransactionInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Cell", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Dtid", wireType)
}
- var msglen int
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45706,27 +46472,23 @@ func (m *GetTopologyPathResponse) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- msglen |= int(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- if msglen < 0 {
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
return protohelpers.ErrInvalidLength
}
- postIndex := iNdEx + msglen
+ postIndex := iNdEx + intStringLen
if postIndex < 0 {
return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.Cell == nil {
- m.Cell = &TopologyCell{}
- }
- if err := m.Cell.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
+ m.Dtid = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
@@ -45750,7 +46512,7 @@ func (m *GetTopologyPathResponse) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
+func (m *ShardTransactionState) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45773,15 +46535,15 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: TopologyCell: wiretype end group for non-group")
+ return fmt.Errorf("proto: ShardTransactionState: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: TopologyCell: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: ShardTransactionState: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Shard", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -45809,11 +46571,11 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Name = string(dAtA[iNdEx:postIndex])
+ m.Shard = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field State", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -45841,11 +46603,11 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Path = string(dAtA[iNdEx:postIndex])
+ m.State = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -45873,13 +46635,13 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Data = string(dAtA[iNdEx:postIndex])
+ m.Message = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 4:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Children", wireType)
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TimeCreated", wireType)
}
- var stringLen uint64
+ m.TimeCreated = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45889,29 +46651,16 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ m.TimeCreated |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return protohelpers.ErrInvalidLength
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return protohelpers.ErrInvalidLength
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Children = append(m.Children, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
case 5:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType)
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Statements", wireType)
}
- m.Version = 0
+ var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45921,11 +46670,24 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.Version |= int64(b&0x7F) << shift
+ stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Statements = append(m.Statements, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -45948,7 +46710,7 @@ func (m *TopologyCell) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-func (m *GetUnresolvedTransactionsRequest) UnmarshalVT(dAtA []byte) error {
+func (m *GetTransactionInfoResponse) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -45971,17 +46733,17 @@ func (m *GetUnresolvedTransactionsRequest) UnmarshalVT(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: GetUnresolvedTransactionsRequest: wiretype end group for non-group")
+ return fmt.Errorf("proto: GetTransactionInfoResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: GetUnresolvedTransactionsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: GetTransactionInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType)
}
- var stringLen uint64
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return protohelpers.ErrIntOverflow
@@ -45991,97 +46753,31 @@ func (m *GetUnresolvedTransactionsRequest) UnmarshalVT(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- stringLen |= uint64(b&0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
- intStringLen := int(stringLen)
- if intStringLen < 0 {
+ if msglen < 0 {
return protohelpers.ErrInvalidLength
}
- postIndex := iNdEx + intStringLen
+ postIndex := iNdEx + msglen
if postIndex < 0 {
return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Keyspace = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field AbandonAge", wireType)
- }
- m.AbandonAge = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.AbandonAge |= int64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
+ if m.Metadata == nil {
+ m.Metadata = &query.TransactionMetadata{}
}
- default:
- iNdEx = preIndex
- skippy, err := protohelpers.Skip(dAtA[iNdEx:])
- if err != nil {
+ if err := m.Metadata.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return protohelpers.ErrInvalidLength
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *GetUnresolvedTransactionsResponse) UnmarshalVT(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return protohelpers.ErrIntOverflow
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: GetUnresolvedTransactionsResponse: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: GetUnresolvedTransactionsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
+ iNdEx = postIndex
+ case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Transactions", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field ShardStates", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -46108,8 +46804,8 @@ func (m *GetUnresolvedTransactionsResponse) UnmarshalVT(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.Transactions = append(m.Transactions, &query.TransactionMetadata{})
- if err := m.Transactions[len(m.Transactions)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ m.ShardStates = append(m.ShardStates, &ShardTransactionState{})
+ if err := m.ShardStates[len(m.ShardStates)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
diff --git a/go/vt/proto/vtctlservice/vtctlservice.pb.go b/go/vt/proto/vtctlservice/vtctlservice.pb.go
index a0ff776c393..cafdee2c15f 100644
--- a/go/vt/proto/vtctlservice/vtctlservice.pb.go
+++ b/go/vt/proto/vtctlservice/vtctlservice.pb.go
@@ -51,7 +51,7 @@ var file_vtctlservice_proto_rawDesc = []byte{
0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63,
0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x56, 0x74,
0x63, 0x74, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x32, 0xa0, 0x5a, 0x0a, 0x06, 0x56, 0x74, 0x63, 0x74, 0x6c,
+ 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x32, 0x85, 0x5b, 0x0a, 0x06, 0x56, 0x74, 0x63, 0x74, 0x6c,
0x64, 0x12, 0x4e, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x64, 0x64,
0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
@@ -374,409 +374,416 @@ var file_vtctlservice_proto_rawDesc = []byte{
0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76,
0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f,
0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x78, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c,
- 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
- 0x2b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x55,
- 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65,
- 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a,
- 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74,
- 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x49, 0x6e, 0x69,
- 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x22, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x68,
- 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e,
- 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x4c, 0x61, 0x75, 0x6e,
+ 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x6e,
+ 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
+ 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
+ 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b,
+ 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1c, 0x2e, 0x76,
+ 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x47,
+ 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d,
+ 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49,
+ 0x6e, 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a,
+ 0x15, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d,
+ 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e,
0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61,
- 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70,
- 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56,
- 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c,
+ 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x4c,
0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x17, 0x4c,
- 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x78, 0x74, 0x65, 0x72,
- 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x65, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f,
+ 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x72, 0x0a, 0x17, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69,
+ 0x6e, 0x64, 0x65, 0x78, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45,
- 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f,
- 0x6f, 0x6b, 0x75, 0x70, 0x56, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
- 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x60, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
+ 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74,
0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a,
- 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d,
- 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x4d, 0x6f, 0x75, 0x6e,
- 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73,
- 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69,
- 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a,
- 0x0a, 0x0f, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
- 0x72, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f,
- 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x4d, 0x6f,
- 0x75, 0x6e, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73,
- 0x74, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f,
- 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
+ 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72,
+ 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74,
+ 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a,
+ 0x0d, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1f,
0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74,
- 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b,
- 0x0a, 0x10, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d,
- 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x4d,
- 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
- 0x65, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f,
- 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f,
- 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x4b, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x1c,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a,
- 0x14, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65,
- 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x52, 0x65, 0x62, 0x75,
- 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62,
- 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70,
- 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65,
+ 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
+ 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x67,
+ 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x48, 0x0a, 0x09, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76,
+ 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x6f, 0x77, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x4d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x63, 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f,
+ 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d,
+ 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76,
+ 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x69,
+ 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50,
+ 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a,
+ 0x14, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
+ 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c,
+ 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13, 0x52, 0x65, 0x62, 0x75,
+ 0x69, 0x6c, 0x64, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12,
+ 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75,
+ 0x69, 0x6c, 0x64, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66,
+ 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66,
+ 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x42, 0x79, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74,
+ 0x61, 0x74, 0x65, 0x42, 0x79, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
- 0x62, 0x75, 0x69, 0x6c, 0x64, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x47, 0x72, 0x61, 0x70,
- 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x52,
- 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66,
- 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x52, 0x65, 0x6c,
- 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
- 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
+ 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x79, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x52,
+ 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1e, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69,
+ 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61,
- 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
- 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x12, 0x52, 0x65, 0x6d,
- 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12,
- 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a,
- 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x43, 0x65, 0x6c,
- 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
- 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x43, 0x65, 0x6c, 0x6c,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x52, 0x65,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x20, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x11, 0x52, 0x65,
- 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12,
- 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74,
- 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x11, 0x52, 0x65, 0x6c,
+ 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x23,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61,
+ 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x52,
+ 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x1e, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63,
+ 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43,
+ 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61,
+ 0x72, 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x43, 0x65,
+ 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x57, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x68,
+ 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x62, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b,
- 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x69,
- 0x0a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
- 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x52, 0x75, 0x6e,
- 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x20, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74,
- 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x44, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63,
- 0x79, 0x12, 0x2d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65,
- 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c,
- 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74,
- 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69,
- 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x75, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x73,
- 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x2a,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68,
+ 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f,
+ 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x30, 0x01, 0x12, 0x69, 0x0a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57,
+ 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x75, 0x6e,
+ 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
+ 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
+ 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x75,
+ 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x53, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x75, 0x72,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x53, 0x68,
0x61, 0x72, 0x64, 0x49, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76,
- 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49,
- 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x53, 0x65, 0x74,
+ 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x2b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x49, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c,
+ 0x0a, 0x15, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74,
0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72,
- 0x6f, 0x6c, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e,
- 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x57, 0x72,
- 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x12, 0x25,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x66, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x19, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68,
- 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x6f, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x28, 0x2e, 0x76, 0x74,
+ 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b,
+ 0x53, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x74, 0x57, 0x72, 0x69, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x41, 0x64, 0x64, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x12, 0x25, 0x2e, 0x76, 0x74,
0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x53, 0x6c, 0x65, 0x65, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c,
- 0x65, 0x65, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x65,
- 0x65, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72,
- 0x64, 0x41, 0x64, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x41, 0x64,
- 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x11, 0x53,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
+ 0x69, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x19,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x16, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
+ 0x12, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61,
+ 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d,
+ 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x53, 0x6c, 0x65, 0x65, 0x70,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x53, 0x6c, 0x65, 0x65, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x53, 0x6c, 0x65, 0x65, 0x70, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72,
+ 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x60, 0x0a, 0x11, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c,
- 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a,
- 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74,
- 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f,
- 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
- 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x1a, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
- 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c,
- 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
- 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e,
- 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c,
- 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d,
- 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69,
- 0x61, 0x73, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c,
- 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a,
- 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
- 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
- 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x28, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
- 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x17, 0x56, 0x61,
- 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69,
- 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
- 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
- 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
+ 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x68, 0x61,
+ 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a,
+ 0x1a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c,
+ 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 0x76,
+ 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
+ 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c,
+ 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41,
+ 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x65,
+ 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x45, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1a,
0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0f, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x21, 0x2e, 0x76,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x56, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x22, 0x2e,
+ 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76,
0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
- 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44, 0x69, 0x66, 0x66, 0x44, 0x65,
- 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65,
- 0x73, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68,
- 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
- 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x48, 0x0a, 0x09, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1b, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74,
- 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x6f, 0x70, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74,
+ 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x56, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x72, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
+ 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a,
+ 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x12, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x75, 0x6d,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x74, 0x6f,
+ 0x70, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57,
+ 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74,
0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x57,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x6c, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74,
+ 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77,
+ 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54,
- 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52,
- 0x75, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x15, 0x57,
+ 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57,
+ 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x69,
+ 0x72, 0x72, 0x6f, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52,
+ 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f,
+ 0x72, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x6c, 0x0a, 0x15, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72,
+ 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69,
+ 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54,
- 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2b, 0x5a, 0x29, 0x76, 0x69, 0x74,
- 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f,
- 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2b,
+ 0x5a, 0x29, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65,
+ 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76,
+ 0x74, 0x63, 0x74, 0x6c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var file_vtctlservice_proto_goTypes = []any{
@@ -836,192 +843,194 @@ var file_vtctlservice_proto_goTypes = []any{
(*vtctldata.GetTabletsRequest)(nil), // 53: vtctldata.GetTabletsRequest
(*vtctldata.GetThrottlerStatusRequest)(nil), // 54: vtctldata.GetThrottlerStatusRequest
(*vtctldata.GetTopologyPathRequest)(nil), // 55: vtctldata.GetTopologyPathRequest
- (*vtctldata.GetUnresolvedTransactionsRequest)(nil), // 56: vtctldata.GetUnresolvedTransactionsRequest
- (*vtctldata.GetVersionRequest)(nil), // 57: vtctldata.GetVersionRequest
- (*vtctldata.GetVSchemaRequest)(nil), // 58: vtctldata.GetVSchemaRequest
- (*vtctldata.GetWorkflowsRequest)(nil), // 59: vtctldata.GetWorkflowsRequest
- (*vtctldata.InitShardPrimaryRequest)(nil), // 60: vtctldata.InitShardPrimaryRequest
- (*vtctldata.LaunchSchemaMigrationRequest)(nil), // 61: vtctldata.LaunchSchemaMigrationRequest
- (*vtctldata.LookupVindexCreateRequest)(nil), // 62: vtctldata.LookupVindexCreateRequest
- (*vtctldata.LookupVindexExternalizeRequest)(nil), // 63: vtctldata.LookupVindexExternalizeRequest
- (*vtctldata.MaterializeCreateRequest)(nil), // 64: vtctldata.MaterializeCreateRequest
- (*vtctldata.MigrateCreateRequest)(nil), // 65: vtctldata.MigrateCreateRequest
- (*vtctldata.MountRegisterRequest)(nil), // 66: vtctldata.MountRegisterRequest
- (*vtctldata.MountUnregisterRequest)(nil), // 67: vtctldata.MountUnregisterRequest
- (*vtctldata.MountShowRequest)(nil), // 68: vtctldata.MountShowRequest
- (*vtctldata.MountListRequest)(nil), // 69: vtctldata.MountListRequest
- (*vtctldata.MoveTablesCreateRequest)(nil), // 70: vtctldata.MoveTablesCreateRequest
- (*vtctldata.MoveTablesCompleteRequest)(nil), // 71: vtctldata.MoveTablesCompleteRequest
- (*vtctldata.PingTabletRequest)(nil), // 72: vtctldata.PingTabletRequest
- (*vtctldata.PlannedReparentShardRequest)(nil), // 73: vtctldata.PlannedReparentShardRequest
- (*vtctldata.RebuildKeyspaceGraphRequest)(nil), // 74: vtctldata.RebuildKeyspaceGraphRequest
- (*vtctldata.RebuildVSchemaGraphRequest)(nil), // 75: vtctldata.RebuildVSchemaGraphRequest
- (*vtctldata.RefreshStateRequest)(nil), // 76: vtctldata.RefreshStateRequest
- (*vtctldata.RefreshStateByShardRequest)(nil), // 77: vtctldata.RefreshStateByShardRequest
- (*vtctldata.ReloadSchemaRequest)(nil), // 78: vtctldata.ReloadSchemaRequest
- (*vtctldata.ReloadSchemaKeyspaceRequest)(nil), // 79: vtctldata.ReloadSchemaKeyspaceRequest
- (*vtctldata.ReloadSchemaShardRequest)(nil), // 80: vtctldata.ReloadSchemaShardRequest
- (*vtctldata.RemoveBackupRequest)(nil), // 81: vtctldata.RemoveBackupRequest
- (*vtctldata.RemoveKeyspaceCellRequest)(nil), // 82: vtctldata.RemoveKeyspaceCellRequest
- (*vtctldata.RemoveShardCellRequest)(nil), // 83: vtctldata.RemoveShardCellRequest
- (*vtctldata.ReparentTabletRequest)(nil), // 84: vtctldata.ReparentTabletRequest
- (*vtctldata.ReshardCreateRequest)(nil), // 85: vtctldata.ReshardCreateRequest
- (*vtctldata.RestoreFromBackupRequest)(nil), // 86: vtctldata.RestoreFromBackupRequest
- (*vtctldata.RetrySchemaMigrationRequest)(nil), // 87: vtctldata.RetrySchemaMigrationRequest
- (*vtctldata.RunHealthCheckRequest)(nil), // 88: vtctldata.RunHealthCheckRequest
- (*vtctldata.SetKeyspaceDurabilityPolicyRequest)(nil), // 89: vtctldata.SetKeyspaceDurabilityPolicyRequest
- (*vtctldata.SetShardIsPrimaryServingRequest)(nil), // 90: vtctldata.SetShardIsPrimaryServingRequest
- (*vtctldata.SetShardTabletControlRequest)(nil), // 91: vtctldata.SetShardTabletControlRequest
- (*vtctldata.SetWritableRequest)(nil), // 92: vtctldata.SetWritableRequest
- (*vtctldata.ShardReplicationAddRequest)(nil), // 93: vtctldata.ShardReplicationAddRequest
- (*vtctldata.ShardReplicationFixRequest)(nil), // 94: vtctldata.ShardReplicationFixRequest
- (*vtctldata.ShardReplicationPositionsRequest)(nil), // 95: vtctldata.ShardReplicationPositionsRequest
- (*vtctldata.ShardReplicationRemoveRequest)(nil), // 96: vtctldata.ShardReplicationRemoveRequest
- (*vtctldata.SleepTabletRequest)(nil), // 97: vtctldata.SleepTabletRequest
- (*vtctldata.SourceShardAddRequest)(nil), // 98: vtctldata.SourceShardAddRequest
- (*vtctldata.SourceShardDeleteRequest)(nil), // 99: vtctldata.SourceShardDeleteRequest
- (*vtctldata.StartReplicationRequest)(nil), // 100: vtctldata.StartReplicationRequest
- (*vtctldata.StopReplicationRequest)(nil), // 101: vtctldata.StopReplicationRequest
- (*vtctldata.TabletExternallyReparentedRequest)(nil), // 102: vtctldata.TabletExternallyReparentedRequest
- (*vtctldata.UpdateCellInfoRequest)(nil), // 103: vtctldata.UpdateCellInfoRequest
- (*vtctldata.UpdateCellsAliasRequest)(nil), // 104: vtctldata.UpdateCellsAliasRequest
- (*vtctldata.ValidateRequest)(nil), // 105: vtctldata.ValidateRequest
- (*vtctldata.ValidateKeyspaceRequest)(nil), // 106: vtctldata.ValidateKeyspaceRequest
- (*vtctldata.ValidateSchemaKeyspaceRequest)(nil), // 107: vtctldata.ValidateSchemaKeyspaceRequest
- (*vtctldata.ValidateShardRequest)(nil), // 108: vtctldata.ValidateShardRequest
- (*vtctldata.ValidateVersionKeyspaceRequest)(nil), // 109: vtctldata.ValidateVersionKeyspaceRequest
- (*vtctldata.ValidateVersionShardRequest)(nil), // 110: vtctldata.ValidateVersionShardRequest
- (*vtctldata.ValidateVSchemaRequest)(nil), // 111: vtctldata.ValidateVSchemaRequest
- (*vtctldata.VDiffCreateRequest)(nil), // 112: vtctldata.VDiffCreateRequest
- (*vtctldata.VDiffDeleteRequest)(nil), // 113: vtctldata.VDiffDeleteRequest
- (*vtctldata.VDiffResumeRequest)(nil), // 114: vtctldata.VDiffResumeRequest
- (*vtctldata.VDiffShowRequest)(nil), // 115: vtctldata.VDiffShowRequest
- (*vtctldata.VDiffStopRequest)(nil), // 116: vtctldata.VDiffStopRequest
- (*vtctldata.WorkflowDeleteRequest)(nil), // 117: vtctldata.WorkflowDeleteRequest
- (*vtctldata.WorkflowStatusRequest)(nil), // 118: vtctldata.WorkflowStatusRequest
- (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 119: vtctldata.WorkflowSwitchTrafficRequest
- (*vtctldata.WorkflowUpdateRequest)(nil), // 120: vtctldata.WorkflowUpdateRequest
- (*vtctldata.GetMirrorRulesRequest)(nil), // 121: vtctldata.GetMirrorRulesRequest
- (*vtctldata.WorkflowMirrorTrafficRequest)(nil), // 122: vtctldata.WorkflowMirrorTrafficRequest
- (*vtctldata.ExecuteVtctlCommandResponse)(nil), // 123: vtctldata.ExecuteVtctlCommandResponse
- (*vtctldata.AddCellInfoResponse)(nil), // 124: vtctldata.AddCellInfoResponse
- (*vtctldata.AddCellsAliasResponse)(nil), // 125: vtctldata.AddCellsAliasResponse
- (*vtctldata.ApplyRoutingRulesResponse)(nil), // 126: vtctldata.ApplyRoutingRulesResponse
- (*vtctldata.ApplySchemaResponse)(nil), // 127: vtctldata.ApplySchemaResponse
- (*vtctldata.ApplyKeyspaceRoutingRulesResponse)(nil), // 128: vtctldata.ApplyKeyspaceRoutingRulesResponse
- (*vtctldata.ApplyShardRoutingRulesResponse)(nil), // 129: vtctldata.ApplyShardRoutingRulesResponse
- (*vtctldata.ApplyVSchemaResponse)(nil), // 130: vtctldata.ApplyVSchemaResponse
- (*vtctldata.BackupResponse)(nil), // 131: vtctldata.BackupResponse
- (*vtctldata.CancelSchemaMigrationResponse)(nil), // 132: vtctldata.CancelSchemaMigrationResponse
- (*vtctldata.ChangeTabletTagsResponse)(nil), // 133: vtctldata.ChangeTabletTagsResponse
- (*vtctldata.ChangeTabletTypeResponse)(nil), // 134: vtctldata.ChangeTabletTypeResponse
- (*vtctldata.CheckThrottlerResponse)(nil), // 135: vtctldata.CheckThrottlerResponse
- (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 136: vtctldata.CleanupSchemaMigrationResponse
- (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 137: vtctldata.CompleteSchemaMigrationResponse
- (*vtctldata.ConcludeTransactionResponse)(nil), // 138: vtctldata.ConcludeTransactionResponse
- (*vtctldata.CreateKeyspaceResponse)(nil), // 139: vtctldata.CreateKeyspaceResponse
- (*vtctldata.CreateShardResponse)(nil), // 140: vtctldata.CreateShardResponse
- (*vtctldata.DeleteCellInfoResponse)(nil), // 141: vtctldata.DeleteCellInfoResponse
- (*vtctldata.DeleteCellsAliasResponse)(nil), // 142: vtctldata.DeleteCellsAliasResponse
- (*vtctldata.DeleteKeyspaceResponse)(nil), // 143: vtctldata.DeleteKeyspaceResponse
- (*vtctldata.DeleteShardsResponse)(nil), // 144: vtctldata.DeleteShardsResponse
- (*vtctldata.DeleteSrvVSchemaResponse)(nil), // 145: vtctldata.DeleteSrvVSchemaResponse
- (*vtctldata.DeleteTabletsResponse)(nil), // 146: vtctldata.DeleteTabletsResponse
- (*vtctldata.EmergencyReparentShardResponse)(nil), // 147: vtctldata.EmergencyReparentShardResponse
- (*vtctldata.ExecuteFetchAsAppResponse)(nil), // 148: vtctldata.ExecuteFetchAsAppResponse
- (*vtctldata.ExecuteFetchAsDBAResponse)(nil), // 149: vtctldata.ExecuteFetchAsDBAResponse
- (*vtctldata.ExecuteHookResponse)(nil), // 150: vtctldata.ExecuteHookResponse
- (*vtctldata.ExecuteMultiFetchAsDBAResponse)(nil), // 151: vtctldata.ExecuteMultiFetchAsDBAResponse
- (*vtctldata.FindAllShardsInKeyspaceResponse)(nil), // 152: vtctldata.FindAllShardsInKeyspaceResponse
- (*vtctldata.ForceCutOverSchemaMigrationResponse)(nil), // 153: vtctldata.ForceCutOverSchemaMigrationResponse
- (*vtctldata.GetBackupsResponse)(nil), // 154: vtctldata.GetBackupsResponse
- (*vtctldata.GetCellInfoResponse)(nil), // 155: vtctldata.GetCellInfoResponse
- (*vtctldata.GetCellInfoNamesResponse)(nil), // 156: vtctldata.GetCellInfoNamesResponse
- (*vtctldata.GetCellsAliasesResponse)(nil), // 157: vtctldata.GetCellsAliasesResponse
- (*vtctldata.GetFullStatusResponse)(nil), // 158: vtctldata.GetFullStatusResponse
- (*vtctldata.GetKeyspaceResponse)(nil), // 159: vtctldata.GetKeyspaceResponse
- (*vtctldata.GetKeyspacesResponse)(nil), // 160: vtctldata.GetKeyspacesResponse
- (*vtctldata.GetKeyspaceRoutingRulesResponse)(nil), // 161: vtctldata.GetKeyspaceRoutingRulesResponse
- (*vtctldata.GetPermissionsResponse)(nil), // 162: vtctldata.GetPermissionsResponse
- (*vtctldata.GetRoutingRulesResponse)(nil), // 163: vtctldata.GetRoutingRulesResponse
- (*vtctldata.GetSchemaResponse)(nil), // 164: vtctldata.GetSchemaResponse
- (*vtctldata.GetSchemaMigrationsResponse)(nil), // 165: vtctldata.GetSchemaMigrationsResponse
- (*vtctldata.GetShardReplicationResponse)(nil), // 166: vtctldata.GetShardReplicationResponse
- (*vtctldata.GetShardResponse)(nil), // 167: vtctldata.GetShardResponse
- (*vtctldata.GetShardRoutingRulesResponse)(nil), // 168: vtctldata.GetShardRoutingRulesResponse
- (*vtctldata.GetSrvKeyspaceNamesResponse)(nil), // 169: vtctldata.GetSrvKeyspaceNamesResponse
- (*vtctldata.GetSrvKeyspacesResponse)(nil), // 170: vtctldata.GetSrvKeyspacesResponse
- (*vtctldata.UpdateThrottlerConfigResponse)(nil), // 171: vtctldata.UpdateThrottlerConfigResponse
- (*vtctldata.GetSrvVSchemaResponse)(nil), // 172: vtctldata.GetSrvVSchemaResponse
- (*vtctldata.GetSrvVSchemasResponse)(nil), // 173: vtctldata.GetSrvVSchemasResponse
- (*vtctldata.GetTabletResponse)(nil), // 174: vtctldata.GetTabletResponse
- (*vtctldata.GetTabletsResponse)(nil), // 175: vtctldata.GetTabletsResponse
- (*vtctldata.GetThrottlerStatusResponse)(nil), // 176: vtctldata.GetThrottlerStatusResponse
- (*vtctldata.GetTopologyPathResponse)(nil), // 177: vtctldata.GetTopologyPathResponse
- (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 178: vtctldata.GetUnresolvedTransactionsResponse
- (*vtctldata.GetVersionResponse)(nil), // 179: vtctldata.GetVersionResponse
- (*vtctldata.GetVSchemaResponse)(nil), // 180: vtctldata.GetVSchemaResponse
- (*vtctldata.GetWorkflowsResponse)(nil), // 181: vtctldata.GetWorkflowsResponse
- (*vtctldata.InitShardPrimaryResponse)(nil), // 182: vtctldata.InitShardPrimaryResponse
- (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 183: vtctldata.LaunchSchemaMigrationResponse
- (*vtctldata.LookupVindexCreateResponse)(nil), // 184: vtctldata.LookupVindexCreateResponse
- (*vtctldata.LookupVindexExternalizeResponse)(nil), // 185: vtctldata.LookupVindexExternalizeResponse
- (*vtctldata.MaterializeCreateResponse)(nil), // 186: vtctldata.MaterializeCreateResponse
- (*vtctldata.WorkflowStatusResponse)(nil), // 187: vtctldata.WorkflowStatusResponse
- (*vtctldata.MountRegisterResponse)(nil), // 188: vtctldata.MountRegisterResponse
- (*vtctldata.MountUnregisterResponse)(nil), // 189: vtctldata.MountUnregisterResponse
- (*vtctldata.MountShowResponse)(nil), // 190: vtctldata.MountShowResponse
- (*vtctldata.MountListResponse)(nil), // 191: vtctldata.MountListResponse
- (*vtctldata.MoveTablesCompleteResponse)(nil), // 192: vtctldata.MoveTablesCompleteResponse
- (*vtctldata.PingTabletResponse)(nil), // 193: vtctldata.PingTabletResponse
- (*vtctldata.PlannedReparentShardResponse)(nil), // 194: vtctldata.PlannedReparentShardResponse
- (*vtctldata.RebuildKeyspaceGraphResponse)(nil), // 195: vtctldata.RebuildKeyspaceGraphResponse
- (*vtctldata.RebuildVSchemaGraphResponse)(nil), // 196: vtctldata.RebuildVSchemaGraphResponse
- (*vtctldata.RefreshStateResponse)(nil), // 197: vtctldata.RefreshStateResponse
- (*vtctldata.RefreshStateByShardResponse)(nil), // 198: vtctldata.RefreshStateByShardResponse
- (*vtctldata.ReloadSchemaResponse)(nil), // 199: vtctldata.ReloadSchemaResponse
- (*vtctldata.ReloadSchemaKeyspaceResponse)(nil), // 200: vtctldata.ReloadSchemaKeyspaceResponse
- (*vtctldata.ReloadSchemaShardResponse)(nil), // 201: vtctldata.ReloadSchemaShardResponse
- (*vtctldata.RemoveBackupResponse)(nil), // 202: vtctldata.RemoveBackupResponse
- (*vtctldata.RemoveKeyspaceCellResponse)(nil), // 203: vtctldata.RemoveKeyspaceCellResponse
- (*vtctldata.RemoveShardCellResponse)(nil), // 204: vtctldata.RemoveShardCellResponse
- (*vtctldata.ReparentTabletResponse)(nil), // 205: vtctldata.ReparentTabletResponse
- (*vtctldata.RestoreFromBackupResponse)(nil), // 206: vtctldata.RestoreFromBackupResponse
- (*vtctldata.RetrySchemaMigrationResponse)(nil), // 207: vtctldata.RetrySchemaMigrationResponse
- (*vtctldata.RunHealthCheckResponse)(nil), // 208: vtctldata.RunHealthCheckResponse
- (*vtctldata.SetKeyspaceDurabilityPolicyResponse)(nil), // 209: vtctldata.SetKeyspaceDurabilityPolicyResponse
- (*vtctldata.SetShardIsPrimaryServingResponse)(nil), // 210: vtctldata.SetShardIsPrimaryServingResponse
- (*vtctldata.SetShardTabletControlResponse)(nil), // 211: vtctldata.SetShardTabletControlResponse
- (*vtctldata.SetWritableResponse)(nil), // 212: vtctldata.SetWritableResponse
- (*vtctldata.ShardReplicationAddResponse)(nil), // 213: vtctldata.ShardReplicationAddResponse
- (*vtctldata.ShardReplicationFixResponse)(nil), // 214: vtctldata.ShardReplicationFixResponse
- (*vtctldata.ShardReplicationPositionsResponse)(nil), // 215: vtctldata.ShardReplicationPositionsResponse
- (*vtctldata.ShardReplicationRemoveResponse)(nil), // 216: vtctldata.ShardReplicationRemoveResponse
- (*vtctldata.SleepTabletResponse)(nil), // 217: vtctldata.SleepTabletResponse
- (*vtctldata.SourceShardAddResponse)(nil), // 218: vtctldata.SourceShardAddResponse
- (*vtctldata.SourceShardDeleteResponse)(nil), // 219: vtctldata.SourceShardDeleteResponse
- (*vtctldata.StartReplicationResponse)(nil), // 220: vtctldata.StartReplicationResponse
- (*vtctldata.StopReplicationResponse)(nil), // 221: vtctldata.StopReplicationResponse
- (*vtctldata.TabletExternallyReparentedResponse)(nil), // 222: vtctldata.TabletExternallyReparentedResponse
- (*vtctldata.UpdateCellInfoResponse)(nil), // 223: vtctldata.UpdateCellInfoResponse
- (*vtctldata.UpdateCellsAliasResponse)(nil), // 224: vtctldata.UpdateCellsAliasResponse
- (*vtctldata.ValidateResponse)(nil), // 225: vtctldata.ValidateResponse
- (*vtctldata.ValidateKeyspaceResponse)(nil), // 226: vtctldata.ValidateKeyspaceResponse
- (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 227: vtctldata.ValidateSchemaKeyspaceResponse
- (*vtctldata.ValidateShardResponse)(nil), // 228: vtctldata.ValidateShardResponse
- (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 229: vtctldata.ValidateVersionKeyspaceResponse
- (*vtctldata.ValidateVersionShardResponse)(nil), // 230: vtctldata.ValidateVersionShardResponse
- (*vtctldata.ValidateVSchemaResponse)(nil), // 231: vtctldata.ValidateVSchemaResponse
- (*vtctldata.VDiffCreateResponse)(nil), // 232: vtctldata.VDiffCreateResponse
- (*vtctldata.VDiffDeleteResponse)(nil), // 233: vtctldata.VDiffDeleteResponse
- (*vtctldata.VDiffResumeResponse)(nil), // 234: vtctldata.VDiffResumeResponse
- (*vtctldata.VDiffShowResponse)(nil), // 235: vtctldata.VDiffShowResponse
- (*vtctldata.VDiffStopResponse)(nil), // 236: vtctldata.VDiffStopResponse
- (*vtctldata.WorkflowDeleteResponse)(nil), // 237: vtctldata.WorkflowDeleteResponse
- (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 238: vtctldata.WorkflowSwitchTrafficResponse
- (*vtctldata.WorkflowUpdateResponse)(nil), // 239: vtctldata.WorkflowUpdateResponse
- (*vtctldata.GetMirrorRulesResponse)(nil), // 240: vtctldata.GetMirrorRulesResponse
- (*vtctldata.WorkflowMirrorTrafficResponse)(nil), // 241: vtctldata.WorkflowMirrorTrafficResponse
+ (*vtctldata.GetTransactionInfoRequest)(nil), // 56: vtctldata.GetTransactionInfoRequest
+ (*vtctldata.GetUnresolvedTransactionsRequest)(nil), // 57: vtctldata.GetUnresolvedTransactionsRequest
+ (*vtctldata.GetVersionRequest)(nil), // 58: vtctldata.GetVersionRequest
+ (*vtctldata.GetVSchemaRequest)(nil), // 59: vtctldata.GetVSchemaRequest
+ (*vtctldata.GetWorkflowsRequest)(nil), // 60: vtctldata.GetWorkflowsRequest
+ (*vtctldata.InitShardPrimaryRequest)(nil), // 61: vtctldata.InitShardPrimaryRequest
+ (*vtctldata.LaunchSchemaMigrationRequest)(nil), // 62: vtctldata.LaunchSchemaMigrationRequest
+ (*vtctldata.LookupVindexCreateRequest)(nil), // 63: vtctldata.LookupVindexCreateRequest
+ (*vtctldata.LookupVindexExternalizeRequest)(nil), // 64: vtctldata.LookupVindexExternalizeRequest
+ (*vtctldata.MaterializeCreateRequest)(nil), // 65: vtctldata.MaterializeCreateRequest
+ (*vtctldata.MigrateCreateRequest)(nil), // 66: vtctldata.MigrateCreateRequest
+ (*vtctldata.MountRegisterRequest)(nil), // 67: vtctldata.MountRegisterRequest
+ (*vtctldata.MountUnregisterRequest)(nil), // 68: vtctldata.MountUnregisterRequest
+ (*vtctldata.MountShowRequest)(nil), // 69: vtctldata.MountShowRequest
+ (*vtctldata.MountListRequest)(nil), // 70: vtctldata.MountListRequest
+ (*vtctldata.MoveTablesCreateRequest)(nil), // 71: vtctldata.MoveTablesCreateRequest
+ (*vtctldata.MoveTablesCompleteRequest)(nil), // 72: vtctldata.MoveTablesCompleteRequest
+ (*vtctldata.PingTabletRequest)(nil), // 73: vtctldata.PingTabletRequest
+ (*vtctldata.PlannedReparentShardRequest)(nil), // 74: vtctldata.PlannedReparentShardRequest
+ (*vtctldata.RebuildKeyspaceGraphRequest)(nil), // 75: vtctldata.RebuildKeyspaceGraphRequest
+ (*vtctldata.RebuildVSchemaGraphRequest)(nil), // 76: vtctldata.RebuildVSchemaGraphRequest
+ (*vtctldata.RefreshStateRequest)(nil), // 77: vtctldata.RefreshStateRequest
+ (*vtctldata.RefreshStateByShardRequest)(nil), // 78: vtctldata.RefreshStateByShardRequest
+ (*vtctldata.ReloadSchemaRequest)(nil), // 79: vtctldata.ReloadSchemaRequest
+ (*vtctldata.ReloadSchemaKeyspaceRequest)(nil), // 80: vtctldata.ReloadSchemaKeyspaceRequest
+ (*vtctldata.ReloadSchemaShardRequest)(nil), // 81: vtctldata.ReloadSchemaShardRequest
+ (*vtctldata.RemoveBackupRequest)(nil), // 82: vtctldata.RemoveBackupRequest
+ (*vtctldata.RemoveKeyspaceCellRequest)(nil), // 83: vtctldata.RemoveKeyspaceCellRequest
+ (*vtctldata.RemoveShardCellRequest)(nil), // 84: vtctldata.RemoveShardCellRequest
+ (*vtctldata.ReparentTabletRequest)(nil), // 85: vtctldata.ReparentTabletRequest
+ (*vtctldata.ReshardCreateRequest)(nil), // 86: vtctldata.ReshardCreateRequest
+ (*vtctldata.RestoreFromBackupRequest)(nil), // 87: vtctldata.RestoreFromBackupRequest
+ (*vtctldata.RetrySchemaMigrationRequest)(nil), // 88: vtctldata.RetrySchemaMigrationRequest
+ (*vtctldata.RunHealthCheckRequest)(nil), // 89: vtctldata.RunHealthCheckRequest
+ (*vtctldata.SetKeyspaceDurabilityPolicyRequest)(nil), // 90: vtctldata.SetKeyspaceDurabilityPolicyRequest
+ (*vtctldata.SetShardIsPrimaryServingRequest)(nil), // 91: vtctldata.SetShardIsPrimaryServingRequest
+ (*vtctldata.SetShardTabletControlRequest)(nil), // 92: vtctldata.SetShardTabletControlRequest
+ (*vtctldata.SetWritableRequest)(nil), // 93: vtctldata.SetWritableRequest
+ (*vtctldata.ShardReplicationAddRequest)(nil), // 94: vtctldata.ShardReplicationAddRequest
+ (*vtctldata.ShardReplicationFixRequest)(nil), // 95: vtctldata.ShardReplicationFixRequest
+ (*vtctldata.ShardReplicationPositionsRequest)(nil), // 96: vtctldata.ShardReplicationPositionsRequest
+ (*vtctldata.ShardReplicationRemoveRequest)(nil), // 97: vtctldata.ShardReplicationRemoveRequest
+ (*vtctldata.SleepTabletRequest)(nil), // 98: vtctldata.SleepTabletRequest
+ (*vtctldata.SourceShardAddRequest)(nil), // 99: vtctldata.SourceShardAddRequest
+ (*vtctldata.SourceShardDeleteRequest)(nil), // 100: vtctldata.SourceShardDeleteRequest
+ (*vtctldata.StartReplicationRequest)(nil), // 101: vtctldata.StartReplicationRequest
+ (*vtctldata.StopReplicationRequest)(nil), // 102: vtctldata.StopReplicationRequest
+ (*vtctldata.TabletExternallyReparentedRequest)(nil), // 103: vtctldata.TabletExternallyReparentedRequest
+ (*vtctldata.UpdateCellInfoRequest)(nil), // 104: vtctldata.UpdateCellInfoRequest
+ (*vtctldata.UpdateCellsAliasRequest)(nil), // 105: vtctldata.UpdateCellsAliasRequest
+ (*vtctldata.ValidateRequest)(nil), // 106: vtctldata.ValidateRequest
+ (*vtctldata.ValidateKeyspaceRequest)(nil), // 107: vtctldata.ValidateKeyspaceRequest
+ (*vtctldata.ValidateSchemaKeyspaceRequest)(nil), // 108: vtctldata.ValidateSchemaKeyspaceRequest
+ (*vtctldata.ValidateShardRequest)(nil), // 109: vtctldata.ValidateShardRequest
+ (*vtctldata.ValidateVersionKeyspaceRequest)(nil), // 110: vtctldata.ValidateVersionKeyspaceRequest
+ (*vtctldata.ValidateVersionShardRequest)(nil), // 111: vtctldata.ValidateVersionShardRequest
+ (*vtctldata.ValidateVSchemaRequest)(nil), // 112: vtctldata.ValidateVSchemaRequest
+ (*vtctldata.VDiffCreateRequest)(nil), // 113: vtctldata.VDiffCreateRequest
+ (*vtctldata.VDiffDeleteRequest)(nil), // 114: vtctldata.VDiffDeleteRequest
+ (*vtctldata.VDiffResumeRequest)(nil), // 115: vtctldata.VDiffResumeRequest
+ (*vtctldata.VDiffShowRequest)(nil), // 116: vtctldata.VDiffShowRequest
+ (*vtctldata.VDiffStopRequest)(nil), // 117: vtctldata.VDiffStopRequest
+ (*vtctldata.WorkflowDeleteRequest)(nil), // 118: vtctldata.WorkflowDeleteRequest
+ (*vtctldata.WorkflowStatusRequest)(nil), // 119: vtctldata.WorkflowStatusRequest
+ (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 120: vtctldata.WorkflowSwitchTrafficRequest
+ (*vtctldata.WorkflowUpdateRequest)(nil), // 121: vtctldata.WorkflowUpdateRequest
+ (*vtctldata.GetMirrorRulesRequest)(nil), // 122: vtctldata.GetMirrorRulesRequest
+ (*vtctldata.WorkflowMirrorTrafficRequest)(nil), // 123: vtctldata.WorkflowMirrorTrafficRequest
+ (*vtctldata.ExecuteVtctlCommandResponse)(nil), // 124: vtctldata.ExecuteVtctlCommandResponse
+ (*vtctldata.AddCellInfoResponse)(nil), // 125: vtctldata.AddCellInfoResponse
+ (*vtctldata.AddCellsAliasResponse)(nil), // 126: vtctldata.AddCellsAliasResponse
+ (*vtctldata.ApplyRoutingRulesResponse)(nil), // 127: vtctldata.ApplyRoutingRulesResponse
+ (*vtctldata.ApplySchemaResponse)(nil), // 128: vtctldata.ApplySchemaResponse
+ (*vtctldata.ApplyKeyspaceRoutingRulesResponse)(nil), // 129: vtctldata.ApplyKeyspaceRoutingRulesResponse
+ (*vtctldata.ApplyShardRoutingRulesResponse)(nil), // 130: vtctldata.ApplyShardRoutingRulesResponse
+ (*vtctldata.ApplyVSchemaResponse)(nil), // 131: vtctldata.ApplyVSchemaResponse
+ (*vtctldata.BackupResponse)(nil), // 132: vtctldata.BackupResponse
+ (*vtctldata.CancelSchemaMigrationResponse)(nil), // 133: vtctldata.CancelSchemaMigrationResponse
+ (*vtctldata.ChangeTabletTagsResponse)(nil), // 134: vtctldata.ChangeTabletTagsResponse
+ (*vtctldata.ChangeTabletTypeResponse)(nil), // 135: vtctldata.ChangeTabletTypeResponse
+ (*vtctldata.CheckThrottlerResponse)(nil), // 136: vtctldata.CheckThrottlerResponse
+ (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 137: vtctldata.CleanupSchemaMigrationResponse
+ (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 138: vtctldata.CompleteSchemaMigrationResponse
+ (*vtctldata.ConcludeTransactionResponse)(nil), // 139: vtctldata.ConcludeTransactionResponse
+ (*vtctldata.CreateKeyspaceResponse)(nil), // 140: vtctldata.CreateKeyspaceResponse
+ (*vtctldata.CreateShardResponse)(nil), // 141: vtctldata.CreateShardResponse
+ (*vtctldata.DeleteCellInfoResponse)(nil), // 142: vtctldata.DeleteCellInfoResponse
+ (*vtctldata.DeleteCellsAliasResponse)(nil), // 143: vtctldata.DeleteCellsAliasResponse
+ (*vtctldata.DeleteKeyspaceResponse)(nil), // 144: vtctldata.DeleteKeyspaceResponse
+ (*vtctldata.DeleteShardsResponse)(nil), // 145: vtctldata.DeleteShardsResponse
+ (*vtctldata.DeleteSrvVSchemaResponse)(nil), // 146: vtctldata.DeleteSrvVSchemaResponse
+ (*vtctldata.DeleteTabletsResponse)(nil), // 147: vtctldata.DeleteTabletsResponse
+ (*vtctldata.EmergencyReparentShardResponse)(nil), // 148: vtctldata.EmergencyReparentShardResponse
+ (*vtctldata.ExecuteFetchAsAppResponse)(nil), // 149: vtctldata.ExecuteFetchAsAppResponse
+ (*vtctldata.ExecuteFetchAsDBAResponse)(nil), // 150: vtctldata.ExecuteFetchAsDBAResponse
+ (*vtctldata.ExecuteHookResponse)(nil), // 151: vtctldata.ExecuteHookResponse
+ (*vtctldata.ExecuteMultiFetchAsDBAResponse)(nil), // 152: vtctldata.ExecuteMultiFetchAsDBAResponse
+ (*vtctldata.FindAllShardsInKeyspaceResponse)(nil), // 153: vtctldata.FindAllShardsInKeyspaceResponse
+ (*vtctldata.ForceCutOverSchemaMigrationResponse)(nil), // 154: vtctldata.ForceCutOverSchemaMigrationResponse
+ (*vtctldata.GetBackupsResponse)(nil), // 155: vtctldata.GetBackupsResponse
+ (*vtctldata.GetCellInfoResponse)(nil), // 156: vtctldata.GetCellInfoResponse
+ (*vtctldata.GetCellInfoNamesResponse)(nil), // 157: vtctldata.GetCellInfoNamesResponse
+ (*vtctldata.GetCellsAliasesResponse)(nil), // 158: vtctldata.GetCellsAliasesResponse
+ (*vtctldata.GetFullStatusResponse)(nil), // 159: vtctldata.GetFullStatusResponse
+ (*vtctldata.GetKeyspaceResponse)(nil), // 160: vtctldata.GetKeyspaceResponse
+ (*vtctldata.GetKeyspacesResponse)(nil), // 161: vtctldata.GetKeyspacesResponse
+ (*vtctldata.GetKeyspaceRoutingRulesResponse)(nil), // 162: vtctldata.GetKeyspaceRoutingRulesResponse
+ (*vtctldata.GetPermissionsResponse)(nil), // 163: vtctldata.GetPermissionsResponse
+ (*vtctldata.GetRoutingRulesResponse)(nil), // 164: vtctldata.GetRoutingRulesResponse
+ (*vtctldata.GetSchemaResponse)(nil), // 165: vtctldata.GetSchemaResponse
+ (*vtctldata.GetSchemaMigrationsResponse)(nil), // 166: vtctldata.GetSchemaMigrationsResponse
+ (*vtctldata.GetShardReplicationResponse)(nil), // 167: vtctldata.GetShardReplicationResponse
+ (*vtctldata.GetShardResponse)(nil), // 168: vtctldata.GetShardResponse
+ (*vtctldata.GetShardRoutingRulesResponse)(nil), // 169: vtctldata.GetShardRoutingRulesResponse
+ (*vtctldata.GetSrvKeyspaceNamesResponse)(nil), // 170: vtctldata.GetSrvKeyspaceNamesResponse
+ (*vtctldata.GetSrvKeyspacesResponse)(nil), // 171: vtctldata.GetSrvKeyspacesResponse
+ (*vtctldata.UpdateThrottlerConfigResponse)(nil), // 172: vtctldata.UpdateThrottlerConfigResponse
+ (*vtctldata.GetSrvVSchemaResponse)(nil), // 173: vtctldata.GetSrvVSchemaResponse
+ (*vtctldata.GetSrvVSchemasResponse)(nil), // 174: vtctldata.GetSrvVSchemasResponse
+ (*vtctldata.GetTabletResponse)(nil), // 175: vtctldata.GetTabletResponse
+ (*vtctldata.GetTabletsResponse)(nil), // 176: vtctldata.GetTabletsResponse
+ (*vtctldata.GetThrottlerStatusResponse)(nil), // 177: vtctldata.GetThrottlerStatusResponse
+ (*vtctldata.GetTopologyPathResponse)(nil), // 178: vtctldata.GetTopologyPathResponse
+ (*vtctldata.GetTransactionInfoResponse)(nil), // 179: vtctldata.GetTransactionInfoResponse
+ (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 180: vtctldata.GetUnresolvedTransactionsResponse
+ (*vtctldata.GetVersionResponse)(nil), // 181: vtctldata.GetVersionResponse
+ (*vtctldata.GetVSchemaResponse)(nil), // 182: vtctldata.GetVSchemaResponse
+ (*vtctldata.GetWorkflowsResponse)(nil), // 183: vtctldata.GetWorkflowsResponse
+ (*vtctldata.InitShardPrimaryResponse)(nil), // 184: vtctldata.InitShardPrimaryResponse
+ (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 185: vtctldata.LaunchSchemaMigrationResponse
+ (*vtctldata.LookupVindexCreateResponse)(nil), // 186: vtctldata.LookupVindexCreateResponse
+ (*vtctldata.LookupVindexExternalizeResponse)(nil), // 187: vtctldata.LookupVindexExternalizeResponse
+ (*vtctldata.MaterializeCreateResponse)(nil), // 188: vtctldata.MaterializeCreateResponse
+ (*vtctldata.WorkflowStatusResponse)(nil), // 189: vtctldata.WorkflowStatusResponse
+ (*vtctldata.MountRegisterResponse)(nil), // 190: vtctldata.MountRegisterResponse
+ (*vtctldata.MountUnregisterResponse)(nil), // 191: vtctldata.MountUnregisterResponse
+ (*vtctldata.MountShowResponse)(nil), // 192: vtctldata.MountShowResponse
+ (*vtctldata.MountListResponse)(nil), // 193: vtctldata.MountListResponse
+ (*vtctldata.MoveTablesCompleteResponse)(nil), // 194: vtctldata.MoveTablesCompleteResponse
+ (*vtctldata.PingTabletResponse)(nil), // 195: vtctldata.PingTabletResponse
+ (*vtctldata.PlannedReparentShardResponse)(nil), // 196: vtctldata.PlannedReparentShardResponse
+ (*vtctldata.RebuildKeyspaceGraphResponse)(nil), // 197: vtctldata.RebuildKeyspaceGraphResponse
+ (*vtctldata.RebuildVSchemaGraphResponse)(nil), // 198: vtctldata.RebuildVSchemaGraphResponse
+ (*vtctldata.RefreshStateResponse)(nil), // 199: vtctldata.RefreshStateResponse
+ (*vtctldata.RefreshStateByShardResponse)(nil), // 200: vtctldata.RefreshStateByShardResponse
+ (*vtctldata.ReloadSchemaResponse)(nil), // 201: vtctldata.ReloadSchemaResponse
+ (*vtctldata.ReloadSchemaKeyspaceResponse)(nil), // 202: vtctldata.ReloadSchemaKeyspaceResponse
+ (*vtctldata.ReloadSchemaShardResponse)(nil), // 203: vtctldata.ReloadSchemaShardResponse
+ (*vtctldata.RemoveBackupResponse)(nil), // 204: vtctldata.RemoveBackupResponse
+ (*vtctldata.RemoveKeyspaceCellResponse)(nil), // 205: vtctldata.RemoveKeyspaceCellResponse
+ (*vtctldata.RemoveShardCellResponse)(nil), // 206: vtctldata.RemoveShardCellResponse
+ (*vtctldata.ReparentTabletResponse)(nil), // 207: vtctldata.ReparentTabletResponse
+ (*vtctldata.RestoreFromBackupResponse)(nil), // 208: vtctldata.RestoreFromBackupResponse
+ (*vtctldata.RetrySchemaMigrationResponse)(nil), // 209: vtctldata.RetrySchemaMigrationResponse
+ (*vtctldata.RunHealthCheckResponse)(nil), // 210: vtctldata.RunHealthCheckResponse
+ (*vtctldata.SetKeyspaceDurabilityPolicyResponse)(nil), // 211: vtctldata.SetKeyspaceDurabilityPolicyResponse
+ (*vtctldata.SetShardIsPrimaryServingResponse)(nil), // 212: vtctldata.SetShardIsPrimaryServingResponse
+ (*vtctldata.SetShardTabletControlResponse)(nil), // 213: vtctldata.SetShardTabletControlResponse
+ (*vtctldata.SetWritableResponse)(nil), // 214: vtctldata.SetWritableResponse
+ (*vtctldata.ShardReplicationAddResponse)(nil), // 215: vtctldata.ShardReplicationAddResponse
+ (*vtctldata.ShardReplicationFixResponse)(nil), // 216: vtctldata.ShardReplicationFixResponse
+ (*vtctldata.ShardReplicationPositionsResponse)(nil), // 217: vtctldata.ShardReplicationPositionsResponse
+ (*vtctldata.ShardReplicationRemoveResponse)(nil), // 218: vtctldata.ShardReplicationRemoveResponse
+ (*vtctldata.SleepTabletResponse)(nil), // 219: vtctldata.SleepTabletResponse
+ (*vtctldata.SourceShardAddResponse)(nil), // 220: vtctldata.SourceShardAddResponse
+ (*vtctldata.SourceShardDeleteResponse)(nil), // 221: vtctldata.SourceShardDeleteResponse
+ (*vtctldata.StartReplicationResponse)(nil), // 222: vtctldata.StartReplicationResponse
+ (*vtctldata.StopReplicationResponse)(nil), // 223: vtctldata.StopReplicationResponse
+ (*vtctldata.TabletExternallyReparentedResponse)(nil), // 224: vtctldata.TabletExternallyReparentedResponse
+ (*vtctldata.UpdateCellInfoResponse)(nil), // 225: vtctldata.UpdateCellInfoResponse
+ (*vtctldata.UpdateCellsAliasResponse)(nil), // 226: vtctldata.UpdateCellsAliasResponse
+ (*vtctldata.ValidateResponse)(nil), // 227: vtctldata.ValidateResponse
+ (*vtctldata.ValidateKeyspaceResponse)(nil), // 228: vtctldata.ValidateKeyspaceResponse
+ (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 229: vtctldata.ValidateSchemaKeyspaceResponse
+ (*vtctldata.ValidateShardResponse)(nil), // 230: vtctldata.ValidateShardResponse
+ (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 231: vtctldata.ValidateVersionKeyspaceResponse
+ (*vtctldata.ValidateVersionShardResponse)(nil), // 232: vtctldata.ValidateVersionShardResponse
+ (*vtctldata.ValidateVSchemaResponse)(nil), // 233: vtctldata.ValidateVSchemaResponse
+ (*vtctldata.VDiffCreateResponse)(nil), // 234: vtctldata.VDiffCreateResponse
+ (*vtctldata.VDiffDeleteResponse)(nil), // 235: vtctldata.VDiffDeleteResponse
+ (*vtctldata.VDiffResumeResponse)(nil), // 236: vtctldata.VDiffResumeResponse
+ (*vtctldata.VDiffShowResponse)(nil), // 237: vtctldata.VDiffShowResponse
+ (*vtctldata.VDiffStopResponse)(nil), // 238: vtctldata.VDiffStopResponse
+ (*vtctldata.WorkflowDeleteResponse)(nil), // 239: vtctldata.WorkflowDeleteResponse
+ (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 240: vtctldata.WorkflowSwitchTrafficResponse
+ (*vtctldata.WorkflowUpdateResponse)(nil), // 241: vtctldata.WorkflowUpdateResponse
+ (*vtctldata.GetMirrorRulesResponse)(nil), // 242: vtctldata.GetMirrorRulesResponse
+ (*vtctldata.WorkflowMirrorTrafficResponse)(nil), // 243: vtctldata.WorkflowMirrorTrafficResponse
}
var file_vtctlservice_proto_depIdxs = []int32{
0, // 0: vtctlservice.Vtctl.ExecuteVtctlCommand:input_type -> vtctldata.ExecuteVtctlCommandRequest
@@ -1080,198 +1089,200 @@ var file_vtctlservice_proto_depIdxs = []int32{
53, // 53: vtctlservice.Vtctld.GetTablets:input_type -> vtctldata.GetTabletsRequest
54, // 54: vtctlservice.Vtctld.GetThrottlerStatus:input_type -> vtctldata.GetThrottlerStatusRequest
55, // 55: vtctlservice.Vtctld.GetTopologyPath:input_type -> vtctldata.GetTopologyPathRequest
- 56, // 56: vtctlservice.Vtctld.GetUnresolvedTransactions:input_type -> vtctldata.GetUnresolvedTransactionsRequest
- 57, // 57: vtctlservice.Vtctld.GetVersion:input_type -> vtctldata.GetVersionRequest
- 58, // 58: vtctlservice.Vtctld.GetVSchema:input_type -> vtctldata.GetVSchemaRequest
- 59, // 59: vtctlservice.Vtctld.GetWorkflows:input_type -> vtctldata.GetWorkflowsRequest
- 60, // 60: vtctlservice.Vtctld.InitShardPrimary:input_type -> vtctldata.InitShardPrimaryRequest
- 61, // 61: vtctlservice.Vtctld.LaunchSchemaMigration:input_type -> vtctldata.LaunchSchemaMigrationRequest
- 62, // 62: vtctlservice.Vtctld.LookupVindexCreate:input_type -> vtctldata.LookupVindexCreateRequest
- 63, // 63: vtctlservice.Vtctld.LookupVindexExternalize:input_type -> vtctldata.LookupVindexExternalizeRequest
- 64, // 64: vtctlservice.Vtctld.MaterializeCreate:input_type -> vtctldata.MaterializeCreateRequest
- 65, // 65: vtctlservice.Vtctld.MigrateCreate:input_type -> vtctldata.MigrateCreateRequest
- 66, // 66: vtctlservice.Vtctld.MountRegister:input_type -> vtctldata.MountRegisterRequest
- 67, // 67: vtctlservice.Vtctld.MountUnregister:input_type -> vtctldata.MountUnregisterRequest
- 68, // 68: vtctlservice.Vtctld.MountShow:input_type -> vtctldata.MountShowRequest
- 69, // 69: vtctlservice.Vtctld.MountList:input_type -> vtctldata.MountListRequest
- 70, // 70: vtctlservice.Vtctld.MoveTablesCreate:input_type -> vtctldata.MoveTablesCreateRequest
- 71, // 71: vtctlservice.Vtctld.MoveTablesComplete:input_type -> vtctldata.MoveTablesCompleteRequest
- 72, // 72: vtctlservice.Vtctld.PingTablet:input_type -> vtctldata.PingTabletRequest
- 73, // 73: vtctlservice.Vtctld.PlannedReparentShard:input_type -> vtctldata.PlannedReparentShardRequest
- 74, // 74: vtctlservice.Vtctld.RebuildKeyspaceGraph:input_type -> vtctldata.RebuildKeyspaceGraphRequest
- 75, // 75: vtctlservice.Vtctld.RebuildVSchemaGraph:input_type -> vtctldata.RebuildVSchemaGraphRequest
- 76, // 76: vtctlservice.Vtctld.RefreshState:input_type -> vtctldata.RefreshStateRequest
- 77, // 77: vtctlservice.Vtctld.RefreshStateByShard:input_type -> vtctldata.RefreshStateByShardRequest
- 78, // 78: vtctlservice.Vtctld.ReloadSchema:input_type -> vtctldata.ReloadSchemaRequest
- 79, // 79: vtctlservice.Vtctld.ReloadSchemaKeyspace:input_type -> vtctldata.ReloadSchemaKeyspaceRequest
- 80, // 80: vtctlservice.Vtctld.ReloadSchemaShard:input_type -> vtctldata.ReloadSchemaShardRequest
- 81, // 81: vtctlservice.Vtctld.RemoveBackup:input_type -> vtctldata.RemoveBackupRequest
- 82, // 82: vtctlservice.Vtctld.RemoveKeyspaceCell:input_type -> vtctldata.RemoveKeyspaceCellRequest
- 83, // 83: vtctlservice.Vtctld.RemoveShardCell:input_type -> vtctldata.RemoveShardCellRequest
- 84, // 84: vtctlservice.Vtctld.ReparentTablet:input_type -> vtctldata.ReparentTabletRequest
- 85, // 85: vtctlservice.Vtctld.ReshardCreate:input_type -> vtctldata.ReshardCreateRequest
- 86, // 86: vtctlservice.Vtctld.RestoreFromBackup:input_type -> vtctldata.RestoreFromBackupRequest
- 87, // 87: vtctlservice.Vtctld.RetrySchemaMigration:input_type -> vtctldata.RetrySchemaMigrationRequest
- 88, // 88: vtctlservice.Vtctld.RunHealthCheck:input_type -> vtctldata.RunHealthCheckRequest
- 89, // 89: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:input_type -> vtctldata.SetKeyspaceDurabilityPolicyRequest
- 90, // 90: vtctlservice.Vtctld.SetShardIsPrimaryServing:input_type -> vtctldata.SetShardIsPrimaryServingRequest
- 91, // 91: vtctlservice.Vtctld.SetShardTabletControl:input_type -> vtctldata.SetShardTabletControlRequest
- 92, // 92: vtctlservice.Vtctld.SetWritable:input_type -> vtctldata.SetWritableRequest
- 93, // 93: vtctlservice.Vtctld.ShardReplicationAdd:input_type -> vtctldata.ShardReplicationAddRequest
- 94, // 94: vtctlservice.Vtctld.ShardReplicationFix:input_type -> vtctldata.ShardReplicationFixRequest
- 95, // 95: vtctlservice.Vtctld.ShardReplicationPositions:input_type -> vtctldata.ShardReplicationPositionsRequest
- 96, // 96: vtctlservice.Vtctld.ShardReplicationRemove:input_type -> vtctldata.ShardReplicationRemoveRequest
- 97, // 97: vtctlservice.Vtctld.SleepTablet:input_type -> vtctldata.SleepTabletRequest
- 98, // 98: vtctlservice.Vtctld.SourceShardAdd:input_type -> vtctldata.SourceShardAddRequest
- 99, // 99: vtctlservice.Vtctld.SourceShardDelete:input_type -> vtctldata.SourceShardDeleteRequest
- 100, // 100: vtctlservice.Vtctld.StartReplication:input_type -> vtctldata.StartReplicationRequest
- 101, // 101: vtctlservice.Vtctld.StopReplication:input_type -> vtctldata.StopReplicationRequest
- 102, // 102: vtctlservice.Vtctld.TabletExternallyReparented:input_type -> vtctldata.TabletExternallyReparentedRequest
- 103, // 103: vtctlservice.Vtctld.UpdateCellInfo:input_type -> vtctldata.UpdateCellInfoRequest
- 104, // 104: vtctlservice.Vtctld.UpdateCellsAlias:input_type -> vtctldata.UpdateCellsAliasRequest
- 105, // 105: vtctlservice.Vtctld.Validate:input_type -> vtctldata.ValidateRequest
- 106, // 106: vtctlservice.Vtctld.ValidateKeyspace:input_type -> vtctldata.ValidateKeyspaceRequest
- 107, // 107: vtctlservice.Vtctld.ValidateSchemaKeyspace:input_type -> vtctldata.ValidateSchemaKeyspaceRequest
- 108, // 108: vtctlservice.Vtctld.ValidateShard:input_type -> vtctldata.ValidateShardRequest
- 109, // 109: vtctlservice.Vtctld.ValidateVersionKeyspace:input_type -> vtctldata.ValidateVersionKeyspaceRequest
- 110, // 110: vtctlservice.Vtctld.ValidateVersionShard:input_type -> vtctldata.ValidateVersionShardRequest
- 111, // 111: vtctlservice.Vtctld.ValidateVSchema:input_type -> vtctldata.ValidateVSchemaRequest
- 112, // 112: vtctlservice.Vtctld.VDiffCreate:input_type -> vtctldata.VDiffCreateRequest
- 113, // 113: vtctlservice.Vtctld.VDiffDelete:input_type -> vtctldata.VDiffDeleteRequest
- 114, // 114: vtctlservice.Vtctld.VDiffResume:input_type -> vtctldata.VDiffResumeRequest
- 115, // 115: vtctlservice.Vtctld.VDiffShow:input_type -> vtctldata.VDiffShowRequest
- 116, // 116: vtctlservice.Vtctld.VDiffStop:input_type -> vtctldata.VDiffStopRequest
- 117, // 117: vtctlservice.Vtctld.WorkflowDelete:input_type -> vtctldata.WorkflowDeleteRequest
- 118, // 118: vtctlservice.Vtctld.WorkflowStatus:input_type -> vtctldata.WorkflowStatusRequest
- 119, // 119: vtctlservice.Vtctld.WorkflowSwitchTraffic:input_type -> vtctldata.WorkflowSwitchTrafficRequest
- 120, // 120: vtctlservice.Vtctld.WorkflowUpdate:input_type -> vtctldata.WorkflowUpdateRequest
- 121, // 121: vtctlservice.Vtctld.GetMirrorRules:input_type -> vtctldata.GetMirrorRulesRequest
- 122, // 122: vtctlservice.Vtctld.WorkflowMirrorTraffic:input_type -> vtctldata.WorkflowMirrorTrafficRequest
- 123, // 123: vtctlservice.Vtctl.ExecuteVtctlCommand:output_type -> vtctldata.ExecuteVtctlCommandResponse
- 124, // 124: vtctlservice.Vtctld.AddCellInfo:output_type -> vtctldata.AddCellInfoResponse
- 125, // 125: vtctlservice.Vtctld.AddCellsAlias:output_type -> vtctldata.AddCellsAliasResponse
- 126, // 126: vtctlservice.Vtctld.ApplyRoutingRules:output_type -> vtctldata.ApplyRoutingRulesResponse
- 127, // 127: vtctlservice.Vtctld.ApplySchema:output_type -> vtctldata.ApplySchemaResponse
- 128, // 128: vtctlservice.Vtctld.ApplyKeyspaceRoutingRules:output_type -> vtctldata.ApplyKeyspaceRoutingRulesResponse
- 129, // 129: vtctlservice.Vtctld.ApplyShardRoutingRules:output_type -> vtctldata.ApplyShardRoutingRulesResponse
- 130, // 130: vtctlservice.Vtctld.ApplyVSchema:output_type -> vtctldata.ApplyVSchemaResponse
- 131, // 131: vtctlservice.Vtctld.Backup:output_type -> vtctldata.BackupResponse
- 131, // 132: vtctlservice.Vtctld.BackupShard:output_type -> vtctldata.BackupResponse
- 132, // 133: vtctlservice.Vtctld.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse
- 133, // 134: vtctlservice.Vtctld.ChangeTabletTags:output_type -> vtctldata.ChangeTabletTagsResponse
- 134, // 135: vtctlservice.Vtctld.ChangeTabletType:output_type -> vtctldata.ChangeTabletTypeResponse
- 135, // 136: vtctlservice.Vtctld.CheckThrottler:output_type -> vtctldata.CheckThrottlerResponse
- 136, // 137: vtctlservice.Vtctld.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse
- 137, // 138: vtctlservice.Vtctld.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse
- 138, // 139: vtctlservice.Vtctld.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse
- 139, // 140: vtctlservice.Vtctld.CreateKeyspace:output_type -> vtctldata.CreateKeyspaceResponse
- 140, // 141: vtctlservice.Vtctld.CreateShard:output_type -> vtctldata.CreateShardResponse
- 141, // 142: vtctlservice.Vtctld.DeleteCellInfo:output_type -> vtctldata.DeleteCellInfoResponse
- 142, // 143: vtctlservice.Vtctld.DeleteCellsAlias:output_type -> vtctldata.DeleteCellsAliasResponse
- 143, // 144: vtctlservice.Vtctld.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse
- 144, // 145: vtctlservice.Vtctld.DeleteShards:output_type -> vtctldata.DeleteShardsResponse
- 145, // 146: vtctlservice.Vtctld.DeleteSrvVSchema:output_type -> vtctldata.DeleteSrvVSchemaResponse
- 146, // 147: vtctlservice.Vtctld.DeleteTablets:output_type -> vtctldata.DeleteTabletsResponse
- 147, // 148: vtctlservice.Vtctld.EmergencyReparentShard:output_type -> vtctldata.EmergencyReparentShardResponse
- 148, // 149: vtctlservice.Vtctld.ExecuteFetchAsApp:output_type -> vtctldata.ExecuteFetchAsAppResponse
- 149, // 150: vtctlservice.Vtctld.ExecuteFetchAsDBA:output_type -> vtctldata.ExecuteFetchAsDBAResponse
- 150, // 151: vtctlservice.Vtctld.ExecuteHook:output_type -> vtctldata.ExecuteHookResponse
- 151, // 152: vtctlservice.Vtctld.ExecuteMultiFetchAsDBA:output_type -> vtctldata.ExecuteMultiFetchAsDBAResponse
- 152, // 153: vtctlservice.Vtctld.FindAllShardsInKeyspace:output_type -> vtctldata.FindAllShardsInKeyspaceResponse
- 153, // 154: vtctlservice.Vtctld.ForceCutOverSchemaMigration:output_type -> vtctldata.ForceCutOverSchemaMigrationResponse
- 154, // 155: vtctlservice.Vtctld.GetBackups:output_type -> vtctldata.GetBackupsResponse
- 155, // 156: vtctlservice.Vtctld.GetCellInfo:output_type -> vtctldata.GetCellInfoResponse
- 156, // 157: vtctlservice.Vtctld.GetCellInfoNames:output_type -> vtctldata.GetCellInfoNamesResponse
- 157, // 158: vtctlservice.Vtctld.GetCellsAliases:output_type -> vtctldata.GetCellsAliasesResponse
- 158, // 159: vtctlservice.Vtctld.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse
- 159, // 160: vtctlservice.Vtctld.GetKeyspace:output_type -> vtctldata.GetKeyspaceResponse
- 160, // 161: vtctlservice.Vtctld.GetKeyspaces:output_type -> vtctldata.GetKeyspacesResponse
- 161, // 162: vtctlservice.Vtctld.GetKeyspaceRoutingRules:output_type -> vtctldata.GetKeyspaceRoutingRulesResponse
- 162, // 163: vtctlservice.Vtctld.GetPermissions:output_type -> vtctldata.GetPermissionsResponse
- 163, // 164: vtctlservice.Vtctld.GetRoutingRules:output_type -> vtctldata.GetRoutingRulesResponse
- 164, // 165: vtctlservice.Vtctld.GetSchema:output_type -> vtctldata.GetSchemaResponse
- 165, // 166: vtctlservice.Vtctld.GetSchemaMigrations:output_type -> vtctldata.GetSchemaMigrationsResponse
- 166, // 167: vtctlservice.Vtctld.GetShardReplication:output_type -> vtctldata.GetShardReplicationResponse
- 167, // 168: vtctlservice.Vtctld.GetShard:output_type -> vtctldata.GetShardResponse
- 168, // 169: vtctlservice.Vtctld.GetShardRoutingRules:output_type -> vtctldata.GetShardRoutingRulesResponse
- 169, // 170: vtctlservice.Vtctld.GetSrvKeyspaceNames:output_type -> vtctldata.GetSrvKeyspaceNamesResponse
- 170, // 171: vtctlservice.Vtctld.GetSrvKeyspaces:output_type -> vtctldata.GetSrvKeyspacesResponse
- 171, // 172: vtctlservice.Vtctld.UpdateThrottlerConfig:output_type -> vtctldata.UpdateThrottlerConfigResponse
- 172, // 173: vtctlservice.Vtctld.GetSrvVSchema:output_type -> vtctldata.GetSrvVSchemaResponse
- 173, // 174: vtctlservice.Vtctld.GetSrvVSchemas:output_type -> vtctldata.GetSrvVSchemasResponse
- 174, // 175: vtctlservice.Vtctld.GetTablet:output_type -> vtctldata.GetTabletResponse
- 175, // 176: vtctlservice.Vtctld.GetTablets:output_type -> vtctldata.GetTabletsResponse
- 176, // 177: vtctlservice.Vtctld.GetThrottlerStatus:output_type -> vtctldata.GetThrottlerStatusResponse
- 177, // 178: vtctlservice.Vtctld.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse
- 178, // 179: vtctlservice.Vtctld.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse
- 179, // 180: vtctlservice.Vtctld.GetVersion:output_type -> vtctldata.GetVersionResponse
- 180, // 181: vtctlservice.Vtctld.GetVSchema:output_type -> vtctldata.GetVSchemaResponse
- 181, // 182: vtctlservice.Vtctld.GetWorkflows:output_type -> vtctldata.GetWorkflowsResponse
- 182, // 183: vtctlservice.Vtctld.InitShardPrimary:output_type -> vtctldata.InitShardPrimaryResponse
- 183, // 184: vtctlservice.Vtctld.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse
- 184, // 185: vtctlservice.Vtctld.LookupVindexCreate:output_type -> vtctldata.LookupVindexCreateResponse
- 185, // 186: vtctlservice.Vtctld.LookupVindexExternalize:output_type -> vtctldata.LookupVindexExternalizeResponse
- 186, // 187: vtctlservice.Vtctld.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse
- 187, // 188: vtctlservice.Vtctld.MigrateCreate:output_type -> vtctldata.WorkflowStatusResponse
- 188, // 189: vtctlservice.Vtctld.MountRegister:output_type -> vtctldata.MountRegisterResponse
- 189, // 190: vtctlservice.Vtctld.MountUnregister:output_type -> vtctldata.MountUnregisterResponse
- 190, // 191: vtctlservice.Vtctld.MountShow:output_type -> vtctldata.MountShowResponse
- 191, // 192: vtctlservice.Vtctld.MountList:output_type -> vtctldata.MountListResponse
- 187, // 193: vtctlservice.Vtctld.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse
- 192, // 194: vtctlservice.Vtctld.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse
- 193, // 195: vtctlservice.Vtctld.PingTablet:output_type -> vtctldata.PingTabletResponse
- 194, // 196: vtctlservice.Vtctld.PlannedReparentShard:output_type -> vtctldata.PlannedReparentShardResponse
- 195, // 197: vtctlservice.Vtctld.RebuildKeyspaceGraph:output_type -> vtctldata.RebuildKeyspaceGraphResponse
- 196, // 198: vtctlservice.Vtctld.RebuildVSchemaGraph:output_type -> vtctldata.RebuildVSchemaGraphResponse
- 197, // 199: vtctlservice.Vtctld.RefreshState:output_type -> vtctldata.RefreshStateResponse
- 198, // 200: vtctlservice.Vtctld.RefreshStateByShard:output_type -> vtctldata.RefreshStateByShardResponse
- 199, // 201: vtctlservice.Vtctld.ReloadSchema:output_type -> vtctldata.ReloadSchemaResponse
- 200, // 202: vtctlservice.Vtctld.ReloadSchemaKeyspace:output_type -> vtctldata.ReloadSchemaKeyspaceResponse
- 201, // 203: vtctlservice.Vtctld.ReloadSchemaShard:output_type -> vtctldata.ReloadSchemaShardResponse
- 202, // 204: vtctlservice.Vtctld.RemoveBackup:output_type -> vtctldata.RemoveBackupResponse
- 203, // 205: vtctlservice.Vtctld.RemoveKeyspaceCell:output_type -> vtctldata.RemoveKeyspaceCellResponse
- 204, // 206: vtctlservice.Vtctld.RemoveShardCell:output_type -> vtctldata.RemoveShardCellResponse
- 205, // 207: vtctlservice.Vtctld.ReparentTablet:output_type -> vtctldata.ReparentTabletResponse
- 187, // 208: vtctlservice.Vtctld.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse
- 206, // 209: vtctlservice.Vtctld.RestoreFromBackup:output_type -> vtctldata.RestoreFromBackupResponse
- 207, // 210: vtctlservice.Vtctld.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse
- 208, // 211: vtctlservice.Vtctld.RunHealthCheck:output_type -> vtctldata.RunHealthCheckResponse
- 209, // 212: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:output_type -> vtctldata.SetKeyspaceDurabilityPolicyResponse
- 210, // 213: vtctlservice.Vtctld.SetShardIsPrimaryServing:output_type -> vtctldata.SetShardIsPrimaryServingResponse
- 211, // 214: vtctlservice.Vtctld.SetShardTabletControl:output_type -> vtctldata.SetShardTabletControlResponse
- 212, // 215: vtctlservice.Vtctld.SetWritable:output_type -> vtctldata.SetWritableResponse
- 213, // 216: vtctlservice.Vtctld.ShardReplicationAdd:output_type -> vtctldata.ShardReplicationAddResponse
- 214, // 217: vtctlservice.Vtctld.ShardReplicationFix:output_type -> vtctldata.ShardReplicationFixResponse
- 215, // 218: vtctlservice.Vtctld.ShardReplicationPositions:output_type -> vtctldata.ShardReplicationPositionsResponse
- 216, // 219: vtctlservice.Vtctld.ShardReplicationRemove:output_type -> vtctldata.ShardReplicationRemoveResponse
- 217, // 220: vtctlservice.Vtctld.SleepTablet:output_type -> vtctldata.SleepTabletResponse
- 218, // 221: vtctlservice.Vtctld.SourceShardAdd:output_type -> vtctldata.SourceShardAddResponse
- 219, // 222: vtctlservice.Vtctld.SourceShardDelete:output_type -> vtctldata.SourceShardDeleteResponse
- 220, // 223: vtctlservice.Vtctld.StartReplication:output_type -> vtctldata.StartReplicationResponse
- 221, // 224: vtctlservice.Vtctld.StopReplication:output_type -> vtctldata.StopReplicationResponse
- 222, // 225: vtctlservice.Vtctld.TabletExternallyReparented:output_type -> vtctldata.TabletExternallyReparentedResponse
- 223, // 226: vtctlservice.Vtctld.UpdateCellInfo:output_type -> vtctldata.UpdateCellInfoResponse
- 224, // 227: vtctlservice.Vtctld.UpdateCellsAlias:output_type -> vtctldata.UpdateCellsAliasResponse
- 225, // 228: vtctlservice.Vtctld.Validate:output_type -> vtctldata.ValidateResponse
- 226, // 229: vtctlservice.Vtctld.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse
- 227, // 230: vtctlservice.Vtctld.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse
- 228, // 231: vtctlservice.Vtctld.ValidateShard:output_type -> vtctldata.ValidateShardResponse
- 229, // 232: vtctlservice.Vtctld.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse
- 230, // 233: vtctlservice.Vtctld.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse
- 231, // 234: vtctlservice.Vtctld.ValidateVSchema:output_type -> vtctldata.ValidateVSchemaResponse
- 232, // 235: vtctlservice.Vtctld.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse
- 233, // 236: vtctlservice.Vtctld.VDiffDelete:output_type -> vtctldata.VDiffDeleteResponse
- 234, // 237: vtctlservice.Vtctld.VDiffResume:output_type -> vtctldata.VDiffResumeResponse
- 235, // 238: vtctlservice.Vtctld.VDiffShow:output_type -> vtctldata.VDiffShowResponse
- 236, // 239: vtctlservice.Vtctld.VDiffStop:output_type -> vtctldata.VDiffStopResponse
- 237, // 240: vtctlservice.Vtctld.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse
- 187, // 241: vtctlservice.Vtctld.WorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse
- 238, // 242: vtctlservice.Vtctld.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse
- 239, // 243: vtctlservice.Vtctld.WorkflowUpdate:output_type -> vtctldata.WorkflowUpdateResponse
- 240, // 244: vtctlservice.Vtctld.GetMirrorRules:output_type -> vtctldata.GetMirrorRulesResponse
- 241, // 245: vtctlservice.Vtctld.WorkflowMirrorTraffic:output_type -> vtctldata.WorkflowMirrorTrafficResponse
- 123, // [123:246] is the sub-list for method output_type
- 0, // [0:123] is the sub-list for method input_type
+ 56, // 56: vtctlservice.Vtctld.GetTransactionInfo:input_type -> vtctldata.GetTransactionInfoRequest
+ 57, // 57: vtctlservice.Vtctld.GetUnresolvedTransactions:input_type -> vtctldata.GetUnresolvedTransactionsRequest
+ 58, // 58: vtctlservice.Vtctld.GetVersion:input_type -> vtctldata.GetVersionRequest
+ 59, // 59: vtctlservice.Vtctld.GetVSchema:input_type -> vtctldata.GetVSchemaRequest
+ 60, // 60: vtctlservice.Vtctld.GetWorkflows:input_type -> vtctldata.GetWorkflowsRequest
+ 61, // 61: vtctlservice.Vtctld.InitShardPrimary:input_type -> vtctldata.InitShardPrimaryRequest
+ 62, // 62: vtctlservice.Vtctld.LaunchSchemaMigration:input_type -> vtctldata.LaunchSchemaMigrationRequest
+ 63, // 63: vtctlservice.Vtctld.LookupVindexCreate:input_type -> vtctldata.LookupVindexCreateRequest
+ 64, // 64: vtctlservice.Vtctld.LookupVindexExternalize:input_type -> vtctldata.LookupVindexExternalizeRequest
+ 65, // 65: vtctlservice.Vtctld.MaterializeCreate:input_type -> vtctldata.MaterializeCreateRequest
+ 66, // 66: vtctlservice.Vtctld.MigrateCreate:input_type -> vtctldata.MigrateCreateRequest
+ 67, // 67: vtctlservice.Vtctld.MountRegister:input_type -> vtctldata.MountRegisterRequest
+ 68, // 68: vtctlservice.Vtctld.MountUnregister:input_type -> vtctldata.MountUnregisterRequest
+ 69, // 69: vtctlservice.Vtctld.MountShow:input_type -> vtctldata.MountShowRequest
+ 70, // 70: vtctlservice.Vtctld.MountList:input_type -> vtctldata.MountListRequest
+ 71, // 71: vtctlservice.Vtctld.MoveTablesCreate:input_type -> vtctldata.MoveTablesCreateRequest
+ 72, // 72: vtctlservice.Vtctld.MoveTablesComplete:input_type -> vtctldata.MoveTablesCompleteRequest
+ 73, // 73: vtctlservice.Vtctld.PingTablet:input_type -> vtctldata.PingTabletRequest
+ 74, // 74: vtctlservice.Vtctld.PlannedReparentShard:input_type -> vtctldata.PlannedReparentShardRequest
+ 75, // 75: vtctlservice.Vtctld.RebuildKeyspaceGraph:input_type -> vtctldata.RebuildKeyspaceGraphRequest
+ 76, // 76: vtctlservice.Vtctld.RebuildVSchemaGraph:input_type -> vtctldata.RebuildVSchemaGraphRequest
+ 77, // 77: vtctlservice.Vtctld.RefreshState:input_type -> vtctldata.RefreshStateRequest
+ 78, // 78: vtctlservice.Vtctld.RefreshStateByShard:input_type -> vtctldata.RefreshStateByShardRequest
+ 79, // 79: vtctlservice.Vtctld.ReloadSchema:input_type -> vtctldata.ReloadSchemaRequest
+ 80, // 80: vtctlservice.Vtctld.ReloadSchemaKeyspace:input_type -> vtctldata.ReloadSchemaKeyspaceRequest
+ 81, // 81: vtctlservice.Vtctld.ReloadSchemaShard:input_type -> vtctldata.ReloadSchemaShardRequest
+ 82, // 82: vtctlservice.Vtctld.RemoveBackup:input_type -> vtctldata.RemoveBackupRequest
+ 83, // 83: vtctlservice.Vtctld.RemoveKeyspaceCell:input_type -> vtctldata.RemoveKeyspaceCellRequest
+ 84, // 84: vtctlservice.Vtctld.RemoveShardCell:input_type -> vtctldata.RemoveShardCellRequest
+ 85, // 85: vtctlservice.Vtctld.ReparentTablet:input_type -> vtctldata.ReparentTabletRequest
+ 86, // 86: vtctlservice.Vtctld.ReshardCreate:input_type -> vtctldata.ReshardCreateRequest
+ 87, // 87: vtctlservice.Vtctld.RestoreFromBackup:input_type -> vtctldata.RestoreFromBackupRequest
+ 88, // 88: vtctlservice.Vtctld.RetrySchemaMigration:input_type -> vtctldata.RetrySchemaMigrationRequest
+ 89, // 89: vtctlservice.Vtctld.RunHealthCheck:input_type -> vtctldata.RunHealthCheckRequest
+ 90, // 90: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:input_type -> vtctldata.SetKeyspaceDurabilityPolicyRequest
+ 91, // 91: vtctlservice.Vtctld.SetShardIsPrimaryServing:input_type -> vtctldata.SetShardIsPrimaryServingRequest
+ 92, // 92: vtctlservice.Vtctld.SetShardTabletControl:input_type -> vtctldata.SetShardTabletControlRequest
+ 93, // 93: vtctlservice.Vtctld.SetWritable:input_type -> vtctldata.SetWritableRequest
+ 94, // 94: vtctlservice.Vtctld.ShardReplicationAdd:input_type -> vtctldata.ShardReplicationAddRequest
+ 95, // 95: vtctlservice.Vtctld.ShardReplicationFix:input_type -> vtctldata.ShardReplicationFixRequest
+ 96, // 96: vtctlservice.Vtctld.ShardReplicationPositions:input_type -> vtctldata.ShardReplicationPositionsRequest
+ 97, // 97: vtctlservice.Vtctld.ShardReplicationRemove:input_type -> vtctldata.ShardReplicationRemoveRequest
+ 98, // 98: vtctlservice.Vtctld.SleepTablet:input_type -> vtctldata.SleepTabletRequest
+ 99, // 99: vtctlservice.Vtctld.SourceShardAdd:input_type -> vtctldata.SourceShardAddRequest
+ 100, // 100: vtctlservice.Vtctld.SourceShardDelete:input_type -> vtctldata.SourceShardDeleteRequest
+ 101, // 101: vtctlservice.Vtctld.StartReplication:input_type -> vtctldata.StartReplicationRequest
+ 102, // 102: vtctlservice.Vtctld.StopReplication:input_type -> vtctldata.StopReplicationRequest
+ 103, // 103: vtctlservice.Vtctld.TabletExternallyReparented:input_type -> vtctldata.TabletExternallyReparentedRequest
+ 104, // 104: vtctlservice.Vtctld.UpdateCellInfo:input_type -> vtctldata.UpdateCellInfoRequest
+ 105, // 105: vtctlservice.Vtctld.UpdateCellsAlias:input_type -> vtctldata.UpdateCellsAliasRequest
+ 106, // 106: vtctlservice.Vtctld.Validate:input_type -> vtctldata.ValidateRequest
+ 107, // 107: vtctlservice.Vtctld.ValidateKeyspace:input_type -> vtctldata.ValidateKeyspaceRequest
+ 108, // 108: vtctlservice.Vtctld.ValidateSchemaKeyspace:input_type -> vtctldata.ValidateSchemaKeyspaceRequest
+ 109, // 109: vtctlservice.Vtctld.ValidateShard:input_type -> vtctldata.ValidateShardRequest
+ 110, // 110: vtctlservice.Vtctld.ValidateVersionKeyspace:input_type -> vtctldata.ValidateVersionKeyspaceRequest
+ 111, // 111: vtctlservice.Vtctld.ValidateVersionShard:input_type -> vtctldata.ValidateVersionShardRequest
+ 112, // 112: vtctlservice.Vtctld.ValidateVSchema:input_type -> vtctldata.ValidateVSchemaRequest
+ 113, // 113: vtctlservice.Vtctld.VDiffCreate:input_type -> vtctldata.VDiffCreateRequest
+ 114, // 114: vtctlservice.Vtctld.VDiffDelete:input_type -> vtctldata.VDiffDeleteRequest
+ 115, // 115: vtctlservice.Vtctld.VDiffResume:input_type -> vtctldata.VDiffResumeRequest
+ 116, // 116: vtctlservice.Vtctld.VDiffShow:input_type -> vtctldata.VDiffShowRequest
+ 117, // 117: vtctlservice.Vtctld.VDiffStop:input_type -> vtctldata.VDiffStopRequest
+ 118, // 118: vtctlservice.Vtctld.WorkflowDelete:input_type -> vtctldata.WorkflowDeleteRequest
+ 119, // 119: vtctlservice.Vtctld.WorkflowStatus:input_type -> vtctldata.WorkflowStatusRequest
+ 120, // 120: vtctlservice.Vtctld.WorkflowSwitchTraffic:input_type -> vtctldata.WorkflowSwitchTrafficRequest
+ 121, // 121: vtctlservice.Vtctld.WorkflowUpdate:input_type -> vtctldata.WorkflowUpdateRequest
+ 122, // 122: vtctlservice.Vtctld.GetMirrorRules:input_type -> vtctldata.GetMirrorRulesRequest
+ 123, // 123: vtctlservice.Vtctld.WorkflowMirrorTraffic:input_type -> vtctldata.WorkflowMirrorTrafficRequest
+ 124, // 124: vtctlservice.Vtctl.ExecuteVtctlCommand:output_type -> vtctldata.ExecuteVtctlCommandResponse
+ 125, // 125: vtctlservice.Vtctld.AddCellInfo:output_type -> vtctldata.AddCellInfoResponse
+ 126, // 126: vtctlservice.Vtctld.AddCellsAlias:output_type -> vtctldata.AddCellsAliasResponse
+ 127, // 127: vtctlservice.Vtctld.ApplyRoutingRules:output_type -> vtctldata.ApplyRoutingRulesResponse
+ 128, // 128: vtctlservice.Vtctld.ApplySchema:output_type -> vtctldata.ApplySchemaResponse
+ 129, // 129: vtctlservice.Vtctld.ApplyKeyspaceRoutingRules:output_type -> vtctldata.ApplyKeyspaceRoutingRulesResponse
+ 130, // 130: vtctlservice.Vtctld.ApplyShardRoutingRules:output_type -> vtctldata.ApplyShardRoutingRulesResponse
+ 131, // 131: vtctlservice.Vtctld.ApplyVSchema:output_type -> vtctldata.ApplyVSchemaResponse
+ 132, // 132: vtctlservice.Vtctld.Backup:output_type -> vtctldata.BackupResponse
+ 132, // 133: vtctlservice.Vtctld.BackupShard:output_type -> vtctldata.BackupResponse
+ 133, // 134: vtctlservice.Vtctld.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse
+ 134, // 135: vtctlservice.Vtctld.ChangeTabletTags:output_type -> vtctldata.ChangeTabletTagsResponse
+ 135, // 136: vtctlservice.Vtctld.ChangeTabletType:output_type -> vtctldata.ChangeTabletTypeResponse
+ 136, // 137: vtctlservice.Vtctld.CheckThrottler:output_type -> vtctldata.CheckThrottlerResponse
+ 137, // 138: vtctlservice.Vtctld.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse
+ 138, // 139: vtctlservice.Vtctld.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse
+ 139, // 140: vtctlservice.Vtctld.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse
+ 140, // 141: vtctlservice.Vtctld.CreateKeyspace:output_type -> vtctldata.CreateKeyspaceResponse
+ 141, // 142: vtctlservice.Vtctld.CreateShard:output_type -> vtctldata.CreateShardResponse
+ 142, // 143: vtctlservice.Vtctld.DeleteCellInfo:output_type -> vtctldata.DeleteCellInfoResponse
+ 143, // 144: vtctlservice.Vtctld.DeleteCellsAlias:output_type -> vtctldata.DeleteCellsAliasResponse
+ 144, // 145: vtctlservice.Vtctld.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse
+ 145, // 146: vtctlservice.Vtctld.DeleteShards:output_type -> vtctldata.DeleteShardsResponse
+ 146, // 147: vtctlservice.Vtctld.DeleteSrvVSchema:output_type -> vtctldata.DeleteSrvVSchemaResponse
+ 147, // 148: vtctlservice.Vtctld.DeleteTablets:output_type -> vtctldata.DeleteTabletsResponse
+ 148, // 149: vtctlservice.Vtctld.EmergencyReparentShard:output_type -> vtctldata.EmergencyReparentShardResponse
+ 149, // 150: vtctlservice.Vtctld.ExecuteFetchAsApp:output_type -> vtctldata.ExecuteFetchAsAppResponse
+ 150, // 151: vtctlservice.Vtctld.ExecuteFetchAsDBA:output_type -> vtctldata.ExecuteFetchAsDBAResponse
+ 151, // 152: vtctlservice.Vtctld.ExecuteHook:output_type -> vtctldata.ExecuteHookResponse
+ 152, // 153: vtctlservice.Vtctld.ExecuteMultiFetchAsDBA:output_type -> vtctldata.ExecuteMultiFetchAsDBAResponse
+ 153, // 154: vtctlservice.Vtctld.FindAllShardsInKeyspace:output_type -> vtctldata.FindAllShardsInKeyspaceResponse
+ 154, // 155: vtctlservice.Vtctld.ForceCutOverSchemaMigration:output_type -> vtctldata.ForceCutOverSchemaMigrationResponse
+ 155, // 156: vtctlservice.Vtctld.GetBackups:output_type -> vtctldata.GetBackupsResponse
+ 156, // 157: vtctlservice.Vtctld.GetCellInfo:output_type -> vtctldata.GetCellInfoResponse
+ 157, // 158: vtctlservice.Vtctld.GetCellInfoNames:output_type -> vtctldata.GetCellInfoNamesResponse
+ 158, // 159: vtctlservice.Vtctld.GetCellsAliases:output_type -> vtctldata.GetCellsAliasesResponse
+ 159, // 160: vtctlservice.Vtctld.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse
+ 160, // 161: vtctlservice.Vtctld.GetKeyspace:output_type -> vtctldata.GetKeyspaceResponse
+ 161, // 162: vtctlservice.Vtctld.GetKeyspaces:output_type -> vtctldata.GetKeyspacesResponse
+ 162, // 163: vtctlservice.Vtctld.GetKeyspaceRoutingRules:output_type -> vtctldata.GetKeyspaceRoutingRulesResponse
+ 163, // 164: vtctlservice.Vtctld.GetPermissions:output_type -> vtctldata.GetPermissionsResponse
+ 164, // 165: vtctlservice.Vtctld.GetRoutingRules:output_type -> vtctldata.GetRoutingRulesResponse
+ 165, // 166: vtctlservice.Vtctld.GetSchema:output_type -> vtctldata.GetSchemaResponse
+ 166, // 167: vtctlservice.Vtctld.GetSchemaMigrations:output_type -> vtctldata.GetSchemaMigrationsResponse
+ 167, // 168: vtctlservice.Vtctld.GetShardReplication:output_type -> vtctldata.GetShardReplicationResponse
+ 168, // 169: vtctlservice.Vtctld.GetShard:output_type -> vtctldata.GetShardResponse
+ 169, // 170: vtctlservice.Vtctld.GetShardRoutingRules:output_type -> vtctldata.GetShardRoutingRulesResponse
+ 170, // 171: vtctlservice.Vtctld.GetSrvKeyspaceNames:output_type -> vtctldata.GetSrvKeyspaceNamesResponse
+ 171, // 172: vtctlservice.Vtctld.GetSrvKeyspaces:output_type -> vtctldata.GetSrvKeyspacesResponse
+ 172, // 173: vtctlservice.Vtctld.UpdateThrottlerConfig:output_type -> vtctldata.UpdateThrottlerConfigResponse
+ 173, // 174: vtctlservice.Vtctld.GetSrvVSchema:output_type -> vtctldata.GetSrvVSchemaResponse
+ 174, // 175: vtctlservice.Vtctld.GetSrvVSchemas:output_type -> vtctldata.GetSrvVSchemasResponse
+ 175, // 176: vtctlservice.Vtctld.GetTablet:output_type -> vtctldata.GetTabletResponse
+ 176, // 177: vtctlservice.Vtctld.GetTablets:output_type -> vtctldata.GetTabletsResponse
+ 177, // 178: vtctlservice.Vtctld.GetThrottlerStatus:output_type -> vtctldata.GetThrottlerStatusResponse
+ 178, // 179: vtctlservice.Vtctld.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse
+ 179, // 180: vtctlservice.Vtctld.GetTransactionInfo:output_type -> vtctldata.GetTransactionInfoResponse
+ 180, // 181: vtctlservice.Vtctld.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse
+ 181, // 182: vtctlservice.Vtctld.GetVersion:output_type -> vtctldata.GetVersionResponse
+ 182, // 183: vtctlservice.Vtctld.GetVSchema:output_type -> vtctldata.GetVSchemaResponse
+ 183, // 184: vtctlservice.Vtctld.GetWorkflows:output_type -> vtctldata.GetWorkflowsResponse
+ 184, // 185: vtctlservice.Vtctld.InitShardPrimary:output_type -> vtctldata.InitShardPrimaryResponse
+ 185, // 186: vtctlservice.Vtctld.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse
+ 186, // 187: vtctlservice.Vtctld.LookupVindexCreate:output_type -> vtctldata.LookupVindexCreateResponse
+ 187, // 188: vtctlservice.Vtctld.LookupVindexExternalize:output_type -> vtctldata.LookupVindexExternalizeResponse
+ 188, // 189: vtctlservice.Vtctld.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse
+ 189, // 190: vtctlservice.Vtctld.MigrateCreate:output_type -> vtctldata.WorkflowStatusResponse
+ 190, // 191: vtctlservice.Vtctld.MountRegister:output_type -> vtctldata.MountRegisterResponse
+ 191, // 192: vtctlservice.Vtctld.MountUnregister:output_type -> vtctldata.MountUnregisterResponse
+ 192, // 193: vtctlservice.Vtctld.MountShow:output_type -> vtctldata.MountShowResponse
+ 193, // 194: vtctlservice.Vtctld.MountList:output_type -> vtctldata.MountListResponse
+ 189, // 195: vtctlservice.Vtctld.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse
+ 194, // 196: vtctlservice.Vtctld.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse
+ 195, // 197: vtctlservice.Vtctld.PingTablet:output_type -> vtctldata.PingTabletResponse
+ 196, // 198: vtctlservice.Vtctld.PlannedReparentShard:output_type -> vtctldata.PlannedReparentShardResponse
+ 197, // 199: vtctlservice.Vtctld.RebuildKeyspaceGraph:output_type -> vtctldata.RebuildKeyspaceGraphResponse
+ 198, // 200: vtctlservice.Vtctld.RebuildVSchemaGraph:output_type -> vtctldata.RebuildVSchemaGraphResponse
+ 199, // 201: vtctlservice.Vtctld.RefreshState:output_type -> vtctldata.RefreshStateResponse
+ 200, // 202: vtctlservice.Vtctld.RefreshStateByShard:output_type -> vtctldata.RefreshStateByShardResponse
+ 201, // 203: vtctlservice.Vtctld.ReloadSchema:output_type -> vtctldata.ReloadSchemaResponse
+ 202, // 204: vtctlservice.Vtctld.ReloadSchemaKeyspace:output_type -> vtctldata.ReloadSchemaKeyspaceResponse
+ 203, // 205: vtctlservice.Vtctld.ReloadSchemaShard:output_type -> vtctldata.ReloadSchemaShardResponse
+ 204, // 206: vtctlservice.Vtctld.RemoveBackup:output_type -> vtctldata.RemoveBackupResponse
+ 205, // 207: vtctlservice.Vtctld.RemoveKeyspaceCell:output_type -> vtctldata.RemoveKeyspaceCellResponse
+ 206, // 208: vtctlservice.Vtctld.RemoveShardCell:output_type -> vtctldata.RemoveShardCellResponse
+ 207, // 209: vtctlservice.Vtctld.ReparentTablet:output_type -> vtctldata.ReparentTabletResponse
+ 189, // 210: vtctlservice.Vtctld.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse
+ 208, // 211: vtctlservice.Vtctld.RestoreFromBackup:output_type -> vtctldata.RestoreFromBackupResponse
+ 209, // 212: vtctlservice.Vtctld.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse
+ 210, // 213: vtctlservice.Vtctld.RunHealthCheck:output_type -> vtctldata.RunHealthCheckResponse
+ 211, // 214: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:output_type -> vtctldata.SetKeyspaceDurabilityPolicyResponse
+ 212, // 215: vtctlservice.Vtctld.SetShardIsPrimaryServing:output_type -> vtctldata.SetShardIsPrimaryServingResponse
+ 213, // 216: vtctlservice.Vtctld.SetShardTabletControl:output_type -> vtctldata.SetShardTabletControlResponse
+ 214, // 217: vtctlservice.Vtctld.SetWritable:output_type -> vtctldata.SetWritableResponse
+ 215, // 218: vtctlservice.Vtctld.ShardReplicationAdd:output_type -> vtctldata.ShardReplicationAddResponse
+ 216, // 219: vtctlservice.Vtctld.ShardReplicationFix:output_type -> vtctldata.ShardReplicationFixResponse
+ 217, // 220: vtctlservice.Vtctld.ShardReplicationPositions:output_type -> vtctldata.ShardReplicationPositionsResponse
+ 218, // 221: vtctlservice.Vtctld.ShardReplicationRemove:output_type -> vtctldata.ShardReplicationRemoveResponse
+ 219, // 222: vtctlservice.Vtctld.SleepTablet:output_type -> vtctldata.SleepTabletResponse
+ 220, // 223: vtctlservice.Vtctld.SourceShardAdd:output_type -> vtctldata.SourceShardAddResponse
+ 221, // 224: vtctlservice.Vtctld.SourceShardDelete:output_type -> vtctldata.SourceShardDeleteResponse
+ 222, // 225: vtctlservice.Vtctld.StartReplication:output_type -> vtctldata.StartReplicationResponse
+ 223, // 226: vtctlservice.Vtctld.StopReplication:output_type -> vtctldata.StopReplicationResponse
+ 224, // 227: vtctlservice.Vtctld.TabletExternallyReparented:output_type -> vtctldata.TabletExternallyReparentedResponse
+ 225, // 228: vtctlservice.Vtctld.UpdateCellInfo:output_type -> vtctldata.UpdateCellInfoResponse
+ 226, // 229: vtctlservice.Vtctld.UpdateCellsAlias:output_type -> vtctldata.UpdateCellsAliasResponse
+ 227, // 230: vtctlservice.Vtctld.Validate:output_type -> vtctldata.ValidateResponse
+ 228, // 231: vtctlservice.Vtctld.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse
+ 229, // 232: vtctlservice.Vtctld.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse
+ 230, // 233: vtctlservice.Vtctld.ValidateShard:output_type -> vtctldata.ValidateShardResponse
+ 231, // 234: vtctlservice.Vtctld.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse
+ 232, // 235: vtctlservice.Vtctld.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse
+ 233, // 236: vtctlservice.Vtctld.ValidateVSchema:output_type -> vtctldata.ValidateVSchemaResponse
+ 234, // 237: vtctlservice.Vtctld.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse
+ 235, // 238: vtctlservice.Vtctld.VDiffDelete:output_type -> vtctldata.VDiffDeleteResponse
+ 236, // 239: vtctlservice.Vtctld.VDiffResume:output_type -> vtctldata.VDiffResumeResponse
+ 237, // 240: vtctlservice.Vtctld.VDiffShow:output_type -> vtctldata.VDiffShowResponse
+ 238, // 241: vtctlservice.Vtctld.VDiffStop:output_type -> vtctldata.VDiffStopResponse
+ 239, // 242: vtctlservice.Vtctld.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse
+ 189, // 243: vtctlservice.Vtctld.WorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse
+ 240, // 244: vtctlservice.Vtctld.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse
+ 241, // 245: vtctlservice.Vtctld.WorkflowUpdate:output_type -> vtctldata.WorkflowUpdateResponse
+ 242, // 246: vtctlservice.Vtctld.GetMirrorRules:output_type -> vtctldata.GetMirrorRulesResponse
+ 243, // 247: vtctlservice.Vtctld.WorkflowMirrorTraffic:output_type -> vtctldata.WorkflowMirrorTrafficResponse
+ 124, // [124:248] is the sub-list for method output_type
+ 0, // [0:124] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
diff --git a/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go b/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go
index 957c91793e6..0b2e5bae7dc 100644
--- a/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go
+++ b/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go
@@ -278,6 +278,8 @@ type VtctldClient interface {
GetThrottlerStatus(ctx context.Context, in *vtctldata.GetThrottlerStatusRequest, opts ...grpc.CallOption) (*vtctldata.GetThrottlerStatusResponse, error)
// GetTopologyPath returns the topology cell at a given path.
GetTopologyPath(ctx context.Context, in *vtctldata.GetTopologyPathRequest, opts ...grpc.CallOption) (*vtctldata.GetTopologyPathResponse, error)
+ // GetTransactionInfo reads a given transactions information.
+ GetTransactionInfo(ctx context.Context, in *vtctldata.GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldata.GetTransactionInfoResponse, error)
// GetTransactions returns the unresolved transactions for the request.
GetUnresolvedTransactions(ctx context.Context, in *vtctldata.GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldata.GetUnresolvedTransactionsResponse, error)
// GetVersion returns the version of a tablet from its debug vars.
@@ -1024,6 +1026,15 @@ func (c *vtctldClient) GetTopologyPath(ctx context.Context, in *vtctldata.GetTop
return out, nil
}
+func (c *vtctldClient) GetTransactionInfo(ctx context.Context, in *vtctldata.GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldata.GetTransactionInfoResponse, error) {
+ out := new(vtctldata.GetTransactionInfoResponse)
+ err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/GetTransactionInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *vtctldClient) GetUnresolvedTransactions(ctx context.Context, in *vtctldata.GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldata.GetUnresolvedTransactionsResponse, error) {
out := new(vtctldata.GetUnresolvedTransactionsResponse)
err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/GetUnresolvedTransactions", in, out, opts...)
@@ -1796,6 +1807,8 @@ type VtctldServer interface {
GetThrottlerStatus(context.Context, *vtctldata.GetThrottlerStatusRequest) (*vtctldata.GetThrottlerStatusResponse, error)
// GetTopologyPath returns the topology cell at a given path.
GetTopologyPath(context.Context, *vtctldata.GetTopologyPathRequest) (*vtctldata.GetTopologyPathResponse, error)
+ // GetTransactionInfo reads a given transactions information.
+ GetTransactionInfo(context.Context, *vtctldata.GetTransactionInfoRequest) (*vtctldata.GetTransactionInfoResponse, error)
// GetTransactions returns the unresolved transactions for the request.
GetUnresolvedTransactions(context.Context, *vtctldata.GetUnresolvedTransactionsRequest) (*vtctldata.GetUnresolvedTransactionsResponse, error)
// GetVersion returns the version of a tablet from its debug vars.
@@ -2163,6 +2176,9 @@ func (UnimplementedVtctldServer) GetThrottlerStatus(context.Context, *vtctldata.
func (UnimplementedVtctldServer) GetTopologyPath(context.Context, *vtctldata.GetTopologyPathRequest) (*vtctldata.GetTopologyPathResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetTopologyPath not implemented")
}
+func (UnimplementedVtctldServer) GetTransactionInfo(context.Context, *vtctldata.GetTransactionInfoRequest) (*vtctldata.GetTransactionInfoResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetTransactionInfo not implemented")
+}
func (UnimplementedVtctldServer) GetUnresolvedTransactions(context.Context, *vtctldata.GetUnresolvedTransactionsRequest) (*vtctldata.GetUnresolvedTransactionsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUnresolvedTransactions not implemented")
}
@@ -3373,6 +3389,24 @@ func _Vtctld_GetTopologyPath_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
+func _Vtctld_GetTransactionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(vtctldata.GetTransactionInfoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(VtctldServer).GetTransactionInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/vtctlservice.Vtctld/GetTransactionInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(VtctldServer).GetTransactionInfo(ctx, req.(*vtctldata.GetTransactionInfoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Vtctld_GetUnresolvedTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(vtctldata.GetUnresolvedTransactionsRequest)
if err := dec(in); err != nil {
@@ -4801,6 +4835,10 @@ var Vtctld_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetTopologyPath",
Handler: _Vtctld_GetTopologyPath_Handler,
},
+ {
+ MethodName: "GetTransactionInfo",
+ Handler: _Vtctld_GetTransactionInfo_Handler,
+ },
{
MethodName: "GetUnresolvedTransactions",
Handler: _Vtctld_GetUnresolvedTransactions_Handler,
diff --git a/go/vt/vtcombo/tablet_map.go b/go/vt/vtcombo/tablet_map.go
index 34ec957ebe5..f12ba613866 100644
--- a/go/vt/vtcombo/tablet_map.go
+++ b/go/vt/vtcombo/tablet_map.go
@@ -908,7 +908,7 @@ func (itmc *internalTabletManagerClient) ExecuteFetchAsApp(context.Context, *top
return nil, fmt.Errorf("not implemented in vtcombo")
}
-func (itmc *internalTabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet) ([]*querypb.TransactionMetadata, error) {
+func (itmc *internalTabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet, abandonAge int64) ([]*querypb.TransactionMetadata, error) {
return nil, fmt.Errorf("not implemented in vtcombo")
}
@@ -924,6 +924,10 @@ func (itmc *internalTabletManagerClient) ReadTransaction(ctx context.Context, ta
return nil, fmt.Errorf("not implemented in vtcombo")
}
+func (itmc *internalTabletManagerClient) GetTransactionInfo(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ return nil, fmt.Errorf("not implemented in vtcombo")
+}
+
func (itmc *internalTabletManagerClient) PrimaryStatus(context.Context, *topodatapb.Tablet) (*replicationdatapb.PrimaryStatus, error) {
return nil, fmt.Errorf("not implemented in vtcombo")
}
diff --git a/go/vt/vtctl/grpcvtctldclient/client_gen.go b/go/vt/vtctl/grpcvtctldclient/client_gen.go
index d28d803ad3c..c2da0e97c54 100644
--- a/go/vt/vtctl/grpcvtctldclient/client_gen.go
+++ b/go/vt/vtctl/grpcvtctldclient/client_gen.go
@@ -524,6 +524,15 @@ func (client *gRPCVtctldClient) GetTopologyPath(ctx context.Context, in *vtctlda
return client.c.GetTopologyPath(ctx, in, opts...)
}
+// GetTransactionInfo is part of the vtctlservicepb.VtctldClient interface.
+func (client *gRPCVtctldClient) GetTransactionInfo(ctx context.Context, in *vtctldatapb.GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldatapb.GetTransactionInfoResponse, error) {
+ if client.c == nil {
+ return nil, status.Error(codes.Unavailable, connClosedMsg)
+ }
+
+ return client.c.GetTransactionInfo(ctx, in, opts...)
+}
+
// GetUnresolvedTransactions is part of the vtctlservicepb.VtctldClient interface.
func (client *gRPCVtctldClient) GetUnresolvedTransactions(ctx context.Context, in *vtctldatapb.GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldatapb.GetUnresolvedTransactionsResponse, error) {
if client.c == nil {
diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go
index aaf13fb864a..e280a410e02 100644
--- a/go/vt/vtctl/grpcvtctldserver/server.go
+++ b/go/vt/vtctl/grpcvtctldserver/server.go
@@ -2457,7 +2457,7 @@ func (s *VtctldServer) GetUnresolvedTransactions(ctx context.Context, req *vtctl
if err != nil {
return err
}
- shardTrnxs, err := s.tmc.GetUnresolvedTransactions(newCtx, primary.Tablet)
+ shardTrnxs, err := s.tmc.GetUnresolvedTransactions(newCtx, primary.Tablet, req.AbandonAge)
if err != nil {
return err
}
@@ -2536,6 +2536,84 @@ func (s *VtctldServer) ConcludeTransaction(ctx context.Context, req *vtctldatapb
return &vtctldatapb.ConcludeTransactionResponse{}, nil
}
+// GetTransactionInfo is part of the vtctlservicepb.VtctldServer interface.
+// It reads the information about a distributed transaction.
+func (s *VtctldServer) GetTransactionInfo(ctx context.Context, req *vtctldatapb.GetTransactionInfoRequest) (resp *vtctldatapb.GetTransactionInfoResponse, err error) {
+ span, ctx := trace.NewSpan(ctx, "VtctldServer.GetTransactionInfo")
+ defer span.Finish()
+
+ span.Annotate("dtid", req.Dtid)
+
+ // Read the shard where the transaction metadata is stored.
+ ss, err := dtids.ShardSession(req.Dtid)
+ if err != nil {
+ return nil, err
+ }
+ primary, err := s.getPrimaryTablet(ctx, ss.Target)
+ if err != nil {
+ return nil, err
+ }
+
+ // Read the transaction metadata to get the participating resource manager list.
+ transaction, err := s.tmc.ReadTransaction(ctx, primary.Tablet, req.Dtid)
+ if transaction == nil || err != nil {
+ // no transaction record for the given ID. It is already concluded or does not exist.
+ return nil, err
+ }
+ // Store the metadata in the resonse.
+ resp = &vtctldatapb.GetTransactionInfoResponse{
+ Metadata: transaction,
+ }
+ // Create a mutex we use to synchronize the following go routines to read the transaction state from all the shards.
+ mu := sync.Mutex{}
+
+ eg, newCtx := errgroup.WithContext(ctx)
+ eg.SetLimit(10)
+ for _, rm := range transaction.Participants {
+ eg.Go(func() error {
+ primary, err := s.getPrimaryTablet(newCtx, rm)
+ if err != nil {
+ return err
+ }
+ rts, err := s.tmc.GetTransactionInfo(newCtx, primary.Tablet, req.Dtid)
+ if err != nil {
+ return err
+ }
+ mu.Lock()
+ defer mu.Unlock()
+ resp.ShardStates = append(resp.ShardStates, &vtctldatapb.ShardTransactionState{
+ Shard: rm.Shard,
+ State: rts.State,
+ Message: rts.Message,
+ TimeCreated: rts.TimeCreated,
+ Statements: rts.Statements,
+ })
+ return nil
+ })
+ }
+ if err = eg.Wait(); err != nil {
+ return nil, err
+ }
+
+ rts, err := s.tmc.GetTransactionInfo(ctx, primary.Tablet, req.Dtid)
+ if err != nil {
+ return nil, err
+ }
+ resp.ShardStates = append(resp.ShardStates, &vtctldatapb.ShardTransactionState{
+ Shard: ss.Target.Shard,
+ State: rts.State,
+ Message: rts.Message,
+ TimeCreated: rts.TimeCreated,
+ Statements: rts.Statements,
+ })
+
+ // The metadata manager is itself not part of the list of participants.
+ // We should it to the list before showing it to the users.
+ transaction.Participants = append(transaction.Participants, ss.Target)
+
+ return resp, nil
+}
+
func (s *VtctldServer) getPrimaryTablet(newCtx context.Context, rm *querypb.Target) (*topo.TabletInfo, error) {
si, err := s.ts.GetShard(newCtx, rm.Keyspace, rm.Shard)
if err != nil {
diff --git a/go/vt/vtctl/grpcvtctldserver/server_test.go b/go/vt/vtctl/grpcvtctldserver/server_test.go
index 87e465c0f7d..93f302a1097 100644
--- a/go/vt/vtctl/grpcvtctldserver/server_test.go
+++ b/go/vt/vtctl/grpcvtctldserver/server_test.go
@@ -5544,6 +5544,108 @@ func TestConcludeTransaction(t *testing.T) {
}
}
+func TestGetTransactionInfo(t *testing.T) {
+ ks := "testkeyspace"
+ tests := []struct {
+ name string
+ tmc *testutil.TabletManagerClient
+ dtid string
+ expErr string
+ respWanted *vtctldatapb.GetTransactionInfoResponse
+ }{
+ {
+ name: "invalid dtid",
+ tmc: &testutil.TabletManagerClient{},
+ dtid: "dtid01",
+ expErr: "invalid parts in dtid: dtid01",
+ }, {
+ name: "invalid transaction id",
+ tmc: &testutil.TabletManagerClient{},
+ dtid: "ks:80-:013c",
+ expErr: "invalid transaction id in dtid: ks:80-:013c",
+ }, {
+ name: "Success",
+ tmc: &testutil.TabletManagerClient{
+ ReadTransactionResult: map[string]*querypb.TransactionMetadata{
+ "80-": {
+ Dtid: "bb",
+ Participants: []*querypb.Target{
+ {Keyspace: ks, Shard: "-80", TabletType: topodatapb.TabletType_PRIMARY},
+ },
+ },
+ },
+ GetTransactionInfoResult: map[string]*tabletmanagerdatapb.GetTransactionInfoResponse{
+ "-80": {
+ State: "FAILED",
+ Statements: []string{"stmt1", "stmt2"},
+ },
+ "80-": {}, // Empty result is expected when the transaction has been resolved on that shard or if its the resource manager.
+ },
+ },
+ dtid: "testkeyspace:80-:1234",
+ respWanted: &vtctldatapb.GetTransactionInfoResponse{
+ Metadata: &querypb.TransactionMetadata{
+ Dtid: "bb",
+ Participants: []*querypb.Target{
+ {Keyspace: ks, Shard: "-80", TabletType: topodatapb.TabletType_PRIMARY},
+ {Keyspace: ks, Shard: "80-", TabletType: topodatapb.TabletType_PRIMARY},
+ },
+ },
+ ShardStates: []*vtctldatapb.ShardTransactionState{
+ {
+ Shard: "-80",
+ State: "FAILED",
+ Statements: []string{"stmt1", "stmt2"},
+ },
+ {
+ Shard: "80-",
+ },
+ },
+ },
+ }, {
+ name: "Success - empty metadata",
+ tmc: &testutil.TabletManagerClient{
+ ReadTransactionResult: map[string]*querypb.TransactionMetadata{},
+ },
+ dtid: "testkeyspace:80-:1234",
+ respWanted: nil, // We expected an empty response if the metadata is not found.
+ },
+ }
+
+ tablets := []*topodatapb.Tablet{{
+ Alias: &topodatapb.TabletAlias{Cell: "zone1", Uid: 100},
+ Keyspace: ks,
+ Shard: "-80",
+ Type: topodatapb.TabletType_PRIMARY,
+ }, {
+ Alias: &topodatapb.TabletAlias{Cell: "zone1", Uid: 200},
+ Keyspace: ks,
+ Shard: "80-",
+ Type: topodatapb.TabletType_PRIMARY,
+ }}
+ ts := memorytopo.NewServer(context.Background(), "zone1")
+ testutil.AddTablets(context.Background(), t, ts, &testutil.AddTabletOptions{AlsoSetShardPrimary: true}, tablets...)
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ vtctld := testutil.NewVtctldServerWithTabletManagerClient(t, ts, tt.tmc, func(ts *topo.Server) vtctlservicepb.VtctldServer {
+ return NewVtctldServer(vtenv.NewTestEnv(), ts)
+ })
+ req := &vtctldatapb.GetTransactionInfoRequest{Dtid: tt.dtid}
+ resp, err := vtctld.GetTransactionInfo(ctx, req)
+ if tt.expErr != "" {
+ require.ErrorContains(t, err, tt.expErr)
+ return
+ }
+ require.NoError(t, err)
+ require.EqualValues(t, tt.respWanted, resp)
+ })
+ }
+}
+
func TestFindAllShardsInKeyspace(t *testing.T) {
t.Parallel()
diff --git a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
index 0a2a271d77e..b9c83c3658d 100644
--- a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
+++ b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
@@ -266,6 +266,7 @@ type TabletManagerClient struct {
}
GetUnresolvedTransactionsResults map[string][]*querypb.TransactionMetadata
ReadTransactionResult map[string]*querypb.TransactionMetadata
+ GetTransactionInfoResult map[string]*tabletmanagerdatapb.GetTransactionInfoResponse
// keyed by tablet alias.
InitPrimaryDelays map[string]time.Duration
// keyed by tablet alias. injects a sleep to the end of the function
@@ -696,7 +697,7 @@ func (fake *TabletManagerClient) ExecuteQuery(ctx context.Context, tablet *topod
}
// GetUnresolvedTransactions is part of the tmclient.TabletManagerClient interface.
-func (fake *TabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet) ([]*querypb.TransactionMetadata, error) {
+func (fake *TabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet, abandonAge int64) ([]*querypb.TransactionMetadata, error) {
if len(fake.GetUnresolvedTransactionsResults) == 0 {
return nil, fmt.Errorf("%w: no GetUnresolvedTransactions results on fake TabletManagerClient", assert.AnError)
}
@@ -716,6 +717,18 @@ func (fake *TabletManagerClient) ReadTransaction(ctx context.Context, tablet *to
return fake.ReadTransactionResult[tablet.Shard], nil
}
+// GetTransactionInfo is part of the tmclient.TabletManagerClient interface.
+func (fake *TabletManagerClient) GetTransactionInfo(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ if fake.CallError {
+ return nil, fmt.Errorf("%w: blocked call for GetTransactionInfo on fake TabletManagerClient", assert.AnError)
+ }
+ if fake.GetTransactionInfoResult == nil {
+ return nil, fmt.Errorf("%w: no GetTransactionInfo result on fake TabletManagerClient", assert.AnError)
+ }
+
+ return fake.GetTransactionInfoResult[tablet.Shard], nil
+}
+
// ConcludeTransaction is part of the tmclient.TabletManagerClient interface.
func (fake *TabletManagerClient) ConcludeTransaction(ctx context.Context, tablet *topodatapb.Tablet, dtid string, mm bool) error {
if fake.CallError {
diff --git a/go/vt/vtctl/localvtctldclient/client_gen.go b/go/vt/vtctl/localvtctldclient/client_gen.go
index 9aa6c3f729e..6867f4768f6 100644
--- a/go/vt/vtctl/localvtctldclient/client_gen.go
+++ b/go/vt/vtctl/localvtctldclient/client_gen.go
@@ -396,6 +396,11 @@ func (client *localVtctldClient) GetTopologyPath(ctx context.Context, in *vtctld
return client.s.GetTopologyPath(ctx, in)
}
+// GetTransactionInfo is part of the vtctlservicepb.VtctldClient interface.
+func (client *localVtctldClient) GetTransactionInfo(ctx context.Context, in *vtctldatapb.GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldatapb.GetTransactionInfoResponse, error) {
+ return client.s.GetTransactionInfo(ctx, in)
+}
+
// GetUnresolvedTransactions is part of the vtctlservicepb.VtctldClient interface.
func (client *localVtctldClient) GetUnresolvedTransactions(ctx context.Context, in *vtctldatapb.GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldatapb.GetUnresolvedTransactionsResponse, error) {
return client.s.GetUnresolvedTransactions(ctx, in)
diff --git a/go/vt/vttablet/faketmclient/fake_client.go b/go/vt/vttablet/faketmclient/fake_client.go
index 16d8585efe3..78c87d142a9 100644
--- a/go/vt/vttablet/faketmclient/fake_client.go
+++ b/go/vt/vttablet/faketmclient/fake_client.go
@@ -226,7 +226,7 @@ func (client *FakeTabletManagerClient) ExecuteFetchAsApp(ctx context.Context, ta
}
// GetUnresolvedTransactions is part of the tmclient.TabletManagerClient interface.
-func (client *FakeTabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet) ([]*querypb.TransactionMetadata, error) {
+func (client *FakeTabletManagerClient) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet, abandonAge int64) ([]*querypb.TransactionMetadata, error) {
return nil, nil
}
@@ -245,6 +245,10 @@ func (client *FakeTabletManagerClient) ReadTransaction(ctx context.Context, tabl
return nil, nil
}
+func (client *FakeTabletManagerClient) GetTransactionInfo(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ return nil, nil
+}
+
//
// Replication related methods
//
diff --git a/go/vt/vttablet/grpctmclient/client.go b/go/vt/vttablet/grpctmclient/client.go
index 469daba8375..20aa1e5f39f 100644
--- a/go/vt/vttablet/grpctmclient/client.go
+++ b/go/vt/vttablet/grpctmclient/client.go
@@ -672,14 +672,16 @@ func (client *Client) ExecuteFetchAsApp(ctx context.Context, tablet *topodatapb.
}
// GetUnresolvedTransactions is part of the tmclient.TabletManagerClient interface.
-func (client *Client) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet) ([]*querypb.TransactionMetadata, error) {
+func (client *Client) GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet, abandonAge int64) ([]*querypb.TransactionMetadata, error) {
c, closer, err := client.dialer.dial(ctx, tablet)
if err != nil {
return nil, err
}
defer closer.Close()
- response, err := c.GetUnresolvedTransactions(ctx, &tabletmanagerdatapb.GetUnresolvedTransactionsRequest{})
+ response, err := c.GetUnresolvedTransactions(ctx, &tabletmanagerdatapb.GetUnresolvedTransactionsRequest{
+ AbandonAge: abandonAge,
+ })
if err != nil {
return nil, err
}
@@ -732,6 +734,23 @@ func (client *Client) ReadTransaction(ctx context.Context, tablet *topodatapb.Ta
return resp.Transaction, nil
}
+// GetTransactionInfo is part of the tmclient.TabletManagerClient interface.
+func (client *Client) GetTransactionInfo(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ c, closer, err := client.dialer.dial(ctx, tablet)
+ if err != nil {
+ return nil, err
+ }
+ defer closer.Close()
+
+ resp, err := c.GetTransactionInfo(ctx, &tabletmanagerdatapb.GetTransactionInfoRequest{
+ Dtid: dtid,
+ })
+ if err != nil {
+ return nil, err
+ }
+ return resp, nil
+}
+
//
// Replication related methods
//
diff --git a/go/vt/vttablet/grpctmserver/server.go b/go/vt/vttablet/grpctmserver/server.go
index 20db9e6223b..777f641b1fc 100644
--- a/go/vt/vttablet/grpctmserver/server.go
+++ b/go/vt/vttablet/grpctmserver/server.go
@@ -312,6 +312,18 @@ func (s *server) ReadTransaction(ctx context.Context, request *tabletmanagerdata
return &tabletmanagerdatapb.ReadTransactionResponse{Transaction: transaction}, nil
}
+func (s *server) GetTransactionInfo(ctx context.Context, request *tabletmanagerdatapb.GetTransactionInfoRequest) (response *tabletmanagerdatapb.GetTransactionInfoResponse, err error) {
+ defer s.tm.HandleRPCPanic(ctx, "GetTransactionInfo", request, response, false /*verbose*/, &err)
+ ctx = callinfo.GRPCCallInfo(ctx)
+
+ response, err = s.tm.GetTransactionInfo(ctx, request)
+ if err != nil {
+ return nil, vterrors.ToGRPC(err)
+ }
+
+ return response, nil
+}
+
func (s *server) ConcludeTransaction(ctx context.Context, request *tabletmanagerdatapb.ConcludeTransactionRequest) (response *tabletmanagerdatapb.ConcludeTransactionResponse, err error) {
defer s.tm.HandleRPCPanic(ctx, "ConcludeTransaction", request, response, false /*verbose*/, &err)
ctx = callinfo.GRPCCallInfo(ctx)
diff --git a/go/vt/vttablet/tabletmanager/rpc_agent.go b/go/vt/vttablet/tabletmanager/rpc_agent.go
index c6242689358..203e1d006ab 100644
--- a/go/vt/vttablet/tabletmanager/rpc_agent.go
+++ b/go/vt/vttablet/tabletmanager/rpc_agent.go
@@ -89,6 +89,8 @@ type RPCTM interface {
ReadTransaction(ctx context.Context, req *tabletmanagerdatapb.ReadTransactionRequest) (*querypb.TransactionMetadata, error)
+ GetTransactionInfo(ctx context.Context, req *tabletmanagerdatapb.GetTransactionInfoRequest) (*tabletmanagerdatapb.GetTransactionInfoResponse, error)
+
ConcludeTransaction(ctx context.Context, req *tabletmanagerdatapb.ConcludeTransactionRequest) error
MysqlHostMetrics(ctx context.Context, req *tabletmanagerdatapb.MysqlHostMetricsRequest) (*tabletmanagerdatapb.MysqlHostMetricsResponse, error)
diff --git a/go/vt/vttablet/tabletmanager/rpc_transaction.go b/go/vt/vttablet/tabletmanager/rpc_transaction.go
index f6ec092e357..97c2d22db0c 100644
--- a/go/vt/vttablet/tabletmanager/rpc_transaction.go
+++ b/go/vt/vttablet/tabletmanager/rpc_transaction.go
@@ -45,6 +45,17 @@ func (tm *TabletManager) ReadTransaction(ctx context.Context, req *tabletmanager
return tm.QueryServiceControl.ReadTransaction(ctx, target, req.Dtid)
}
+// GetTransactionInfo returns the transaction data for the given distributed transaction ID.
+func (tm *TabletManager) GetTransactionInfo(ctx context.Context, req *tabletmanagerdatapb.GetTransactionInfoRequest) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ if err := tm.waitForGrantsToHaveApplied(ctx); err != nil {
+ return nil, err
+ }
+
+ tablet := tm.Tablet()
+ target := &querypb.Target{Keyspace: tablet.Keyspace, Shard: tablet.Shard, TabletType: tablet.Type}
+ return tm.QueryServiceControl.GetTransactionInfo(ctx, target, req.Dtid)
+}
+
// ConcludeTransaction concludes the given distributed transaction.
func (tm *TabletManager) ConcludeTransaction(ctx context.Context, req *tabletmanagerdatapb.ConcludeTransactionRequest) error {
if err := tm.waitForGrantsToHaveApplied(ctx); err != nil {
diff --git a/go/vt/vttablet/tabletserver/controller.go b/go/vt/vttablet/tabletserver/controller.go
index abb7b390e0d..cef0dd2baee 100644
--- a/go/vt/vttablet/tabletserver/controller.go
+++ b/go/vt/vttablet/tabletserver/controller.go
@@ -22,6 +22,7 @@ import (
"vitess.io/vitess/go/vt/dbconfigs"
"vitess.io/vitess/go/vt/mysqlctl"
+ "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
"vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/vttablet/queryservice"
"vitess.io/vitess/go/vt/vttablet/tabletserver/rules"
@@ -107,6 +108,9 @@ type Controller interface {
// ReadTransaction returns all unresolved transactions list
ReadTransaction(ctx context.Context, target *querypb.Target, dtid string) (*querypb.TransactionMetadata, error)
+ // GetTransactionInfo returns data about a single transaction
+ GetTransactionInfo(ctx context.Context, target *querypb.Target, dtid string) (*tabletmanagerdata.GetTransactionInfoResponse, error)
+
// ConcludeTransaction deletes the distributed transaction metadata
ConcludeTransaction(ctx context.Context, target *querypb.Target, dtid string) error
diff --git a/go/vt/vttablet/tabletserver/dt_executor.go b/go/vt/vttablet/tabletserver/dt_executor.go
index 126c99814b8..be72037c4a2 100644
--- a/go/vt/vttablet/tabletserver/dt_executor.go
+++ b/go/vt/vttablet/tabletserver/dt_executor.go
@@ -23,6 +23,7 @@ import (
"vitess.io/vitess/go/trace"
"vitess.io/vitess/go/vt/log"
querypb "vitess.io/vitess/go/vt/proto/query"
+ tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/sqlparser"
"vitess.io/vitess/go/vt/vterrors"
@@ -309,6 +310,14 @@ func (dte *DTExecutor) ReadTransaction(dtid string) (*querypb.TransactionMetadat
return dte.te.twoPC.ReadTransaction(dte.ctx, dtid)
}
+// GetTransactionInfo returns the data of the specified dtid.
+func (dte *DTExecutor) GetTransactionInfo(dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ if !dte.te.twopcEnabled {
+ return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "2pc is not enabled")
+ }
+ return dte.te.twoPC.GetTransactionInfo(dte.ctx, dtid)
+}
+
// ReadTwopcInflight returns info about all in-flight 2pc transactions.
func (dte *DTExecutor) ReadTwopcInflight() (distributed []*tx.DistributedTx, prepared, failed []*tx.PreparedTx, err error) {
if !dte.te.twopcEnabled {
diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go
index f96911971be..79123d5ba3f 100644
--- a/go/vt/vttablet/tabletserver/tabletserver.go
+++ b/go/vt/vttablet/tabletserver/tabletserver.go
@@ -828,6 +828,21 @@ func (tsv *TabletServer) ReadTransaction(ctx context.Context, target *querypb.Ta
return metadata, err
}
+// GetTransactionInfo returns the data for the specified dtid.
+func (tsv *TabletServer) GetTransactionInfo(ctx context.Context, target *querypb.Target, dtid string) (resp *tabletmanagerdatapb.GetTransactionInfoResponse, err error) {
+ err = tsv.execRequest(
+ ctx, tsv.loadQueryTimeout(),
+ "GetTransactionInfo", "get_transaction_info", nil,
+ target, nil, true, /* allowOnShutdown */
+ func(ctx context.Context, logStats *tabletenv.LogStats) error {
+ txe := NewDTExecutor(ctx, logStats, tsv.te, tsv.qe, tsv.getShard)
+ resp, err = txe.GetTransactionInfo(dtid)
+ return err
+ },
+ )
+ return resp, err
+}
+
// UnresolvedTransactions returns the unresolved distributed transaction record.
func (tsv *TabletServer) UnresolvedTransactions(ctx context.Context, target *querypb.Target, abandonAgeSeconds int64) (transactions []*querypb.TransactionMetadata, err error) {
err = tsv.execRequest(
diff --git a/go/vt/vttablet/tabletserver/twopc.go b/go/vt/vttablet/tabletserver/twopc.go
index 577c10e55de..e1212ebe627 100644
--- a/go/vt/vttablet/tabletserver/twopc.go
+++ b/go/vt/vttablet/tabletserver/twopc.go
@@ -27,6 +27,7 @@ import (
"vitess.io/vitess/go/vt/dbconnpool"
"vitess.io/vitess/go/vt/log"
querypb "vitess.io/vitess/go/vt/proto/query"
+ tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/sqlparser"
@@ -75,7 +76,9 @@ type TwoPC struct {
readPool *connpool.Pool
insertRedoTx *sqlparser.ParsedQuery
+ readRedoTx *sqlparser.ParsedQuery
insertRedoStmt *sqlparser.ParsedQuery
+ readRedoStmts *sqlparser.ParsedQuery
updateRedoTx *sqlparser.ParsedQuery
deleteRedoTx *sqlparser.ParsedQuery
deleteRedoStmt *sqlparser.ParsedQuery
@@ -105,9 +108,15 @@ func (tpc *TwoPC) initializeQueries() {
tpc.insertRedoTx = sqlparser.BuildParsedQuery(
"insert into %s.redo_state(dtid, state, time_created) values (%a, %a, %a)",
dbname, ":dtid", ":state", ":time_created")
+ tpc.readRedoTx = sqlparser.BuildParsedQuery(
+ "select state, time_created, message from %s.redo_state where dtid = %a",
+ dbname, ":dtid")
tpc.insertRedoStmt = sqlparser.BuildParsedQuery(
"insert into %s.redo_statement(dtid, id, statement) values %a",
dbname, ":vals")
+ tpc.readRedoStmts = sqlparser.BuildParsedQuery(
+ "select statement from %s.redo_statement where dtid = %a order by id",
+ dbname, ":dtid")
tpc.updateRedoTx = sqlparser.BuildParsedQuery(
"update %s.redo_state set state = %a, message = %a where dtid = %a",
dbname, ":state", ":message", ":dtid")
@@ -150,6 +159,18 @@ func (tpc *TwoPC) initializeQueries() {
dbname, ":time_created")
}
+// getStateString gets the redo state of the transaction as a string.
+func getStateString(st int) string {
+ switch st {
+ case RedoStateFailed:
+ return "FAILED"
+ case RedoStatePrepared:
+ return "PREPARED"
+ default:
+ return "UNKNOWN"
+ }
+}
+
// Open starts the TwoPC service.
func (tpc *TwoPC) Open(dbconfigs *dbconfigs.DBConfigs) error {
conn, err := dbconnpool.NewDBConnection(context.TODO(), dbconfigs.DbaWithDB())
@@ -400,6 +421,47 @@ func (tpc *TwoPC) ReadTransaction(ctx context.Context, dtid string) (*querypb.Tr
return result, nil
}
+// GetTransactionInfo returns the data for the transaction.
+func (tpc *TwoPC) GetTransactionInfo(ctx context.Context, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ conn, err := tpc.readPool.Get(ctx, nil)
+ if err != nil {
+ return nil, err
+ }
+ defer conn.Recycle()
+
+ result := &tabletmanagerdatapb.GetTransactionInfoResponse{}
+ bindVars := map[string]*querypb.BindVariable{
+ "dtid": sqltypes.BytesBindVariable([]byte(dtid)),
+ }
+ qr, err := tpc.read(ctx, conn.Conn, tpc.readRedoTx, bindVars)
+ if err != nil {
+ return nil, err
+ }
+ if len(qr.Rows) == 0 {
+ return result, nil
+ }
+ state, err := qr.Rows[0][0].ToInt()
+ if err != nil {
+ return nil, err
+ }
+ result.State = getStateString(state)
+ // A failure in time parsing will show up as a very old time,
+ // which is harmless.
+ tm, _ := qr.Rows[0][1].ToCastInt64()
+ result.TimeCreated = tm
+ result.Message = qr.Rows[0][2].ToString()
+
+ qr, err = tpc.read(ctx, conn.Conn, tpc.readRedoStmts, bindVars)
+ if err != nil {
+ return nil, err
+ }
+ result.Statements = make([]string, len(qr.Rows))
+ for idx, row := range qr.Rows {
+ result.Statements[idx] = row[0].ToString()
+ }
+ return result, nil
+}
+
// ReadAllTransactions returns info about all distributed transactions.
func (tpc *TwoPC) ReadAllTransactions(ctx context.Context) ([]*tx.DistributedTx, error) {
conn, err := tpc.readPool.Get(ctx, nil)
diff --git a/go/vt/vttablet/tabletservermock/controller.go b/go/vt/vttablet/tabletservermock/controller.go
index 9e97c033776..9d570b8f6c7 100644
--- a/go/vt/vttablet/tabletservermock/controller.go
+++ b/go/vt/vttablet/tabletservermock/controller.go
@@ -24,6 +24,7 @@ import (
"vitess.io/vitess/go/vt/dbconfigs"
"vitess.io/vitess/go/vt/mysqlctl"
+ "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
"vitess.io/vitess/go/vt/servenv"
"vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/vttablet/queryservice"
@@ -249,6 +250,12 @@ func (tqsc *Controller) ReadTransaction(ctx context.Context, target *querypb.Tar
return nil, nil
}
+// GetTransactionInfo is part of the tabletserver.Controller interface
+func (tqsc *Controller) GetTransactionInfo(ctx context.Context, target *querypb.Target, dtid string) (*tabletmanagerdata.GetTransactionInfoResponse, error) {
+ tqsc.MethodCalled["GetTransactionInfo"] = true
+ return nil, nil
+}
+
// ConcludeTransaction is part of the tabletserver.Controller interface
func (tqsc *Controller) ConcludeTransaction(context.Context, *querypb.Target, string) error {
tqsc.MethodCalled["ConcludeTransaction"] = true
diff --git a/go/vt/vttablet/tmclient/rpc_client_api.go b/go/vt/vttablet/tmclient/rpc_client_api.go
index 0cc1f9ec979..2b5cc967e9f 100644
--- a/go/vt/vttablet/tmclient/rpc_client_api.go
+++ b/go/vt/vttablet/tmclient/rpc_client_api.go
@@ -154,11 +154,13 @@ type TabletManagerClient interface {
//
// GetUnresolvedTransactions returns the list of unresolved transactions for the tablet.
- GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet) ([]*querypb.TransactionMetadata, error)
+ GetUnresolvedTransactions(ctx context.Context, tablet *topodatapb.Tablet, abandonAge int64) ([]*querypb.TransactionMetadata, error)
// ReadTransaction returns the metadata for the specified distributed transaction ID.
ReadTransaction(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*querypb.TransactionMetadata, error)
+ GetTransactionInfo(ctx context.Context, tablet *topodatapb.Tablet, dtid string) (*tabletmanagerdatapb.GetTransactionInfoResponse, error)
+
// ConcludeTransaction conclude the transaction on the tablet.
ConcludeTransaction(ctx context.Context, tablet *topodatapb.Tablet, dtid string, mm bool) error
diff --git a/go/vt/vttablet/tmrpctest/test_tm_rpc.go b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
index 08dbb78ba64..88ba3506ba5 100644
--- a/go/vt/vttablet/tmrpctest/test_tm_rpc.go
+++ b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
@@ -421,12 +421,12 @@ func tmRPCTestGetGlobalStatusVarsPanic(ctx context.Context, t *testing.T, client
}
func tmRPCTestGetUnresolvedTransactions(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
- _, err := client.GetUnresolvedTransactions(ctx, tablet)
+ _, err := client.GetUnresolvedTransactions(ctx, tablet, 0)
require.NoError(t, err)
}
func tmRPCTestGetUnresolvedTransactionsPanic(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
- _, err := client.GetUnresolvedTransactions(ctx, tablet)
+ _, err := client.GetUnresolvedTransactions(ctx, tablet, 0)
expectHandleRPCPanic(t, "GetUnresolvedTransactions", false /*verbose*/, err)
}
@@ -440,6 +440,16 @@ func tmRPCTestReadTransactionPanic(ctx context.Context, t *testing.T, client tmc
expectHandleRPCPanic(t, "ReadTransaction", false /*verbose*/, err)
}
+func tmRPCTestGetTransactionInfo(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
+ _, err := client.GetTransactionInfo(ctx, tablet, "aa")
+ require.NoError(t, err)
+}
+
+func tmRPCTestGetTransactionInfoPanic(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
+ _, err := client.GetTransactionInfo(ctx, tablet, "aa")
+ expectHandleRPCPanic(t, "GetTransactionInfo", false /*verbose*/, err)
+}
+
//
// Various read-write methods
//
@@ -800,6 +810,13 @@ func (fra *fakeRPCTM) ReadTransaction(ctx context.Context, req *tabletmanagerdat
return nil, nil
}
+func (fra *fakeRPCTM) GetTransactionInfo(ctx context.Context, req *tabletmanagerdatapb.GetTransactionInfoRequest) (*tabletmanagerdatapb.GetTransactionInfoResponse, error) {
+ if fra.panics {
+ panic(fmt.Errorf("test-triggered panic"))
+ }
+ return nil, nil
+}
+
func (fra *fakeRPCTM) ConcludeTransaction(ctx context.Context, req *tabletmanagerdatapb.ConcludeTransactionRequest) error {
if fra.panics {
panic(fmt.Errorf("test-triggered panic"))
@@ -1526,6 +1543,7 @@ func Run(t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.T
tmRPCTestGetGlobalStatusVars(ctx, t, client, tablet)
tmRPCTestGetUnresolvedTransactions(ctx, t, client, tablet)
tmRPCTestReadTransaction(ctx, t, client, tablet)
+ tmRPCTestGetTransactionInfo(ctx, t, client, tablet)
// Various read-write methods
tmRPCTestSetReadOnly(ctx, t, client, tablet)
@@ -1590,6 +1608,7 @@ func Run(t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.T
tmRPCTestGetGlobalStatusVarsPanic(ctx, t, client, tablet)
tmRPCTestGetUnresolvedTransactionsPanic(ctx, t, client, tablet)
tmRPCTestReadTransactionPanic(ctx, t, client, tablet)
+ tmRPCTestGetTransactionInfoPanic(ctx, t, client, tablet)
// Various read-write methods
tmRPCTestSetReadOnlyPanic(ctx, t, client, tablet)
diff --git a/proto/tabletmanagerdata.proto b/proto/tabletmanagerdata.proto
index 7a7f9f8cfcd..bb20e712e7f 100644
--- a/proto/tabletmanagerdata.proto
+++ b/proto/tabletmanagerdata.proto
@@ -326,6 +326,18 @@ message ReadTransactionResponse {
query.TransactionMetadata transaction = 1;
}
+message GetTransactionInfoRequest {
+ string dtid = 1;
+}
+
+message GetTransactionInfoResponse {
+ string state = 1;
+ string message = 2;
+ int64 time_created = 3;
+ repeated string statements = 4;
+}
+
+
message ConcludeTransactionRequest {
string dtid = 1;
bool mm = 2;
diff --git a/proto/tabletmanagerservice.proto b/proto/tabletmanagerservice.proto
index 0c26ea2d568..3dac1aa1ee8 100644
--- a/proto/tabletmanagerservice.proto
+++ b/proto/tabletmanagerservice.proto
@@ -97,6 +97,8 @@ service TabletManager {
rpc ReadTransaction(tabletmanagerdata.ReadTransactionRequest) returns (tabletmanagerdata.ReadTransactionResponse) {};
+ rpc GetTransactionInfo(tabletmanagerdata.GetTransactionInfoRequest) returns (tabletmanagerdata.GetTransactionInfoResponse) {};
+
rpc ConcludeTransaction(tabletmanagerdata.ConcludeTransactionRequest) returns (tabletmanagerdata.ConcludeTransactionResponse) {};
rpc MysqlHostMetrics(tabletmanagerdata.MysqlHostMetricsRequest) returns (tabletmanagerdata.MysqlHostMetricsResponse) {};
diff --git a/proto/vtctldata.proto b/proto/vtctldata.proto
index 13b2045a8f9..b1e5fb215bc 100644
--- a/proto/vtctldata.proto
+++ b/proto/vtctldata.proto
@@ -1140,6 +1140,24 @@ message GetUnresolvedTransactionsResponse {
repeated query.TransactionMetadata transactions = 1;
}
+message GetTransactionInfoRequest {
+ string dtid = 1;
+}
+
+message ShardTransactionState {
+ string shard = 1;
+ string state = 2;
+ string message = 3;
+ int64 time_created = 4;
+ repeated string statements = 5;
+}
+
+message GetTransactionInfoResponse {
+ query.TransactionMetadata metadata = 1;
+ repeated ShardTransactionState shard_states = 2;
+}
+
+
message ConcludeTransactionRequest {
string dtid = 1;
repeated query.Target participants = 2;
diff --git a/proto/vtctlservice.proto b/proto/vtctlservice.proto
index 82a7907bc60..3133d4fb4e1 100644
--- a/proto/vtctlservice.proto
+++ b/proto/vtctlservice.proto
@@ -173,6 +173,8 @@ service Vtctld {
rpc GetThrottlerStatus(vtctldata.GetThrottlerStatusRequest) returns (vtctldata.GetThrottlerStatusResponse) {};
// GetTopologyPath returns the topology cell at a given path.
rpc GetTopologyPath(vtctldata.GetTopologyPathRequest) returns (vtctldata.GetTopologyPathResponse) {};
+ // GetTransactionInfo reads a given transactions information.
+ rpc GetTransactionInfo(vtctldata.GetTransactionInfoRequest) returns (vtctldata.GetTransactionInfoResponse) {};
// GetTransactions returns the unresolved transactions for the request.
rpc GetUnresolvedTransactions(vtctldata.GetUnresolvedTransactionsRequest) returns (vtctldata.GetUnresolvedTransactionsResponse) {};
// GetVersion returns the version of a tablet from its debug vars.
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index 615214cc81a..22b4430a895 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -25764,6 +25764,218 @@ export namespace tabletmanagerdata {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** Properties of a GetTransactionInfoRequest. */
+ interface IGetTransactionInfoRequest {
+
+ /** GetTransactionInfoRequest dtid */
+ dtid?: (string|null);
+ }
+
+ /** Represents a GetTransactionInfoRequest. */
+ class GetTransactionInfoRequest implements IGetTransactionInfoRequest {
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IGetTransactionInfoRequest);
+
+ /** GetTransactionInfoRequest dtid. */
+ public dtid: string;
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetTransactionInfoRequest instance
+ */
+ public static create(properties?: tabletmanagerdata.IGetTransactionInfoRequest): tabletmanagerdata.GetTransactionInfoRequest;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.GetTransactionInfoRequest;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.GetTransactionInfoRequest;
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetTransactionInfoRequest
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.GetTransactionInfoRequest;
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @param message GetTransactionInfoRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.GetTransactionInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a GetTransactionInfoResponse. */
+ interface IGetTransactionInfoResponse {
+
+ /** GetTransactionInfoResponse state */
+ state?: (string|null);
+
+ /** GetTransactionInfoResponse message */
+ message?: (string|null);
+
+ /** GetTransactionInfoResponse time_created */
+ time_created?: (number|Long|null);
+
+ /** GetTransactionInfoResponse statements */
+ statements?: (string[]|null);
+ }
+
+ /** Represents a GetTransactionInfoResponse. */
+ class GetTransactionInfoResponse implements IGetTransactionInfoResponse {
+
+ /**
+ * Constructs a new GetTransactionInfoResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: tabletmanagerdata.IGetTransactionInfoResponse);
+
+ /** GetTransactionInfoResponse state. */
+ public state: string;
+
+ /** GetTransactionInfoResponse message. */
+ public message: string;
+
+ /** GetTransactionInfoResponse time_created. */
+ public time_created: (number|Long);
+
+ /** GetTransactionInfoResponse statements. */
+ public statements: string[];
+
+ /**
+ * Creates a new GetTransactionInfoResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetTransactionInfoResponse instance
+ */
+ public static create(properties?: tabletmanagerdata.IGetTransactionInfoResponse): tabletmanagerdata.GetTransactionInfoResponse;
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoResponse.verify|verify} messages.
+ * @param message GetTransactionInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: tabletmanagerdata.IGetTransactionInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoResponse.verify|verify} messages.
+ * @param message GetTransactionInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: tabletmanagerdata.IGetTransactionInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tabletmanagerdata.GetTransactionInfoResponse;
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tabletmanagerdata.GetTransactionInfoResponse;
+
+ /**
+ * Verifies a GetTransactionInfoResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GetTransactionInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetTransactionInfoResponse
+ */
+ public static fromObject(object: { [k: string]: any }): tabletmanagerdata.GetTransactionInfoResponse;
+
+ /**
+ * Creates a plain object from a GetTransactionInfoResponse message. Also converts values to other types if specified.
+ * @param message GetTransactionInfoResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: tabletmanagerdata.GetTransactionInfoResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetTransactionInfoResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetTransactionInfoResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
/** Properties of a ConcludeTransactionRequest. */
interface IConcludeTransactionRequest {
@@ -63883,6 +64095,327 @@ export namespace vtctldata {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** Properties of a GetTransactionInfoRequest. */
+ interface IGetTransactionInfoRequest {
+
+ /** GetTransactionInfoRequest dtid */
+ dtid?: (string|null);
+ }
+
+ /** Represents a GetTransactionInfoRequest. */
+ class GetTransactionInfoRequest implements IGetTransactionInfoRequest {
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtctldata.IGetTransactionInfoRequest);
+
+ /** GetTransactionInfoRequest dtid. */
+ public dtid: string;
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetTransactionInfoRequest instance
+ */
+ public static create(properties?: vtctldata.IGetTransactionInfoRequest): vtctldata.GetTransactionInfoRequest;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link vtctldata.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtctldata.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link vtctldata.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtctldata.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.GetTransactionInfoRequest;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.GetTransactionInfoRequest;
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetTransactionInfoRequest
+ */
+ public static fromObject(object: { [k: string]: any }): vtctldata.GetTransactionInfoRequest;
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @param message GetTransactionInfoRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtctldata.GetTransactionInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a ShardTransactionState. */
+ interface IShardTransactionState {
+
+ /** ShardTransactionState shard */
+ shard?: (string|null);
+
+ /** ShardTransactionState state */
+ state?: (string|null);
+
+ /** ShardTransactionState message */
+ message?: (string|null);
+
+ /** ShardTransactionState time_created */
+ time_created?: (number|Long|null);
+
+ /** ShardTransactionState statements */
+ statements?: (string[]|null);
+ }
+
+ /** Represents a ShardTransactionState. */
+ class ShardTransactionState implements IShardTransactionState {
+
+ /**
+ * Constructs a new ShardTransactionState.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtctldata.IShardTransactionState);
+
+ /** ShardTransactionState shard. */
+ public shard: string;
+
+ /** ShardTransactionState state. */
+ public state: string;
+
+ /** ShardTransactionState message. */
+ public message: string;
+
+ /** ShardTransactionState time_created. */
+ public time_created: (number|Long);
+
+ /** ShardTransactionState statements. */
+ public statements: string[];
+
+ /**
+ * Creates a new ShardTransactionState instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ShardTransactionState instance
+ */
+ public static create(properties?: vtctldata.IShardTransactionState): vtctldata.ShardTransactionState;
+
+ /**
+ * Encodes the specified ShardTransactionState message. Does not implicitly {@link vtctldata.ShardTransactionState.verify|verify} messages.
+ * @param message ShardTransactionState message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtctldata.IShardTransactionState, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ShardTransactionState message, length delimited. Does not implicitly {@link vtctldata.ShardTransactionState.verify|verify} messages.
+ * @param message ShardTransactionState message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtctldata.IShardTransactionState, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ShardTransactionState message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ShardTransactionState
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.ShardTransactionState;
+
+ /**
+ * Decodes a ShardTransactionState message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ShardTransactionState
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.ShardTransactionState;
+
+ /**
+ * Verifies a ShardTransactionState message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ShardTransactionState message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ShardTransactionState
+ */
+ public static fromObject(object: { [k: string]: any }): vtctldata.ShardTransactionState;
+
+ /**
+ * Creates a plain object from a ShardTransactionState message. Also converts values to other types if specified.
+ * @param message ShardTransactionState
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtctldata.ShardTransactionState, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ShardTransactionState to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for ShardTransactionState
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
+ /** Properties of a GetTransactionInfoResponse. */
+ interface IGetTransactionInfoResponse {
+
+ /** GetTransactionInfoResponse metadata */
+ metadata?: (query.ITransactionMetadata|null);
+
+ /** GetTransactionInfoResponse shard_states */
+ shard_states?: (vtctldata.IShardTransactionState[]|null);
+ }
+
+ /** Represents a GetTransactionInfoResponse. */
+ class GetTransactionInfoResponse implements IGetTransactionInfoResponse {
+
+ /**
+ * Constructs a new GetTransactionInfoResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtctldata.IGetTransactionInfoResponse);
+
+ /** GetTransactionInfoResponse metadata. */
+ public metadata?: (query.ITransactionMetadata|null);
+
+ /** GetTransactionInfoResponse shard_states. */
+ public shard_states: vtctldata.IShardTransactionState[];
+
+ /**
+ * Creates a new GetTransactionInfoResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetTransactionInfoResponse instance
+ */
+ public static create(properties?: vtctldata.IGetTransactionInfoResponse): vtctldata.GetTransactionInfoResponse;
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message. Does not implicitly {@link vtctldata.GetTransactionInfoResponse.verify|verify} messages.
+ * @param message GetTransactionInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtctldata.IGetTransactionInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message, length delimited. Does not implicitly {@link vtctldata.GetTransactionInfoResponse.verify|verify} messages.
+ * @param message GetTransactionInfoResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtctldata.IGetTransactionInfoResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.GetTransactionInfoResponse;
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.GetTransactionInfoResponse;
+
+ /**
+ * Verifies a GetTransactionInfoResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GetTransactionInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetTransactionInfoResponse
+ */
+ public static fromObject(object: { [k: string]: any }): vtctldata.GetTransactionInfoResponse;
+
+ /**
+ * Creates a plain object from a GetTransactionInfoResponse message. Also converts values to other types if specified.
+ * @param message GetTransactionInfoResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtctldata.GetTransactionInfoResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetTransactionInfoResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetTransactionInfoResponse
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
/** Properties of a ConcludeTransactionRequest. */
interface IConcludeTransactionRequest {
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 3649e9e2c67..3611efa8d19 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -59607,6 +59607,513 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
return ReadTransactionResponse;
})();
+ tabletmanagerdata.GetTransactionInfoRequest = (function() {
+
+ /**
+ * Properties of a GetTransactionInfoRequest.
+ * @memberof tabletmanagerdata
+ * @interface IGetTransactionInfoRequest
+ * @property {string|null} [dtid] GetTransactionInfoRequest dtid
+ */
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a GetTransactionInfoRequest.
+ * @implements IGetTransactionInfoRequest
+ * @constructor
+ * @param {tabletmanagerdata.IGetTransactionInfoRequest=} [properties] Properties to set
+ */
+ function GetTransactionInfoRequest(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GetTransactionInfoRequest dtid.
+ * @member {string} dtid
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @instance
+ */
+ GetTransactionInfoRequest.prototype.dtid = "";
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoRequest=} [properties] Properties to set
+ * @returns {tabletmanagerdata.GetTransactionInfoRequest} GetTransactionInfoRequest instance
+ */
+ GetTransactionInfoRequest.create = function create(properties) {
+ return new GetTransactionInfoRequest(properties);
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dtid != null && Object.hasOwnProperty.call(message, "dtid"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.dtid);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.GetTransactionInfoRequest();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.dtid = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @function verify
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetTransactionInfoRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dtid != null && message.hasOwnProperty("dtid"))
+ if (!$util.isString(message.dtid))
+ return "dtid: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ */
+ GetTransactionInfoRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.GetTransactionInfoRequest)
+ return object;
+ let message = new $root.tabletmanagerdata.GetTransactionInfoRequest();
+ if (object.dtid != null)
+ message.dtid = String(object.dtid);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {tabletmanagerdata.GetTransactionInfoRequest} message GetTransactionInfoRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetTransactionInfoRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults)
+ object.dtid = "";
+ if (message.dtid != null && message.hasOwnProperty("dtid"))
+ object.dtid = message.dtid;
+ return object;
+ };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetTransactionInfoRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.GetTransactionInfoRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetTransactionInfoRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.GetTransactionInfoRequest";
+ };
+
+ return GetTransactionInfoRequest;
+ })();
+
+ tabletmanagerdata.GetTransactionInfoResponse = (function() {
+
+ /**
+ * Properties of a GetTransactionInfoResponse.
+ * @memberof tabletmanagerdata
+ * @interface IGetTransactionInfoResponse
+ * @property {string|null} [state] GetTransactionInfoResponse state
+ * @property {string|null} [message] GetTransactionInfoResponse message
+ * @property {number|Long|null} [time_created] GetTransactionInfoResponse time_created
+ * @property {Array.|null} [statements] GetTransactionInfoResponse statements
+ */
+
+ /**
+ * Constructs a new GetTransactionInfoResponse.
+ * @memberof tabletmanagerdata
+ * @classdesc Represents a GetTransactionInfoResponse.
+ * @implements IGetTransactionInfoResponse
+ * @constructor
+ * @param {tabletmanagerdata.IGetTransactionInfoResponse=} [properties] Properties to set
+ */
+ function GetTransactionInfoResponse(properties) {
+ this.statements = [];
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GetTransactionInfoResponse state.
+ * @member {string} state
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.state = "";
+
+ /**
+ * GetTransactionInfoResponse message.
+ * @member {string} message
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.message = "";
+
+ /**
+ * GetTransactionInfoResponse time_created.
+ * @member {number|Long} time_created
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.time_created = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * GetTransactionInfoResponse statements.
+ * @member {Array.} statements
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.statements = $util.emptyArray;
+
+ /**
+ * Creates a new GetTransactionInfoResponse instance using the specified properties.
+ * @function create
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoResponse=} [properties] Properties to set
+ * @returns {tabletmanagerdata.GetTransactionInfoResponse} GetTransactionInfoResponse instance
+ */
+ GetTransactionInfoResponse.create = function create(properties) {
+ return new GetTransactionInfoResponse(properties);
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoResponse.verify|verify} messages.
+ * @function encode
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoResponse} message GetTransactionInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.state != null && Object.hasOwnProperty.call(message, "state"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.state);
+ if (message.message != null && Object.hasOwnProperty.call(message, "message"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.message);
+ if (message.time_created != null && Object.hasOwnProperty.call(message, "time_created"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int64(message.time_created);
+ if (message.statements != null && message.statements.length)
+ for (let i = 0; i < message.statements.length; ++i)
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.statements[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message, length delimited. Does not implicitly {@link tabletmanagerdata.GetTransactionInfoResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {tabletmanagerdata.IGetTransactionInfoResponse} message GetTransactionInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {tabletmanagerdata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.tabletmanagerdata.GetTransactionInfoResponse();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.state = reader.string();
+ break;
+ }
+ case 2: {
+ message.message = reader.string();
+ break;
+ }
+ case 3: {
+ message.time_created = reader.int64();
+ break;
+ }
+ case 4: {
+ if (!(message.statements && message.statements.length))
+ message.statements = [];
+ message.statements.push(reader.string());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {tabletmanagerdata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetTransactionInfoResponse message.
+ * @function verify
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetTransactionInfoResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.state != null && message.hasOwnProperty("state"))
+ if (!$util.isString(message.state))
+ return "state: string expected";
+ if (message.message != null && message.hasOwnProperty("message"))
+ if (!$util.isString(message.message))
+ return "message: string expected";
+ if (message.time_created != null && message.hasOwnProperty("time_created"))
+ if (!$util.isInteger(message.time_created) && !(message.time_created && $util.isInteger(message.time_created.low) && $util.isInteger(message.time_created.high)))
+ return "time_created: integer|Long expected";
+ if (message.statements != null && message.hasOwnProperty("statements")) {
+ if (!Array.isArray(message.statements))
+ return "statements: array expected";
+ for (let i = 0; i < message.statements.length; ++i)
+ if (!$util.isString(message.statements[i]))
+ return "statements: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a GetTransactionInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {tabletmanagerdata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ */
+ GetTransactionInfoResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.tabletmanagerdata.GetTransactionInfoResponse)
+ return object;
+ let message = new $root.tabletmanagerdata.GetTransactionInfoResponse();
+ if (object.state != null)
+ message.state = String(object.state);
+ if (object.message != null)
+ message.message = String(object.message);
+ if (object.time_created != null)
+ if ($util.Long)
+ (message.time_created = $util.Long.fromValue(object.time_created)).unsigned = false;
+ else if (typeof object.time_created === "string")
+ message.time_created = parseInt(object.time_created, 10);
+ else if (typeof object.time_created === "number")
+ message.time_created = object.time_created;
+ else if (typeof object.time_created === "object")
+ message.time_created = new $util.LongBits(object.time_created.low >>> 0, object.time_created.high >>> 0).toNumber();
+ if (object.statements) {
+ if (!Array.isArray(object.statements))
+ throw TypeError(".tabletmanagerdata.GetTransactionInfoResponse.statements: array expected");
+ message.statements = [];
+ for (let i = 0; i < object.statements.length; ++i)
+ message.statements[i] = String(object.statements[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetTransactionInfoResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {tabletmanagerdata.GetTransactionInfoResponse} message GetTransactionInfoResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetTransactionInfoResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.arrays || options.defaults)
+ object.statements = [];
+ if (options.defaults) {
+ object.state = "";
+ object.message = "";
+ if ($util.Long) {
+ let long = new $util.Long(0, 0, false);
+ object.time_created = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.time_created = options.longs === String ? "0" : 0;
+ }
+ if (message.state != null && message.hasOwnProperty("state"))
+ object.state = message.state;
+ if (message.message != null && message.hasOwnProperty("message"))
+ object.message = message.message;
+ if (message.time_created != null && message.hasOwnProperty("time_created"))
+ if (typeof message.time_created === "number")
+ object.time_created = options.longs === String ? String(message.time_created) : message.time_created;
+ else
+ object.time_created = options.longs === String ? $util.Long.prototype.toString.call(message.time_created) : options.longs === Number ? new $util.LongBits(message.time_created.low >>> 0, message.time_created.high >>> 0).toNumber() : message.time_created;
+ if (message.statements && message.statements.length) {
+ object.statements = [];
+ for (let j = 0; j < message.statements.length; ++j)
+ object.statements[j] = message.statements[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this GetTransactionInfoResponse to JSON.
+ * @function toJSON
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetTransactionInfoResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetTransactionInfoResponse
+ * @function getTypeUrl
+ * @memberof tabletmanagerdata.GetTransactionInfoResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetTransactionInfoResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/tabletmanagerdata.GetTransactionInfoResponse";
+ };
+
+ return GetTransactionInfoResponse;
+ })();
+
tabletmanagerdata.ConcludeTransactionRequest = (function() {
/**
@@ -156559,6 +157066,789 @@ export const vtctldata = $root.vtctldata = (() => {
return GetUnresolvedTransactionsResponse;
})();
+ vtctldata.GetTransactionInfoRequest = (function() {
+
+ /**
+ * Properties of a GetTransactionInfoRequest.
+ * @memberof vtctldata
+ * @interface IGetTransactionInfoRequest
+ * @property {string|null} [dtid] GetTransactionInfoRequest dtid
+ */
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @memberof vtctldata
+ * @classdesc Represents a GetTransactionInfoRequest.
+ * @implements IGetTransactionInfoRequest
+ * @constructor
+ * @param {vtctldata.IGetTransactionInfoRequest=} [properties] Properties to set
+ */
+ function GetTransactionInfoRequest(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GetTransactionInfoRequest dtid.
+ * @member {string} dtid
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @instance
+ */
+ GetTransactionInfoRequest.prototype.dtid = "";
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @function create
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {vtctldata.IGetTransactionInfoRequest=} [properties] Properties to set
+ * @returns {vtctldata.GetTransactionInfoRequest} GetTransactionInfoRequest instance
+ */
+ GetTransactionInfoRequest.create = function create(properties) {
+ return new GetTransactionInfoRequest(properties);
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link vtctldata.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encode
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {vtctldata.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.dtid != null && Object.hasOwnProperty.call(message, "dtid"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.dtid);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link vtctldata.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {vtctldata.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtctldata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.GetTransactionInfoRequest();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.dtid = reader.string();
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtctldata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @function verify
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetTransactionInfoRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.dtid != null && message.hasOwnProperty("dtid"))
+ if (!$util.isString(message.dtid))
+ return "dtid: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtctldata.GetTransactionInfoRequest} GetTransactionInfoRequest
+ */
+ GetTransactionInfoRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtctldata.GetTransactionInfoRequest)
+ return object;
+ let message = new $root.vtctldata.GetTransactionInfoRequest();
+ if (object.dtid != null)
+ message.dtid = String(object.dtid);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {vtctldata.GetTransactionInfoRequest} message GetTransactionInfoRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetTransactionInfoRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults)
+ object.dtid = "";
+ if (message.dtid != null && message.hasOwnProperty("dtid"))
+ object.dtid = message.dtid;
+ return object;
+ };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @function toJSON
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetTransactionInfoRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @function getTypeUrl
+ * @memberof vtctldata.GetTransactionInfoRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetTransactionInfoRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtctldata.GetTransactionInfoRequest";
+ };
+
+ return GetTransactionInfoRequest;
+ })();
+
+ vtctldata.ShardTransactionState = (function() {
+
+ /**
+ * Properties of a ShardTransactionState.
+ * @memberof vtctldata
+ * @interface IShardTransactionState
+ * @property {string|null} [shard] ShardTransactionState shard
+ * @property {string|null} [state] ShardTransactionState state
+ * @property {string|null} [message] ShardTransactionState message
+ * @property {number|Long|null} [time_created] ShardTransactionState time_created
+ * @property {Array.|null} [statements] ShardTransactionState statements
+ */
+
+ /**
+ * Constructs a new ShardTransactionState.
+ * @memberof vtctldata
+ * @classdesc Represents a ShardTransactionState.
+ * @implements IShardTransactionState
+ * @constructor
+ * @param {vtctldata.IShardTransactionState=} [properties] Properties to set
+ */
+ function ShardTransactionState(properties) {
+ this.statements = [];
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ShardTransactionState shard.
+ * @member {string} shard
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ */
+ ShardTransactionState.prototype.shard = "";
+
+ /**
+ * ShardTransactionState state.
+ * @member {string} state
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ */
+ ShardTransactionState.prototype.state = "";
+
+ /**
+ * ShardTransactionState message.
+ * @member {string} message
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ */
+ ShardTransactionState.prototype.message = "";
+
+ /**
+ * ShardTransactionState time_created.
+ * @member {number|Long} time_created
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ */
+ ShardTransactionState.prototype.time_created = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * ShardTransactionState statements.
+ * @member {Array.} statements
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ */
+ ShardTransactionState.prototype.statements = $util.emptyArray;
+
+ /**
+ * Creates a new ShardTransactionState instance using the specified properties.
+ * @function create
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {vtctldata.IShardTransactionState=} [properties] Properties to set
+ * @returns {vtctldata.ShardTransactionState} ShardTransactionState instance
+ */
+ ShardTransactionState.create = function create(properties) {
+ return new ShardTransactionState(properties);
+ };
+
+ /**
+ * Encodes the specified ShardTransactionState message. Does not implicitly {@link vtctldata.ShardTransactionState.verify|verify} messages.
+ * @function encode
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {vtctldata.IShardTransactionState} message ShardTransactionState message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ShardTransactionState.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.shard != null && Object.hasOwnProperty.call(message, "shard"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.shard);
+ if (message.state != null && Object.hasOwnProperty.call(message, "state"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.state);
+ if (message.message != null && Object.hasOwnProperty.call(message, "message"))
+ writer.uint32(/* id 3, wireType 2 =*/26).string(message.message);
+ if (message.time_created != null && Object.hasOwnProperty.call(message, "time_created"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int64(message.time_created);
+ if (message.statements != null && message.statements.length)
+ for (let i = 0; i < message.statements.length; ++i)
+ writer.uint32(/* id 5, wireType 2 =*/42).string(message.statements[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ShardTransactionState message, length delimited. Does not implicitly {@link vtctldata.ShardTransactionState.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {vtctldata.IShardTransactionState} message ShardTransactionState message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ShardTransactionState.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ShardTransactionState message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtctldata.ShardTransactionState} ShardTransactionState
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ShardTransactionState.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.ShardTransactionState();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.shard = reader.string();
+ break;
+ }
+ case 2: {
+ message.state = reader.string();
+ break;
+ }
+ case 3: {
+ message.message = reader.string();
+ break;
+ }
+ case 4: {
+ message.time_created = reader.int64();
+ break;
+ }
+ case 5: {
+ if (!(message.statements && message.statements.length))
+ message.statements = [];
+ message.statements.push(reader.string());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ShardTransactionState message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtctldata.ShardTransactionState} ShardTransactionState
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ShardTransactionState.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ShardTransactionState message.
+ * @function verify
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ShardTransactionState.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.shard != null && message.hasOwnProperty("shard"))
+ if (!$util.isString(message.shard))
+ return "shard: string expected";
+ if (message.state != null && message.hasOwnProperty("state"))
+ if (!$util.isString(message.state))
+ return "state: string expected";
+ if (message.message != null && message.hasOwnProperty("message"))
+ if (!$util.isString(message.message))
+ return "message: string expected";
+ if (message.time_created != null && message.hasOwnProperty("time_created"))
+ if (!$util.isInteger(message.time_created) && !(message.time_created && $util.isInteger(message.time_created.low) && $util.isInteger(message.time_created.high)))
+ return "time_created: integer|Long expected";
+ if (message.statements != null && message.hasOwnProperty("statements")) {
+ if (!Array.isArray(message.statements))
+ return "statements: array expected";
+ for (let i = 0; i < message.statements.length; ++i)
+ if (!$util.isString(message.statements[i]))
+ return "statements: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ShardTransactionState message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtctldata.ShardTransactionState} ShardTransactionState
+ */
+ ShardTransactionState.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtctldata.ShardTransactionState)
+ return object;
+ let message = new $root.vtctldata.ShardTransactionState();
+ if (object.shard != null)
+ message.shard = String(object.shard);
+ if (object.state != null)
+ message.state = String(object.state);
+ if (object.message != null)
+ message.message = String(object.message);
+ if (object.time_created != null)
+ if ($util.Long)
+ (message.time_created = $util.Long.fromValue(object.time_created)).unsigned = false;
+ else if (typeof object.time_created === "string")
+ message.time_created = parseInt(object.time_created, 10);
+ else if (typeof object.time_created === "number")
+ message.time_created = object.time_created;
+ else if (typeof object.time_created === "object")
+ message.time_created = new $util.LongBits(object.time_created.low >>> 0, object.time_created.high >>> 0).toNumber();
+ if (object.statements) {
+ if (!Array.isArray(object.statements))
+ throw TypeError(".vtctldata.ShardTransactionState.statements: array expected");
+ message.statements = [];
+ for (let i = 0; i < object.statements.length; ++i)
+ message.statements[i] = String(object.statements[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ShardTransactionState message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {vtctldata.ShardTransactionState} message ShardTransactionState
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ShardTransactionState.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.arrays || options.defaults)
+ object.statements = [];
+ if (options.defaults) {
+ object.shard = "";
+ object.state = "";
+ object.message = "";
+ if ($util.Long) {
+ let long = new $util.Long(0, 0, false);
+ object.time_created = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.time_created = options.longs === String ? "0" : 0;
+ }
+ if (message.shard != null && message.hasOwnProperty("shard"))
+ object.shard = message.shard;
+ if (message.state != null && message.hasOwnProperty("state"))
+ object.state = message.state;
+ if (message.message != null && message.hasOwnProperty("message"))
+ object.message = message.message;
+ if (message.time_created != null && message.hasOwnProperty("time_created"))
+ if (typeof message.time_created === "number")
+ object.time_created = options.longs === String ? String(message.time_created) : message.time_created;
+ else
+ object.time_created = options.longs === String ? $util.Long.prototype.toString.call(message.time_created) : options.longs === Number ? new $util.LongBits(message.time_created.low >>> 0, message.time_created.high >>> 0).toNumber() : message.time_created;
+ if (message.statements && message.statements.length) {
+ object.statements = [];
+ for (let j = 0; j < message.statements.length; ++j)
+ object.statements[j] = message.statements[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this ShardTransactionState to JSON.
+ * @function toJSON
+ * @memberof vtctldata.ShardTransactionState
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ShardTransactionState.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for ShardTransactionState
+ * @function getTypeUrl
+ * @memberof vtctldata.ShardTransactionState
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ ShardTransactionState.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtctldata.ShardTransactionState";
+ };
+
+ return ShardTransactionState;
+ })();
+
+ vtctldata.GetTransactionInfoResponse = (function() {
+
+ /**
+ * Properties of a GetTransactionInfoResponse.
+ * @memberof vtctldata
+ * @interface IGetTransactionInfoResponse
+ * @property {query.ITransactionMetadata|null} [metadata] GetTransactionInfoResponse metadata
+ * @property {Array.|null} [shard_states] GetTransactionInfoResponse shard_states
+ */
+
+ /**
+ * Constructs a new GetTransactionInfoResponse.
+ * @memberof vtctldata
+ * @classdesc Represents a GetTransactionInfoResponse.
+ * @implements IGetTransactionInfoResponse
+ * @constructor
+ * @param {vtctldata.IGetTransactionInfoResponse=} [properties] Properties to set
+ */
+ function GetTransactionInfoResponse(properties) {
+ this.shard_states = [];
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GetTransactionInfoResponse metadata.
+ * @member {query.ITransactionMetadata|null|undefined} metadata
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.metadata = null;
+
+ /**
+ * GetTransactionInfoResponse shard_states.
+ * @member {Array.} shard_states
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @instance
+ */
+ GetTransactionInfoResponse.prototype.shard_states = $util.emptyArray;
+
+ /**
+ * Creates a new GetTransactionInfoResponse instance using the specified properties.
+ * @function create
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {vtctldata.IGetTransactionInfoResponse=} [properties] Properties to set
+ * @returns {vtctldata.GetTransactionInfoResponse} GetTransactionInfoResponse instance
+ */
+ GetTransactionInfoResponse.create = function create(properties) {
+ return new GetTransactionInfoResponse(properties);
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message. Does not implicitly {@link vtctldata.GetTransactionInfoResponse.verify|verify} messages.
+ * @function encode
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {vtctldata.IGetTransactionInfoResponse} message GetTransactionInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata"))
+ $root.query.TransactionMetadata.encode(message.metadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.shard_states != null && message.shard_states.length)
+ for (let i = 0; i < message.shard_states.length; ++i)
+ $root.vtctldata.ShardTransactionState.encode(message.shard_states[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoResponse message, length delimited. Does not implicitly {@link vtctldata.GetTransactionInfoResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {vtctldata.IGetTransactionInfoResponse} message GetTransactionInfoResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtctldata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.GetTransactionInfoResponse();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.metadata = $root.query.TransactionMetadata.decode(reader, reader.uint32());
+ break;
+ }
+ case 2: {
+ if (!(message.shard_states && message.shard_states.length))
+ message.shard_states = [];
+ message.shard_states.push($root.vtctldata.ShardTransactionState.decode(reader, reader.uint32()));
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GetTransactionInfoResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtctldata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetTransactionInfoResponse message.
+ * @function verify
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetTransactionInfoResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.metadata != null && message.hasOwnProperty("metadata")) {
+ let error = $root.query.TransactionMetadata.verify(message.metadata);
+ if (error)
+ return "metadata." + error;
+ }
+ if (message.shard_states != null && message.hasOwnProperty("shard_states")) {
+ if (!Array.isArray(message.shard_states))
+ return "shard_states: array expected";
+ for (let i = 0; i < message.shard_states.length; ++i) {
+ let error = $root.vtctldata.ShardTransactionState.verify(message.shard_states[i]);
+ if (error)
+ return "shard_states." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a GetTransactionInfoResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtctldata.GetTransactionInfoResponse} GetTransactionInfoResponse
+ */
+ GetTransactionInfoResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtctldata.GetTransactionInfoResponse)
+ return object;
+ let message = new $root.vtctldata.GetTransactionInfoResponse();
+ if (object.metadata != null) {
+ if (typeof object.metadata !== "object")
+ throw TypeError(".vtctldata.GetTransactionInfoResponse.metadata: object expected");
+ message.metadata = $root.query.TransactionMetadata.fromObject(object.metadata);
+ }
+ if (object.shard_states) {
+ if (!Array.isArray(object.shard_states))
+ throw TypeError(".vtctldata.GetTransactionInfoResponse.shard_states: array expected");
+ message.shard_states = [];
+ for (let i = 0; i < object.shard_states.length; ++i) {
+ if (typeof object.shard_states[i] !== "object")
+ throw TypeError(".vtctldata.GetTransactionInfoResponse.shard_states: object expected");
+ message.shard_states[i] = $root.vtctldata.ShardTransactionState.fromObject(object.shard_states[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetTransactionInfoResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {vtctldata.GetTransactionInfoResponse} message GetTransactionInfoResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetTransactionInfoResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.arrays || options.defaults)
+ object.shard_states = [];
+ if (options.defaults)
+ object.metadata = null;
+ if (message.metadata != null && message.hasOwnProperty("metadata"))
+ object.metadata = $root.query.TransactionMetadata.toObject(message.metadata, options);
+ if (message.shard_states && message.shard_states.length) {
+ object.shard_states = [];
+ for (let j = 0; j < message.shard_states.length; ++j)
+ object.shard_states[j] = $root.vtctldata.ShardTransactionState.toObject(message.shard_states[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this GetTransactionInfoResponse to JSON.
+ * @function toJSON
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetTransactionInfoResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetTransactionInfoResponse
+ * @function getTypeUrl
+ * @memberof vtctldata.GetTransactionInfoResponse
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetTransactionInfoResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtctldata.GetTransactionInfoResponse";
+ };
+
+ return GetTransactionInfoResponse;
+ })();
+
vtctldata.ConcludeTransactionRequest = (function() {
/**
From 469bdcc53a468e02b784cddbe51bab80d3ef34ad Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Fri, 8 Nov 2024 16:07:23 +0530
Subject: [PATCH 39/78] Add GetTransactionInfo in VTadmin API and page (#17142)
Signed-off-by: Manan Gupta
---
go/test/endtoend/cluster/cluster_process.go | 18 +
go/test/endtoend/cluster/vtadmin_process.go | 235 ++
.../endtoend/transaction/twopc/main_test.go | 5 +
.../endtoend/transaction/twopc/twopc_test.go | 7 +
go/test/endtoend/vtadmin/main_test.go | 102 +
go/vt/proto/vtadmin/vtadmin.pb.go | 3019 +++++++++--------
go/vt/proto/vtadmin/vtadmin_grpc.pb.go | 38 +
go/vt/proto/vtadmin/vtadmin_vtproto.pb.go | 205 ++
go/vt/vtadmin/api.go | 20 +
go/vt/vtadmin/http/transactions.go | 16 +
proto/vtadmin.proto | 7 +
test/config.json | 9 +
web/vtadmin/src/api/http.ts | 14 +
web/vtadmin/src/components/App.tsx | 5 +
.../src/components/links/TransactionLink.tsx | 40 +
.../src/components/routes/Transactions.tsx | 10 +-
.../routes/transaction/Transaction.tsx | 187 +
web/vtadmin/src/hooks/api.ts | 12 +
web/vtadmin/src/proto/vtadmin.d.ts | 124 +
web/vtadmin/src/proto/vtadmin.js | 265 ++
web/vtadmin/src/util/time.ts | 12 +
21 files changed, 2881 insertions(+), 1469 deletions(-)
create mode 100644 go/test/endtoend/cluster/vtadmin_process.go
create mode 100644 go/test/endtoend/vtadmin/main_test.go
create mode 100644 web/vtadmin/src/components/links/TransactionLink.tsx
create mode 100644 web/vtadmin/src/components/routes/transaction/Transaction.tsx
diff --git a/go/test/endtoend/cluster/cluster_process.go b/go/test/endtoend/cluster/cluster_process.go
index 9874d368dcd..6f800a70a49 100644
--- a/go/test/endtoend/cluster/cluster_process.go
+++ b/go/test/endtoend/cluster/cluster_process.go
@@ -104,6 +104,7 @@ type LocalProcessCluster struct {
VtctlclientProcess VtctlClientProcess
VtctldClientProcess VtctldClientProcess
VtctlProcess VtctlProcess
+ VtadminProcess VtAdminProcess
// background executable processes
TopoProcess TopoProcess
@@ -1061,6 +1062,10 @@ func (cluster *LocalProcessCluster) Teardown() {
}
}
+ if err := cluster.VtadminProcess.TearDown(); err != nil {
+ log.Errorf("Error in vtadmin teardown: %v", err)
+ }
+
var mysqlctlProcessList []*exec.Cmd
var mysqlctlTabletUIDs []int
for _, keyspace := range cluster.Keyspaces {
@@ -1301,6 +1306,19 @@ func (cluster *LocalProcessCluster) NewVTOrcProcess(config VTOrcConfiguration) *
}
}
+// NewVTAdminProcess creates a new VTAdminProcess object
+func (cluster *LocalProcessCluster) NewVTAdminProcess() {
+ cluster.VtadminProcess = VtAdminProcess{
+ Binary: "vtadmin",
+ Port: cluster.GetAndReservePort(),
+ LogDir: cluster.TmpDirectory,
+ VtGateGrpcPort: cluster.VtgateProcess.GrpcPort,
+ VtGateWebPort: cluster.VtgateProcess.Port,
+ VtctldWebPort: cluster.VtctldProcess.Port,
+ VtctldGrpcPort: cluster.VtctldProcess.GrpcPort,
+ }
+}
+
// VtprocessInstanceFromVttablet creates a new vttablet object
func (cluster *LocalProcessCluster) VtprocessInstanceFromVttablet(tablet *Vttablet, shardName string, ksName string) *VttabletProcess {
return VttabletProcessInstance(
diff --git a/go/test/endtoend/cluster/vtadmin_process.go b/go/test/endtoend/cluster/vtadmin_process.go
new file mode 100644
index 00000000000..f9b7481dda8
--- /dev/null
+++ b/go/test/endtoend/cluster/vtadmin_process.go
@@ -0,0 +1,235 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+
+package cluster
+
+import (
+ "fmt"
+ "io"
+ "net/http"
+ "os"
+ "os/exec"
+ "path"
+ "strings"
+ "syscall"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/vt/log"
+)
+
+// VtAdminProcess is a test struct for running
+// vtorc as a separate process for testing
+type VtAdminProcess struct {
+ Binary string
+ Port int
+ LogDir string
+ ExtraArgs []string
+ VtGateGrpcPort int
+ VtGateWebPort int
+ VtctldGrpcPort int
+ VtctldWebPort int
+ proc *exec.Cmd
+ exit chan error
+}
+
+// Setup starts orc process with required arguements
+func (vp *VtAdminProcess) Setup() (err error) {
+ // create the configuration file
+ timeNow := time.Now().UnixNano()
+ err = os.MkdirAll(vp.LogDir, 0755)
+ if err != nil {
+ log.Errorf("cannot create log directory for vtadmin: %v", err)
+ return err
+ }
+ rbacFile, err := vp.CreateAndWriteFile("rbac", `rules:
+ - resource: "*"
+ actions: ["*"]
+ subjects: ["*"]
+ clusters: ["*"]
+`, "yaml")
+ if err != nil {
+ return err
+ }
+
+ discoveryFile, err := vp.CreateAndWriteFile("discovery", fmt.Sprintf(`
+{
+ "vtctlds": [
+ {
+ "host": {
+ "fqdn": "localhost:%d",
+ "hostname": "localhost:%d"
+ }
+ }
+ ],
+ "vtgates": [
+ {
+ "host": {
+ "fqdn": "localhost:%d",
+ "hostname": "localhost:%d"
+ }
+ }
+ ]
+}
+`, vp.VtctldWebPort, vp.VtctldGrpcPort, vp.VtGateWebPort, vp.VtGateGrpcPort), "json")
+ if err != nil {
+ return err
+ }
+
+ vp.proc = exec.Command(
+ vp.Binary,
+ "--addr", vp.Address(),
+ "--http-tablet-url-tmpl", `"http://{{ .Tablet.Hostname }}:15{{ .Tablet.Alias.Uid }}"`,
+ "--tracer", `"opentracing-jaeger"`,
+ "--grpc-tracing",
+ "--http-tracing",
+ "--logtostderr",
+ "--alsologtostderr",
+ "--rbac",
+ "--rbac-config", rbacFile,
+ "--cluster", fmt.Sprintf(`id=local,name=local,discovery=staticfile,discovery-staticfile-path=%s,tablet-fqdn-tmpl=http://{{ .Tablet.Hostname }}:15{{ .Tablet.Alias.Uid }},schema-cache-default-expiration=1m`, discoveryFile),
+ )
+
+ if *isCoverage {
+ vp.proc.Args = append(vp.proc.Args, "--test.coverprofile="+getCoveragePath("vp.out"))
+ }
+
+ vp.proc.Args = append(vp.proc.Args, vp.ExtraArgs...)
+ vp.proc.Args = append(vp.proc.Args, "--alsologtostderr")
+
+ logFile := fmt.Sprintf("vtadmin-stderr-%d.txt", timeNow)
+ errFile, err := os.Create(path.Join(vp.LogDir, logFile))
+ if err != nil {
+ log.Errorf("cannot create error log file for vtadmin: %v", err)
+ return err
+ }
+ vp.proc.Stderr = errFile
+
+ vp.proc.Env = append(vp.proc.Env, os.Environ()...)
+ vp.proc.Env = append(vp.proc.Env, DefaultVttestEnv)
+
+ log.Infof("Running vtadmin with command: %v", strings.Join(vp.proc.Args, " "))
+
+ err = vp.proc.Start()
+ if err != nil {
+ return
+ }
+
+ vp.exit = make(chan error)
+ go func() {
+ if vp.proc != nil {
+ exitErr := vp.proc.Wait()
+ if exitErr != nil {
+ log.Errorf("vtadmin process exited with error: %v", exitErr)
+ data, _ := os.ReadFile(logFile)
+ log.Errorf("vtadmin stderr - %s", string(data))
+ }
+ vp.exit <- exitErr
+ close(vp.exit)
+ }
+ }()
+
+ return nil
+}
+
+// CreateAndWriteFile creates a file and writes the content to it.
+func (vp *VtAdminProcess) CreateAndWriteFile(prefix string, content string, extension string) (string, error) {
+ timeNow := time.Now().UnixNano()
+ file, err := os.Create(path.Join(vp.LogDir, fmt.Sprintf("%s-%d.%s", prefix, timeNow, extension)))
+ if err != nil {
+ log.Errorf("cannot create file for vtadmin: %v", err)
+ return "", err
+ }
+
+ _, err = file.WriteString(content)
+ if err != nil {
+ return "", err
+ }
+ fileName := file.Name()
+ err = file.Close()
+ if err != nil {
+ return "", err
+ }
+ return fileName, nil
+}
+
+// Address returns the address of the running vtadmin service.
+func (vp *VtAdminProcess) Address() string {
+ return fmt.Sprintf("localhost:%d", vp.Port)
+}
+
+// TearDown shuts down the running vtorc service
+func (vp *VtAdminProcess) TearDown() error {
+ if vp.proc == nil || vp.exit == nil {
+ return nil
+ }
+ // Attempt graceful shutdown with SIGTERM first
+ _ = vp.proc.Process.Signal(syscall.SIGTERM)
+
+ select {
+ case <-vp.exit:
+ vp.proc = nil
+ return nil
+
+ case <-time.After(30 * time.Second):
+ _ = vp.proc.Process.Kill()
+ err := <-vp.exit
+ vp.proc = nil
+ return err
+ }
+}
+
+// MakeAPICall makes an API call on the given endpoint of VTOrc
+func (vp *VtAdminProcess) MakeAPICall(endpoint string) (status int, response string, err error) {
+ url := fmt.Sprintf("http://%s/%s", vp.Address(), endpoint)
+ resp, err := http.Get(url)
+ if err != nil {
+ if resp != nil {
+ status = resp.StatusCode
+ }
+ return status, "", err
+ }
+ defer func() {
+ if resp != nil && resp.Body != nil {
+ resp.Body.Close()
+ }
+ }()
+
+ respByte, _ := io.ReadAll(resp.Body)
+ return resp.StatusCode, string(respByte), err
+}
+
+// MakeAPICallRetry is used to make an API call and retries until success
+func (vp *VtAdminProcess) MakeAPICallRetry(t *testing.T, url string) string {
+ t.Helper()
+ timeout := time.After(10 * time.Second)
+ for {
+ select {
+ case <-timeout:
+ require.FailNow(t, "timed out waiting for api to work")
+ return ""
+ default:
+ status, resp, err := vp.MakeAPICall(url)
+ if err == nil && status == 200 {
+ return resp
+ }
+ time.Sleep(100 * time.Millisecond)
+ }
+ }
+}
diff --git a/go/test/endtoend/transaction/twopc/main_test.go b/go/test/endtoend/transaction/twopc/main_test.go
index e7818e3088d..2f27198fd2e 100644
--- a/go/test/endtoend/transaction/twopc/main_test.go
+++ b/go/test/endtoend/transaction/twopc/main_test.go
@@ -108,6 +108,11 @@ func TestMain(m *testing.M) {
vtParams = clusterInstance.GetVTParams(keyspaceName)
vtgateGrpcAddress = fmt.Sprintf("%s:%d", clusterInstance.Hostname, clusterInstance.VtgateGrpcPort)
+ clusterInstance.NewVTAdminProcess()
+ if err := clusterInstance.VtadminProcess.Setup(); err != nil {
+ return 1
+ }
+
// create mysql instance and connection parameters
conn, closer, err := utils.NewMySQL(clusterInstance, keyspaceName, SchemaSQL)
if err != nil {
diff --git a/go/test/endtoend/transaction/twopc/twopc_test.go b/go/test/endtoend/transaction/twopc/twopc_test.go
index 7ed3b18643d..033d93f8792 100644
--- a/go/test/endtoend/transaction/twopc/twopc_test.go
+++ b/go/test/endtoend/transaction/twopc/twopc_test.go
@@ -22,6 +22,7 @@ import (
"fmt"
"reflect"
"sort"
+ "strconv"
"strings"
"sync"
"testing"
@@ -1428,6 +1429,12 @@ func TestReadTransactionStatus(t *testing.T) {
require.Contains(t, out, "insert into twopc_t1(id, col) values (9, 4)")
require.Contains(t, out, unresTransaction.Dtid)
+ // Read the data from vtadmin API, and verify that too has the same information.
+ apiRes := clusterInstance.VtadminProcess.MakeAPICallRetry(t, fmt.Sprintf("/api/transaction/local/%v/info", unresTransaction.Dtid))
+ require.Contains(t, apiRes, "insert into twopc_t1(id, col) values (9, 4)")
+ require.Contains(t, apiRes, unresTransaction.Dtid)
+ require.Contains(t, apiRes, strconv.FormatInt(res.TimeCreated, 10))
+
// Wait for the commit to have returned.
wg.Wait()
}
diff --git a/go/test/endtoend/vtadmin/main_test.go b/go/test/endtoend/vtadmin/main_test.go
new file mode 100644
index 00000000000..fd4ecbdb7fe
--- /dev/null
+++ b/go/test/endtoend/vtadmin/main_test.go
@@ -0,0 +1,102 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package vtadmin
+
+import (
+ _ "embed"
+ "flag"
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/test/endtoend/cluster"
+)
+
+var (
+ clusterInstance *cluster.LocalProcessCluster
+ uks = "uks"
+ cell = "test_misc"
+
+ uschemaSQL = `
+create table u_a
+(
+ id bigint,
+ a bigint,
+ primary key (id)
+) Engine = InnoDB;
+
+create table u_b
+(
+ id bigint,
+ b varchar(50),
+ primary key (id)
+) Engine = InnoDB;
+
+`
+)
+
+func TestMain(m *testing.M) {
+ defer cluster.PanicHandler(nil)
+ flag.Parse()
+
+ exitCode := func() int {
+ clusterInstance = cluster.NewCluster(cell, "localhost")
+ defer clusterInstance.Teardown()
+
+ // Start topo server
+ err := clusterInstance.StartTopo()
+ if err != nil {
+ return 1
+ }
+
+ // Start Unsharded keyspace
+ ukeyspace := &cluster.Keyspace{
+ Name: uks,
+ SchemaSQL: uschemaSQL,
+ }
+ err = clusterInstance.StartUnshardedKeyspace(*ukeyspace, 0, false)
+ if err != nil {
+ return 1
+ }
+
+ err = clusterInstance.StartVtgate()
+ if err != nil {
+ return 1
+ }
+
+ clusterInstance.NewVTAdminProcess()
+ err = clusterInstance.VtadminProcess.Setup()
+ if err != nil {
+ return 1
+ }
+
+ return m.Run()
+ }()
+ os.Exit(exitCode)
+}
+
+// TestVtadminAPIs tests the vtadmin APIs.
+func TestVtadminAPIs(t *testing.T) {
+ defer cluster.PanicHandler(t)
+
+ // Test the vtadmin APIs
+ t.Run("keyspaces api", func(t *testing.T) {
+ resp := clusterInstance.VtadminProcess.MakeAPICallRetry(t, "api/keyspaces")
+ require.Contains(t, resp, uks)
+ })
+}
diff --git a/go/vt/proto/vtadmin/vtadmin.pb.go b/go/vt/proto/vtadmin/vtadmin.pb.go
index 720626a4a98..8cdb420002d 100644
--- a/go/vt/proto/vtadmin/vtadmin.pb.go
+++ b/go/vt/proto/vtadmin/vtadmin.pb.go
@@ -3794,6 +3794,61 @@ func (x *GetTopologyPathRequest) GetPath() string {
return ""
}
+type GetTransactionInfoRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ClusterId string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
+ Request *vtctldata.GetTransactionInfoRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+}
+
+func (x *GetTransactionInfoRequest) Reset() {
+ *x = GetTransactionInfoRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_vtadmin_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetTransactionInfoRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetTransactionInfoRequest) ProtoMessage() {}
+
+func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_vtadmin_proto_msgTypes[65]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetTransactionInfoRequest.ProtoReflect.Descriptor instead.
+func (*GetTransactionInfoRequest) Descriptor() ([]byte, []int) {
+ return file_vtadmin_proto_rawDescGZIP(), []int{65}
+}
+
+func (x *GetTransactionInfoRequest) GetClusterId() string {
+ if x != nil {
+ return x.ClusterId
+ }
+ return ""
+}
+
+func (x *GetTransactionInfoRequest) GetRequest() *vtctldata.GetTransactionInfoRequest {
+ if x != nil {
+ return x.Request
+ }
+ return nil
+}
+
type GetUnresolvedTransactionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3807,7 +3862,7 @@ type GetUnresolvedTransactionsRequest struct {
func (x *GetUnresolvedTransactionsRequest) Reset() {
*x = GetUnresolvedTransactionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[65]
+ mi := &file_vtadmin_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3820,7 +3875,7 @@ func (x *GetUnresolvedTransactionsRequest) String() string {
func (*GetUnresolvedTransactionsRequest) ProtoMessage() {}
func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[65]
+ mi := &file_vtadmin_proto_msgTypes[66]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3833,7 +3888,7 @@ func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetUnresolvedTransactionsRequest.ProtoReflect.Descriptor instead.
func (*GetUnresolvedTransactionsRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{65}
+ return file_vtadmin_proto_rawDescGZIP(), []int{66}
}
func (x *GetUnresolvedTransactionsRequest) GetClusterId() string {
@@ -3869,7 +3924,7 @@ type GetVSchemaRequest struct {
func (x *GetVSchemaRequest) Reset() {
*x = GetVSchemaRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[66]
+ mi := &file_vtadmin_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3882,7 +3937,7 @@ func (x *GetVSchemaRequest) String() string {
func (*GetVSchemaRequest) ProtoMessage() {}
func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[66]
+ mi := &file_vtadmin_proto_msgTypes[67]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3895,7 +3950,7 @@ func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVSchemaRequest.ProtoReflect.Descriptor instead.
func (*GetVSchemaRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{66}
+ return file_vtadmin_proto_rawDescGZIP(), []int{67}
}
func (x *GetVSchemaRequest) GetClusterId() string {
@@ -3923,7 +3978,7 @@ type GetVSchemasRequest struct {
func (x *GetVSchemasRequest) Reset() {
*x = GetVSchemasRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[67]
+ mi := &file_vtadmin_proto_msgTypes[68]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3936,7 +3991,7 @@ func (x *GetVSchemasRequest) String() string {
func (*GetVSchemasRequest) ProtoMessage() {}
func (x *GetVSchemasRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[67]
+ mi := &file_vtadmin_proto_msgTypes[68]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3949,7 +4004,7 @@ func (x *GetVSchemasRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVSchemasRequest.ProtoReflect.Descriptor instead.
func (*GetVSchemasRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{67}
+ return file_vtadmin_proto_rawDescGZIP(), []int{68}
}
func (x *GetVSchemasRequest) GetClusterIds() []string {
@@ -3970,7 +4025,7 @@ type GetVSchemasResponse struct {
func (x *GetVSchemasResponse) Reset() {
*x = GetVSchemasResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[68]
+ mi := &file_vtadmin_proto_msgTypes[69]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3983,7 +4038,7 @@ func (x *GetVSchemasResponse) String() string {
func (*GetVSchemasResponse) ProtoMessage() {}
func (x *GetVSchemasResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[68]
+ mi := &file_vtadmin_proto_msgTypes[69]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3996,7 +4051,7 @@ func (x *GetVSchemasResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVSchemasResponse.ProtoReflect.Descriptor instead.
func (*GetVSchemasResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{68}
+ return file_vtadmin_proto_rawDescGZIP(), []int{69}
}
func (x *GetVSchemasResponse) GetVSchemas() []*VSchema {
@@ -4017,7 +4072,7 @@ type GetVtctldsRequest struct {
func (x *GetVtctldsRequest) Reset() {
*x = GetVtctldsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[69]
+ mi := &file_vtadmin_proto_msgTypes[70]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4030,7 +4085,7 @@ func (x *GetVtctldsRequest) String() string {
func (*GetVtctldsRequest) ProtoMessage() {}
func (x *GetVtctldsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[69]
+ mi := &file_vtadmin_proto_msgTypes[70]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4043,7 +4098,7 @@ func (x *GetVtctldsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVtctldsRequest.ProtoReflect.Descriptor instead.
func (*GetVtctldsRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{69}
+ return file_vtadmin_proto_rawDescGZIP(), []int{70}
}
func (x *GetVtctldsRequest) GetClusterIds() []string {
@@ -4064,7 +4119,7 @@ type GetVtctldsResponse struct {
func (x *GetVtctldsResponse) Reset() {
*x = GetVtctldsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[70]
+ mi := &file_vtadmin_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4077,7 +4132,7 @@ func (x *GetVtctldsResponse) String() string {
func (*GetVtctldsResponse) ProtoMessage() {}
func (x *GetVtctldsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[70]
+ mi := &file_vtadmin_proto_msgTypes[71]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4090,7 +4145,7 @@ func (x *GetVtctldsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetVtctldsResponse.ProtoReflect.Descriptor instead.
func (*GetVtctldsResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{70}
+ return file_vtadmin_proto_rawDescGZIP(), []int{71}
}
func (x *GetVtctldsResponse) GetVtctlds() []*Vtctld {
@@ -4114,7 +4169,7 @@ type GetWorkflowRequest struct {
func (x *GetWorkflowRequest) Reset() {
*x = GetWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[71]
+ mi := &file_vtadmin_proto_msgTypes[72]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4127,7 +4182,7 @@ func (x *GetWorkflowRequest) String() string {
func (*GetWorkflowRequest) ProtoMessage() {}
func (x *GetWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[71]
+ mi := &file_vtadmin_proto_msgTypes[72]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4140,7 +4195,7 @@ func (x *GetWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowRequest.ProtoReflect.Descriptor instead.
func (*GetWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{71}
+ return file_vtadmin_proto_rawDescGZIP(), []int{72}
}
func (x *GetWorkflowRequest) GetClusterId() string {
@@ -4184,7 +4239,7 @@ type GetWorkflowStatusRequest struct {
func (x *GetWorkflowStatusRequest) Reset() {
*x = GetWorkflowStatusRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[72]
+ mi := &file_vtadmin_proto_msgTypes[73]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4197,7 +4252,7 @@ func (x *GetWorkflowStatusRequest) String() string {
func (*GetWorkflowStatusRequest) ProtoMessage() {}
func (x *GetWorkflowStatusRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[72]
+ mi := &file_vtadmin_proto_msgTypes[73]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4210,7 +4265,7 @@ func (x *GetWorkflowStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowStatusRequest.ProtoReflect.Descriptor instead.
func (*GetWorkflowStatusRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{72}
+ return file_vtadmin_proto_rawDescGZIP(), []int{73}
}
func (x *GetWorkflowStatusRequest) GetClusterId() string {
@@ -4247,7 +4302,7 @@ type StartWorkflowRequest struct {
func (x *StartWorkflowRequest) Reset() {
*x = StartWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[73]
+ mi := &file_vtadmin_proto_msgTypes[74]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4260,7 +4315,7 @@ func (x *StartWorkflowRequest) String() string {
func (*StartWorkflowRequest) ProtoMessage() {}
func (x *StartWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[73]
+ mi := &file_vtadmin_proto_msgTypes[74]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4273,7 +4328,7 @@ func (x *StartWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartWorkflowRequest.ProtoReflect.Descriptor instead.
func (*StartWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{73}
+ return file_vtadmin_proto_rawDescGZIP(), []int{74}
}
func (x *StartWorkflowRequest) GetClusterId() string {
@@ -4310,7 +4365,7 @@ type StopWorkflowRequest struct {
func (x *StopWorkflowRequest) Reset() {
*x = StopWorkflowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[74]
+ mi := &file_vtadmin_proto_msgTypes[75]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4323,7 +4378,7 @@ func (x *StopWorkflowRequest) String() string {
func (*StopWorkflowRequest) ProtoMessage() {}
func (x *StopWorkflowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[74]
+ mi := &file_vtadmin_proto_msgTypes[75]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4336,7 +4391,7 @@ func (x *StopWorkflowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopWorkflowRequest.ProtoReflect.Descriptor instead.
func (*StopWorkflowRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{74}
+ return file_vtadmin_proto_rawDescGZIP(), []int{75}
}
func (x *StopWorkflowRequest) GetClusterId() string {
@@ -4389,7 +4444,7 @@ type GetWorkflowsRequest struct {
func (x *GetWorkflowsRequest) Reset() {
*x = GetWorkflowsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[75]
+ mi := &file_vtadmin_proto_msgTypes[76]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4402,7 +4457,7 @@ func (x *GetWorkflowsRequest) String() string {
func (*GetWorkflowsRequest) ProtoMessage() {}
func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[75]
+ mi := &file_vtadmin_proto_msgTypes[76]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4415,7 +4470,7 @@ func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowsRequest.ProtoReflect.Descriptor instead.
func (*GetWorkflowsRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{75}
+ return file_vtadmin_proto_rawDescGZIP(), []int{76}
}
func (x *GetWorkflowsRequest) GetClusterIds() []string {
@@ -4457,7 +4512,7 @@ type GetWorkflowsResponse struct {
func (x *GetWorkflowsResponse) Reset() {
*x = GetWorkflowsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[76]
+ mi := &file_vtadmin_proto_msgTypes[77]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4470,7 +4525,7 @@ func (x *GetWorkflowsResponse) String() string {
func (*GetWorkflowsResponse) ProtoMessage() {}
func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[76]
+ mi := &file_vtadmin_proto_msgTypes[77]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4483,7 +4538,7 @@ func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetWorkflowsResponse.ProtoReflect.Descriptor instead.
func (*GetWorkflowsResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{76}
+ return file_vtadmin_proto_rawDescGZIP(), []int{77}
}
func (x *GetWorkflowsResponse) GetWorkflowsByCluster() map[string]*ClusterWorkflows {
@@ -4505,7 +4560,7 @@ type LaunchSchemaMigrationRequest struct {
func (x *LaunchSchemaMigrationRequest) Reset() {
*x = LaunchSchemaMigrationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[77]
+ mi := &file_vtadmin_proto_msgTypes[78]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4518,7 +4573,7 @@ func (x *LaunchSchemaMigrationRequest) String() string {
func (*LaunchSchemaMigrationRequest) ProtoMessage() {}
func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[77]
+ mi := &file_vtadmin_proto_msgTypes[78]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4531,7 +4586,7 @@ func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LaunchSchemaMigrationRequest.ProtoReflect.Descriptor instead.
func (*LaunchSchemaMigrationRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{77}
+ return file_vtadmin_proto_rawDescGZIP(), []int{78}
}
func (x *LaunchSchemaMigrationRequest) GetClusterId() string {
@@ -4563,7 +4618,7 @@ type MaterializeCreateRequest struct {
func (x *MaterializeCreateRequest) Reset() {
*x = MaterializeCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[78]
+ mi := &file_vtadmin_proto_msgTypes[79]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4576,7 +4631,7 @@ func (x *MaterializeCreateRequest) String() string {
func (*MaterializeCreateRequest) ProtoMessage() {}
func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[78]
+ mi := &file_vtadmin_proto_msgTypes[79]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4589,7 +4644,7 @@ func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MaterializeCreateRequest.ProtoReflect.Descriptor instead.
func (*MaterializeCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{78}
+ return file_vtadmin_proto_rawDescGZIP(), []int{79}
}
func (x *MaterializeCreateRequest) GetClusterId() string {
@@ -4625,7 +4680,7 @@ type MoveTablesCompleteRequest struct {
func (x *MoveTablesCompleteRequest) Reset() {
*x = MoveTablesCompleteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[79]
+ mi := &file_vtadmin_proto_msgTypes[80]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4638,7 +4693,7 @@ func (x *MoveTablesCompleteRequest) String() string {
func (*MoveTablesCompleteRequest) ProtoMessage() {}
func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[79]
+ mi := &file_vtadmin_proto_msgTypes[80]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4651,7 +4706,7 @@ func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCompleteRequest.ProtoReflect.Descriptor instead.
func (*MoveTablesCompleteRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{79}
+ return file_vtadmin_proto_rawDescGZIP(), []int{80}
}
func (x *MoveTablesCompleteRequest) GetClusterId() string {
@@ -4680,7 +4735,7 @@ type MoveTablesCreateRequest struct {
func (x *MoveTablesCreateRequest) Reset() {
*x = MoveTablesCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[80]
+ mi := &file_vtadmin_proto_msgTypes[81]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4693,7 +4748,7 @@ func (x *MoveTablesCreateRequest) String() string {
func (*MoveTablesCreateRequest) ProtoMessage() {}
func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[80]
+ mi := &file_vtadmin_proto_msgTypes[81]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4706,7 +4761,7 @@ func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use MoveTablesCreateRequest.ProtoReflect.Descriptor instead.
func (*MoveTablesCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{80}
+ return file_vtadmin_proto_rawDescGZIP(), []int{81}
}
func (x *MoveTablesCreateRequest) GetClusterId() string {
@@ -4739,7 +4794,7 @@ type PingTabletRequest struct {
func (x *PingTabletRequest) Reset() {
*x = PingTabletRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[81]
+ mi := &file_vtadmin_proto_msgTypes[82]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4752,7 +4807,7 @@ func (x *PingTabletRequest) String() string {
func (*PingTabletRequest) ProtoMessage() {}
func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[81]
+ mi := &file_vtadmin_proto_msgTypes[82]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4765,7 +4820,7 @@ func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PingTabletRequest.ProtoReflect.Descriptor instead.
func (*PingTabletRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{81}
+ return file_vtadmin_proto_rawDescGZIP(), []int{82}
}
func (x *PingTabletRequest) GetAlias() *topodata.TabletAlias {
@@ -4794,7 +4849,7 @@ type PingTabletResponse struct {
func (x *PingTabletResponse) Reset() {
*x = PingTabletResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[82]
+ mi := &file_vtadmin_proto_msgTypes[83]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4807,7 +4862,7 @@ func (x *PingTabletResponse) String() string {
func (*PingTabletResponse) ProtoMessage() {}
func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[82]
+ mi := &file_vtadmin_proto_msgTypes[83]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4820,7 +4875,7 @@ func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PingTabletResponse.ProtoReflect.Descriptor instead.
func (*PingTabletResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{82}
+ return file_vtadmin_proto_rawDescGZIP(), []int{83}
}
func (x *PingTabletResponse) GetStatus() string {
@@ -4849,7 +4904,7 @@ type PlannedFailoverShardRequest struct {
func (x *PlannedFailoverShardRequest) Reset() {
*x = PlannedFailoverShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[83]
+ mi := &file_vtadmin_proto_msgTypes[84]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4862,7 +4917,7 @@ func (x *PlannedFailoverShardRequest) String() string {
func (*PlannedFailoverShardRequest) ProtoMessage() {}
func (x *PlannedFailoverShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[83]
+ mi := &file_vtadmin_proto_msgTypes[84]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4875,7 +4930,7 @@ func (x *PlannedFailoverShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlannedFailoverShardRequest.ProtoReflect.Descriptor instead.
func (*PlannedFailoverShardRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{83}
+ return file_vtadmin_proto_rawDescGZIP(), []int{84}
}
func (x *PlannedFailoverShardRequest) GetClusterId() string {
@@ -4911,7 +4966,7 @@ type PlannedFailoverShardResponse struct {
func (x *PlannedFailoverShardResponse) Reset() {
*x = PlannedFailoverShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[84]
+ mi := &file_vtadmin_proto_msgTypes[85]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4924,7 +4979,7 @@ func (x *PlannedFailoverShardResponse) String() string {
func (*PlannedFailoverShardResponse) ProtoMessage() {}
func (x *PlannedFailoverShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[84]
+ mi := &file_vtadmin_proto_msgTypes[85]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4937,7 +4992,7 @@ func (x *PlannedFailoverShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use PlannedFailoverShardResponse.ProtoReflect.Descriptor instead.
func (*PlannedFailoverShardResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{84}
+ return file_vtadmin_proto_rawDescGZIP(), []int{85}
}
func (x *PlannedFailoverShardResponse) GetCluster() *Cluster {
@@ -4989,7 +5044,7 @@ type RebuildKeyspaceGraphRequest struct {
func (x *RebuildKeyspaceGraphRequest) Reset() {
*x = RebuildKeyspaceGraphRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[85]
+ mi := &file_vtadmin_proto_msgTypes[86]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5002,7 +5057,7 @@ func (x *RebuildKeyspaceGraphRequest) String() string {
func (*RebuildKeyspaceGraphRequest) ProtoMessage() {}
func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[85]
+ mi := &file_vtadmin_proto_msgTypes[86]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5015,7 +5070,7 @@ func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildKeyspaceGraphRequest.ProtoReflect.Descriptor instead.
func (*RebuildKeyspaceGraphRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{85}
+ return file_vtadmin_proto_rawDescGZIP(), []int{86}
}
func (x *RebuildKeyspaceGraphRequest) GetClusterId() string {
@@ -5057,7 +5112,7 @@ type RebuildKeyspaceGraphResponse struct {
func (x *RebuildKeyspaceGraphResponse) Reset() {
*x = RebuildKeyspaceGraphResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[86]
+ mi := &file_vtadmin_proto_msgTypes[87]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5070,7 +5125,7 @@ func (x *RebuildKeyspaceGraphResponse) String() string {
func (*RebuildKeyspaceGraphResponse) ProtoMessage() {}
func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[86]
+ mi := &file_vtadmin_proto_msgTypes[87]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5083,7 +5138,7 @@ func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildKeyspaceGraphResponse.ProtoReflect.Descriptor instead.
func (*RebuildKeyspaceGraphResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{86}
+ return file_vtadmin_proto_rawDescGZIP(), []int{87}
}
func (x *RebuildKeyspaceGraphResponse) GetStatus() string {
@@ -5105,7 +5160,7 @@ type RefreshStateRequest struct {
func (x *RefreshStateRequest) Reset() {
*x = RefreshStateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[87]
+ mi := &file_vtadmin_proto_msgTypes[88]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5118,7 +5173,7 @@ func (x *RefreshStateRequest) String() string {
func (*RefreshStateRequest) ProtoMessage() {}
func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[87]
+ mi := &file_vtadmin_proto_msgTypes[88]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5131,7 +5186,7 @@ func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateRequest.ProtoReflect.Descriptor instead.
func (*RefreshStateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{87}
+ return file_vtadmin_proto_rawDescGZIP(), []int{88}
}
func (x *RefreshStateRequest) GetAlias() *topodata.TabletAlias {
@@ -5160,7 +5215,7 @@ type RefreshStateResponse struct {
func (x *RefreshStateResponse) Reset() {
*x = RefreshStateResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[88]
+ mi := &file_vtadmin_proto_msgTypes[89]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5173,7 +5228,7 @@ func (x *RefreshStateResponse) String() string {
func (*RefreshStateResponse) ProtoMessage() {}
func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[88]
+ mi := &file_vtadmin_proto_msgTypes[89]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5186,7 +5241,7 @@ func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RefreshStateResponse.ProtoReflect.Descriptor instead.
func (*RefreshStateResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{88}
+ return file_vtadmin_proto_rawDescGZIP(), []int{89}
}
func (x *RefreshStateResponse) GetStatus() string {
@@ -5255,7 +5310,7 @@ type ReloadSchemasRequest struct {
func (x *ReloadSchemasRequest) Reset() {
*x = ReloadSchemasRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[89]
+ mi := &file_vtadmin_proto_msgTypes[90]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5268,7 +5323,7 @@ func (x *ReloadSchemasRequest) String() string {
func (*ReloadSchemasRequest) ProtoMessage() {}
func (x *ReloadSchemasRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[89]
+ mi := &file_vtadmin_proto_msgTypes[90]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5281,7 +5336,7 @@ func (x *ReloadSchemasRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemasRequest.ProtoReflect.Descriptor instead.
func (*ReloadSchemasRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{89}
+ return file_vtadmin_proto_rawDescGZIP(), []int{90}
}
func (x *ReloadSchemasRequest) GetKeyspaces() []string {
@@ -5355,7 +5410,7 @@ type ReloadSchemasResponse struct {
func (x *ReloadSchemasResponse) Reset() {
*x = ReloadSchemasResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[90]
+ mi := &file_vtadmin_proto_msgTypes[91]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5368,7 +5423,7 @@ func (x *ReloadSchemasResponse) String() string {
func (*ReloadSchemasResponse) ProtoMessage() {}
func (x *ReloadSchemasResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[90]
+ mi := &file_vtadmin_proto_msgTypes[91]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5381,7 +5436,7 @@ func (x *ReloadSchemasResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemasResponse.ProtoReflect.Descriptor instead.
func (*ReloadSchemasResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{90}
+ return file_vtadmin_proto_rawDescGZIP(), []int{91}
}
func (x *ReloadSchemasResponse) GetKeyspaceResults() []*ReloadSchemasResponse_KeyspaceResult {
@@ -5421,7 +5476,7 @@ type ReloadSchemaShardRequest struct {
func (x *ReloadSchemaShardRequest) Reset() {
*x = ReloadSchemaShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[91]
+ mi := &file_vtadmin_proto_msgTypes[92]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5434,7 +5489,7 @@ func (x *ReloadSchemaShardRequest) String() string {
func (*ReloadSchemaShardRequest) ProtoMessage() {}
func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[91]
+ mi := &file_vtadmin_proto_msgTypes[92]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5447,7 +5502,7 @@ func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaShardRequest.ProtoReflect.Descriptor instead.
func (*ReloadSchemaShardRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{91}
+ return file_vtadmin_proto_rawDescGZIP(), []int{92}
}
func (x *ReloadSchemaShardRequest) GetClusterId() string {
@@ -5503,7 +5558,7 @@ type ReloadSchemaShardResponse struct {
func (x *ReloadSchemaShardResponse) Reset() {
*x = ReloadSchemaShardResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[92]
+ mi := &file_vtadmin_proto_msgTypes[93]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5516,7 +5571,7 @@ func (x *ReloadSchemaShardResponse) String() string {
func (*ReloadSchemaShardResponse) ProtoMessage() {}
func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[92]
+ mi := &file_vtadmin_proto_msgTypes[93]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5529,7 +5584,7 @@ func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReloadSchemaShardResponse.ProtoReflect.Descriptor instead.
func (*ReloadSchemaShardResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{92}
+ return file_vtadmin_proto_rawDescGZIP(), []int{93}
}
func (x *ReloadSchemaShardResponse) GetEvents() []*logutil.Event {
@@ -5551,7 +5606,7 @@ type RefreshTabletReplicationSourceRequest struct {
func (x *RefreshTabletReplicationSourceRequest) Reset() {
*x = RefreshTabletReplicationSourceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[93]
+ mi := &file_vtadmin_proto_msgTypes[94]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5564,7 +5619,7 @@ func (x *RefreshTabletReplicationSourceRequest) String() string {
func (*RefreshTabletReplicationSourceRequest) ProtoMessage() {}
func (x *RefreshTabletReplicationSourceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[93]
+ mi := &file_vtadmin_proto_msgTypes[94]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5577,7 +5632,7 @@ func (x *RefreshTabletReplicationSourceRequest) ProtoReflect() protoreflect.Mess
// Deprecated: Use RefreshTabletReplicationSourceRequest.ProtoReflect.Descriptor instead.
func (*RefreshTabletReplicationSourceRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{93}
+ return file_vtadmin_proto_rawDescGZIP(), []int{94}
}
func (x *RefreshTabletReplicationSourceRequest) GetAlias() *topodata.TabletAlias {
@@ -5608,7 +5663,7 @@ type RefreshTabletReplicationSourceResponse struct {
func (x *RefreshTabletReplicationSourceResponse) Reset() {
*x = RefreshTabletReplicationSourceResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[94]
+ mi := &file_vtadmin_proto_msgTypes[95]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5621,7 +5676,7 @@ func (x *RefreshTabletReplicationSourceResponse) String() string {
func (*RefreshTabletReplicationSourceResponse) ProtoMessage() {}
func (x *RefreshTabletReplicationSourceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[94]
+ mi := &file_vtadmin_proto_msgTypes[95]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5634,7 +5689,7 @@ func (x *RefreshTabletReplicationSourceResponse) ProtoReflect() protoreflect.Mes
// Deprecated: Use RefreshTabletReplicationSourceResponse.ProtoReflect.Descriptor instead.
func (*RefreshTabletReplicationSourceResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{94}
+ return file_vtadmin_proto_rawDescGZIP(), []int{95}
}
func (x *RefreshTabletReplicationSourceResponse) GetKeyspace() string {
@@ -5680,7 +5735,7 @@ type RemoveKeyspaceCellRequest struct {
func (x *RemoveKeyspaceCellRequest) Reset() {
*x = RemoveKeyspaceCellRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[95]
+ mi := &file_vtadmin_proto_msgTypes[96]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5693,7 +5748,7 @@ func (x *RemoveKeyspaceCellRequest) String() string {
func (*RemoveKeyspaceCellRequest) ProtoMessage() {}
func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[95]
+ mi := &file_vtadmin_proto_msgTypes[96]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5706,7 +5761,7 @@ func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveKeyspaceCellRequest.ProtoReflect.Descriptor instead.
func (*RemoveKeyspaceCellRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{95}
+ return file_vtadmin_proto_rawDescGZIP(), []int{96}
}
func (x *RemoveKeyspaceCellRequest) GetClusterId() string {
@@ -5755,7 +5810,7 @@ type RemoveKeyspaceCellResponse struct {
func (x *RemoveKeyspaceCellResponse) Reset() {
*x = RemoveKeyspaceCellResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[96]
+ mi := &file_vtadmin_proto_msgTypes[97]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5768,7 +5823,7 @@ func (x *RemoveKeyspaceCellResponse) String() string {
func (*RemoveKeyspaceCellResponse) ProtoMessage() {}
func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[96]
+ mi := &file_vtadmin_proto_msgTypes[97]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5781,7 +5836,7 @@ func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveKeyspaceCellResponse.ProtoReflect.Descriptor instead.
func (*RemoveKeyspaceCellResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{96}
+ return file_vtadmin_proto_rawDescGZIP(), []int{97}
}
func (x *RemoveKeyspaceCellResponse) GetStatus() string {
@@ -5803,7 +5858,7 @@ type RetrySchemaMigrationRequest struct {
func (x *RetrySchemaMigrationRequest) Reset() {
*x = RetrySchemaMigrationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[97]
+ mi := &file_vtadmin_proto_msgTypes[98]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5816,7 +5871,7 @@ func (x *RetrySchemaMigrationRequest) String() string {
func (*RetrySchemaMigrationRequest) ProtoMessage() {}
func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[97]
+ mi := &file_vtadmin_proto_msgTypes[98]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5829,7 +5884,7 @@ func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RetrySchemaMigrationRequest.ProtoReflect.Descriptor instead.
func (*RetrySchemaMigrationRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{97}
+ return file_vtadmin_proto_rawDescGZIP(), []int{98}
}
func (x *RetrySchemaMigrationRequest) GetClusterId() string {
@@ -5858,7 +5913,7 @@ type RunHealthCheckRequest struct {
func (x *RunHealthCheckRequest) Reset() {
*x = RunHealthCheckRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[98]
+ mi := &file_vtadmin_proto_msgTypes[99]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5871,7 +5926,7 @@ func (x *RunHealthCheckRequest) String() string {
func (*RunHealthCheckRequest) ProtoMessage() {}
func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[98]
+ mi := &file_vtadmin_proto_msgTypes[99]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5884,7 +5939,7 @@ func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RunHealthCheckRequest.ProtoReflect.Descriptor instead.
func (*RunHealthCheckRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{98}
+ return file_vtadmin_proto_rawDescGZIP(), []int{99}
}
func (x *RunHealthCheckRequest) GetAlias() *topodata.TabletAlias {
@@ -5913,7 +5968,7 @@ type RunHealthCheckResponse struct {
func (x *RunHealthCheckResponse) Reset() {
*x = RunHealthCheckResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[99]
+ mi := &file_vtadmin_proto_msgTypes[100]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5926,7 +5981,7 @@ func (x *RunHealthCheckResponse) String() string {
func (*RunHealthCheckResponse) ProtoMessage() {}
func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[99]
+ mi := &file_vtadmin_proto_msgTypes[100]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5939,7 +5994,7 @@ func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RunHealthCheckResponse.ProtoReflect.Descriptor instead.
func (*RunHealthCheckResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{99}
+ return file_vtadmin_proto_rawDescGZIP(), []int{100}
}
func (x *RunHealthCheckResponse) GetStatus() string {
@@ -5968,7 +6023,7 @@ type ReshardCreateRequest struct {
func (x *ReshardCreateRequest) Reset() {
*x = ReshardCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[100]
+ mi := &file_vtadmin_proto_msgTypes[101]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -5981,7 +6036,7 @@ func (x *ReshardCreateRequest) String() string {
func (*ReshardCreateRequest) ProtoMessage() {}
func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[100]
+ mi := &file_vtadmin_proto_msgTypes[101]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -5994,7 +6049,7 @@ func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ReshardCreateRequest.ProtoReflect.Descriptor instead.
func (*ReshardCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{100}
+ return file_vtadmin_proto_rawDescGZIP(), []int{101}
}
func (x *ReshardCreateRequest) GetClusterId() string {
@@ -6023,7 +6078,7 @@ type SetReadOnlyRequest struct {
func (x *SetReadOnlyRequest) Reset() {
*x = SetReadOnlyRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[101]
+ mi := &file_vtadmin_proto_msgTypes[102]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6036,7 +6091,7 @@ func (x *SetReadOnlyRequest) String() string {
func (*SetReadOnlyRequest) ProtoMessage() {}
func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[101]
+ mi := &file_vtadmin_proto_msgTypes[102]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6049,7 +6104,7 @@ func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReadOnlyRequest.ProtoReflect.Descriptor instead.
func (*SetReadOnlyRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{101}
+ return file_vtadmin_proto_rawDescGZIP(), []int{102}
}
func (x *SetReadOnlyRequest) GetAlias() *topodata.TabletAlias {
@@ -6075,7 +6130,7 @@ type SetReadOnlyResponse struct {
func (x *SetReadOnlyResponse) Reset() {
*x = SetReadOnlyResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[102]
+ mi := &file_vtadmin_proto_msgTypes[103]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6088,7 +6143,7 @@ func (x *SetReadOnlyResponse) String() string {
func (*SetReadOnlyResponse) ProtoMessage() {}
func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[102]
+ mi := &file_vtadmin_proto_msgTypes[103]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6101,7 +6156,7 @@ func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReadOnlyResponse.ProtoReflect.Descriptor instead.
func (*SetReadOnlyResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{102}
+ return file_vtadmin_proto_rawDescGZIP(), []int{103}
}
type SetReadWriteRequest struct {
@@ -6116,7 +6171,7 @@ type SetReadWriteRequest struct {
func (x *SetReadWriteRequest) Reset() {
*x = SetReadWriteRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[103]
+ mi := &file_vtadmin_proto_msgTypes[104]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6129,7 +6184,7 @@ func (x *SetReadWriteRequest) String() string {
func (*SetReadWriteRequest) ProtoMessage() {}
func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[103]
+ mi := &file_vtadmin_proto_msgTypes[104]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6142,7 +6197,7 @@ func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReadWriteRequest.ProtoReflect.Descriptor instead.
func (*SetReadWriteRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{103}
+ return file_vtadmin_proto_rawDescGZIP(), []int{104}
}
func (x *SetReadWriteRequest) GetAlias() *topodata.TabletAlias {
@@ -6168,7 +6223,7 @@ type SetReadWriteResponse struct {
func (x *SetReadWriteResponse) Reset() {
*x = SetReadWriteResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[104]
+ mi := &file_vtadmin_proto_msgTypes[105]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6181,7 +6236,7 @@ func (x *SetReadWriteResponse) String() string {
func (*SetReadWriteResponse) ProtoMessage() {}
func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[104]
+ mi := &file_vtadmin_proto_msgTypes[105]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6194,7 +6249,7 @@ func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReadWriteResponse.ProtoReflect.Descriptor instead.
func (*SetReadWriteResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{104}
+ return file_vtadmin_proto_rawDescGZIP(), []int{105}
}
type StartReplicationRequest struct {
@@ -6209,7 +6264,7 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[105]
+ mi := &file_vtadmin_proto_msgTypes[106]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6222,7 +6277,7 @@ func (x *StartReplicationRequest) String() string {
func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[105]
+ mi := &file_vtadmin_proto_msgTypes[106]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6235,7 +6290,7 @@ func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationRequest.ProtoReflect.Descriptor instead.
func (*StartReplicationRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{105}
+ return file_vtadmin_proto_rawDescGZIP(), []int{106}
}
func (x *StartReplicationRequest) GetAlias() *topodata.TabletAlias {
@@ -6264,7 +6319,7 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[106]
+ mi := &file_vtadmin_proto_msgTypes[107]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6277,7 +6332,7 @@ func (x *StartReplicationResponse) String() string {
func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[106]
+ mi := &file_vtadmin_proto_msgTypes[107]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6290,7 +6345,7 @@ func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartReplicationResponse.ProtoReflect.Descriptor instead.
func (*StartReplicationResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{106}
+ return file_vtadmin_proto_rawDescGZIP(), []int{107}
}
func (x *StartReplicationResponse) GetStatus() string {
@@ -6319,7 +6374,7 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[107]
+ mi := &file_vtadmin_proto_msgTypes[108]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6332,7 +6387,7 @@ func (x *StopReplicationRequest) String() string {
func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[107]
+ mi := &file_vtadmin_proto_msgTypes[108]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6345,7 +6400,7 @@ func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationRequest.ProtoReflect.Descriptor instead.
func (*StopReplicationRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{107}
+ return file_vtadmin_proto_rawDescGZIP(), []int{108}
}
func (x *StopReplicationRequest) GetAlias() *topodata.TabletAlias {
@@ -6374,7 +6429,7 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[108]
+ mi := &file_vtadmin_proto_msgTypes[109]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6387,7 +6442,7 @@ func (x *StopReplicationResponse) String() string {
func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[108]
+ mi := &file_vtadmin_proto_msgTypes[109]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6400,7 +6455,7 @@ func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StopReplicationResponse.ProtoReflect.Descriptor instead.
func (*StopReplicationResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{108}
+ return file_vtadmin_proto_rawDescGZIP(), []int{109}
}
func (x *StopReplicationResponse) GetStatus() string {
@@ -6431,7 +6486,7 @@ type TabletExternallyPromotedRequest struct {
func (x *TabletExternallyPromotedRequest) Reset() {
*x = TabletExternallyPromotedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[109]
+ mi := &file_vtadmin_proto_msgTypes[110]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6444,7 +6499,7 @@ func (x *TabletExternallyPromotedRequest) String() string {
func (*TabletExternallyPromotedRequest) ProtoMessage() {}
func (x *TabletExternallyPromotedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[109]
+ mi := &file_vtadmin_proto_msgTypes[110]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6457,7 +6512,7 @@ func (x *TabletExternallyPromotedRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TabletExternallyPromotedRequest.ProtoReflect.Descriptor instead.
func (*TabletExternallyPromotedRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{109}
+ return file_vtadmin_proto_rawDescGZIP(), []int{110}
}
func (x *TabletExternallyPromotedRequest) GetAlias() *topodata.TabletAlias {
@@ -6489,7 +6544,7 @@ type TabletExternallyPromotedResponse struct {
func (x *TabletExternallyPromotedResponse) Reset() {
*x = TabletExternallyPromotedResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[110]
+ mi := &file_vtadmin_proto_msgTypes[111]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6502,7 +6557,7 @@ func (x *TabletExternallyPromotedResponse) String() string {
func (*TabletExternallyPromotedResponse) ProtoMessage() {}
func (x *TabletExternallyPromotedResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[110]
+ mi := &file_vtadmin_proto_msgTypes[111]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6515,7 +6570,7 @@ func (x *TabletExternallyPromotedResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TabletExternallyPromotedResponse.ProtoReflect.Descriptor instead.
func (*TabletExternallyPromotedResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{110}
+ return file_vtadmin_proto_rawDescGZIP(), []int{111}
}
func (x *TabletExternallyPromotedResponse) GetCluster() *Cluster {
@@ -6565,7 +6620,7 @@ type TabletExternallyReparentedRequest struct {
func (x *TabletExternallyReparentedRequest) Reset() {
*x = TabletExternallyReparentedRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[111]
+ mi := &file_vtadmin_proto_msgTypes[112]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6578,7 +6633,7 @@ func (x *TabletExternallyReparentedRequest) String() string {
func (*TabletExternallyReparentedRequest) ProtoMessage() {}
func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[111]
+ mi := &file_vtadmin_proto_msgTypes[112]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6591,7 +6646,7 @@ func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message
// Deprecated: Use TabletExternallyReparentedRequest.ProtoReflect.Descriptor instead.
func (*TabletExternallyReparentedRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{111}
+ return file_vtadmin_proto_rawDescGZIP(), []int{112}
}
func (x *TabletExternallyReparentedRequest) GetAlias() *topodata.TabletAlias {
@@ -6620,7 +6675,7 @@ type ValidateRequest struct {
func (x *ValidateRequest) Reset() {
*x = ValidateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[112]
+ mi := &file_vtadmin_proto_msgTypes[113]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6633,7 +6688,7 @@ func (x *ValidateRequest) String() string {
func (*ValidateRequest) ProtoMessage() {}
func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[112]
+ mi := &file_vtadmin_proto_msgTypes[113]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6646,7 +6701,7 @@ func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateRequest.ProtoReflect.Descriptor instead.
func (*ValidateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{112}
+ return file_vtadmin_proto_rawDescGZIP(), []int{113}
}
func (x *ValidateRequest) GetClusterId() string {
@@ -6676,7 +6731,7 @@ type ValidateKeyspaceRequest struct {
func (x *ValidateKeyspaceRequest) Reset() {
*x = ValidateKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[113]
+ mi := &file_vtadmin_proto_msgTypes[114]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6689,7 +6744,7 @@ func (x *ValidateKeyspaceRequest) String() string {
func (*ValidateKeyspaceRequest) ProtoMessage() {}
func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[113]
+ mi := &file_vtadmin_proto_msgTypes[114]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6702,7 +6757,7 @@ func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{113}
+ return file_vtadmin_proto_rawDescGZIP(), []int{114}
}
func (x *ValidateKeyspaceRequest) GetClusterId() string {
@@ -6738,7 +6793,7 @@ type ValidateSchemaKeyspaceRequest struct {
func (x *ValidateSchemaKeyspaceRequest) Reset() {
*x = ValidateSchemaKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[114]
+ mi := &file_vtadmin_proto_msgTypes[115]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6751,7 +6806,7 @@ func (x *ValidateSchemaKeyspaceRequest) String() string {
func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[114]
+ mi := &file_vtadmin_proto_msgTypes[115]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6764,7 +6819,7 @@ func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateSchemaKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateSchemaKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{114}
+ return file_vtadmin_proto_rawDescGZIP(), []int{115}
}
func (x *ValidateSchemaKeyspaceRequest) GetClusterId() string {
@@ -6795,7 +6850,7 @@ type ValidateShardRequest struct {
func (x *ValidateShardRequest) Reset() {
*x = ValidateShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[115]
+ mi := &file_vtadmin_proto_msgTypes[116]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6808,7 +6863,7 @@ func (x *ValidateShardRequest) String() string {
func (*ValidateShardRequest) ProtoMessage() {}
func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[115]
+ mi := &file_vtadmin_proto_msgTypes[116]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6821,7 +6876,7 @@ func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateShardRequest.ProtoReflect.Descriptor instead.
func (*ValidateShardRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{115}
+ return file_vtadmin_proto_rawDescGZIP(), []int{116}
}
func (x *ValidateShardRequest) GetClusterId() string {
@@ -6864,7 +6919,7 @@ type ValidateVersionKeyspaceRequest struct {
func (x *ValidateVersionKeyspaceRequest) Reset() {
*x = ValidateVersionKeyspaceRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[116]
+ mi := &file_vtadmin_proto_msgTypes[117]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6877,7 +6932,7 @@ func (x *ValidateVersionKeyspaceRequest) String() string {
func (*ValidateVersionKeyspaceRequest) ProtoMessage() {}
func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[116]
+ mi := &file_vtadmin_proto_msgTypes[117]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6890,7 +6945,7 @@ func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionKeyspaceRequest.ProtoReflect.Descriptor instead.
func (*ValidateVersionKeyspaceRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{116}
+ return file_vtadmin_proto_rawDescGZIP(), []int{117}
}
func (x *ValidateVersionKeyspaceRequest) GetClusterId() string {
@@ -6920,7 +6975,7 @@ type ValidateVersionShardRequest struct {
func (x *ValidateVersionShardRequest) Reset() {
*x = ValidateVersionShardRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[117]
+ mi := &file_vtadmin_proto_msgTypes[118]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6933,7 +6988,7 @@ func (x *ValidateVersionShardRequest) String() string {
func (*ValidateVersionShardRequest) ProtoMessage() {}
func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[117]
+ mi := &file_vtadmin_proto_msgTypes[118]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -6946,7 +7001,7 @@ func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ValidateVersionShardRequest.ProtoReflect.Descriptor instead.
func (*ValidateVersionShardRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{117}
+ return file_vtadmin_proto_rawDescGZIP(), []int{118}
}
func (x *ValidateVersionShardRequest) GetClusterId() string {
@@ -6982,7 +7037,7 @@ type VDiffCreateRequest struct {
func (x *VDiffCreateRequest) Reset() {
*x = VDiffCreateRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[118]
+ mi := &file_vtadmin_proto_msgTypes[119]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -6995,7 +7050,7 @@ func (x *VDiffCreateRequest) String() string {
func (*VDiffCreateRequest) ProtoMessage() {}
func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[118]
+ mi := &file_vtadmin_proto_msgTypes[119]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7008,7 +7063,7 @@ func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffCreateRequest.ProtoReflect.Descriptor instead.
func (*VDiffCreateRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{118}
+ return file_vtadmin_proto_rawDescGZIP(), []int{119}
}
func (x *VDiffCreateRequest) GetClusterId() string {
@@ -7037,7 +7092,7 @@ type VDiffShowRequest struct {
func (x *VDiffShowRequest) Reset() {
*x = VDiffShowRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[119]
+ mi := &file_vtadmin_proto_msgTypes[120]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7050,7 +7105,7 @@ func (x *VDiffShowRequest) String() string {
func (*VDiffShowRequest) ProtoMessage() {}
func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[119]
+ mi := &file_vtadmin_proto_msgTypes[120]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7063,7 +7118,7 @@ func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffShowRequest.ProtoReflect.Descriptor instead.
func (*VDiffShowRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{119}
+ return file_vtadmin_proto_rawDescGZIP(), []int{120}
}
func (x *VDiffShowRequest) GetClusterId() string {
@@ -7092,7 +7147,7 @@ type VDiffProgress struct {
func (x *VDiffProgress) Reset() {
*x = VDiffProgress{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[120]
+ mi := &file_vtadmin_proto_msgTypes[121]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7105,7 +7160,7 @@ func (x *VDiffProgress) String() string {
func (*VDiffProgress) ProtoMessage() {}
func (x *VDiffProgress) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[120]
+ mi := &file_vtadmin_proto_msgTypes[121]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7118,7 +7173,7 @@ func (x *VDiffProgress) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffProgress.ProtoReflect.Descriptor instead.
func (*VDiffProgress) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{120}
+ return file_vtadmin_proto_rawDescGZIP(), []int{121}
}
func (x *VDiffProgress) GetPercentage() float64 {
@@ -7151,7 +7206,7 @@ type VDiffShardReport struct {
func (x *VDiffShardReport) Reset() {
*x = VDiffShardReport{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[121]
+ mi := &file_vtadmin_proto_msgTypes[122]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7164,7 +7219,7 @@ func (x *VDiffShardReport) String() string {
func (*VDiffShardReport) ProtoMessage() {}
func (x *VDiffShardReport) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[121]
+ mi := &file_vtadmin_proto_msgTypes[122]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7177,7 +7232,7 @@ func (x *VDiffShardReport) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffShardReport.ProtoReflect.Descriptor instead.
func (*VDiffShardReport) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{121}
+ return file_vtadmin_proto_rawDescGZIP(), []int{122}
}
func (x *VDiffShardReport) GetState() string {
@@ -7233,7 +7288,7 @@ type VDiffShowResponse struct {
func (x *VDiffShowResponse) Reset() {
*x = VDiffShowResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[122]
+ mi := &file_vtadmin_proto_msgTypes[123]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7246,7 +7301,7 @@ func (x *VDiffShowResponse) String() string {
func (*VDiffShowResponse) ProtoMessage() {}
func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[122]
+ mi := &file_vtadmin_proto_msgTypes[123]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7259,7 +7314,7 @@ func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VDiffShowResponse.ProtoReflect.Descriptor instead.
func (*VDiffShowResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{122}
+ return file_vtadmin_proto_rawDescGZIP(), []int{123}
}
func (x *VDiffShowResponse) GetShardReport() map[string]*VDiffShardReport {
@@ -7282,7 +7337,7 @@ type VTExplainRequest struct {
func (x *VTExplainRequest) Reset() {
*x = VTExplainRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[123]
+ mi := &file_vtadmin_proto_msgTypes[124]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7295,7 +7350,7 @@ func (x *VTExplainRequest) String() string {
func (*VTExplainRequest) ProtoMessage() {}
func (x *VTExplainRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[123]
+ mi := &file_vtadmin_proto_msgTypes[124]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7308,7 +7363,7 @@ func (x *VTExplainRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VTExplainRequest.ProtoReflect.Descriptor instead.
func (*VTExplainRequest) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{123}
+ return file_vtadmin_proto_rawDescGZIP(), []int{124}
}
func (x *VTExplainRequest) GetCluster() string {
@@ -7343,7 +7398,7 @@ type VTExplainResponse struct {
func (x *VTExplainResponse) Reset() {
*x = VTExplainResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[124]
+ mi := &file_vtadmin_proto_msgTypes[125]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7356,7 +7411,7 @@ func (x *VTExplainResponse) String() string {
func (*VTExplainResponse) ProtoMessage() {}
func (x *VTExplainResponse) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[124]
+ mi := &file_vtadmin_proto_msgTypes[125]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7369,7 +7424,7 @@ func (x *VTExplainResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use VTExplainResponse.ProtoReflect.Descriptor instead.
func (*VTExplainResponse) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{124}
+ return file_vtadmin_proto_rawDescGZIP(), []int{125}
}
func (x *VTExplainResponse) GetResponse() string {
@@ -7391,7 +7446,7 @@ type Schema_ShardTableSize struct {
func (x *Schema_ShardTableSize) Reset() {
*x = Schema_ShardTableSize{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[128]
+ mi := &file_vtadmin_proto_msgTypes[129]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7404,7 +7459,7 @@ func (x *Schema_ShardTableSize) String() string {
func (*Schema_ShardTableSize) ProtoMessage() {}
func (x *Schema_ShardTableSize) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[128]
+ mi := &file_vtadmin_proto_msgTypes[129]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7449,7 +7504,7 @@ type Schema_TableSize struct {
func (x *Schema_TableSize) Reset() {
*x = Schema_TableSize{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[129]
+ mi := &file_vtadmin_proto_msgTypes[130]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7462,7 +7517,7 @@ func (x *Schema_TableSize) String() string {
func (*Schema_TableSize) ProtoMessage() {}
func (x *Schema_TableSize) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[129]
+ mi := &file_vtadmin_proto_msgTypes[130]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7511,7 +7566,7 @@ type GetSchemaMigrationsRequest_ClusterRequest struct {
func (x *GetSchemaMigrationsRequest_ClusterRequest) Reset() {
*x = GetSchemaMigrationsRequest_ClusterRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[131]
+ mi := &file_vtadmin_proto_msgTypes[132]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7524,7 +7579,7 @@ func (x *GetSchemaMigrationsRequest_ClusterRequest) String() string {
func (*GetSchemaMigrationsRequest_ClusterRequest) ProtoMessage() {}
func (x *GetSchemaMigrationsRequest_ClusterRequest) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[131]
+ mi := &file_vtadmin_proto_msgTypes[132]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7572,7 +7627,7 @@ type ReloadSchemasResponse_KeyspaceResult struct {
func (x *ReloadSchemasResponse_KeyspaceResult) Reset() {
*x = ReloadSchemasResponse_KeyspaceResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[134]
+ mi := &file_vtadmin_proto_msgTypes[135]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7585,7 +7640,7 @@ func (x *ReloadSchemasResponse_KeyspaceResult) String() string {
func (*ReloadSchemasResponse_KeyspaceResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_KeyspaceResult) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[134]
+ mi := &file_vtadmin_proto_msgTypes[135]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7598,7 +7653,7 @@ func (x *ReloadSchemasResponse_KeyspaceResult) ProtoReflect() protoreflect.Messa
// Deprecated: Use ReloadSchemasResponse_KeyspaceResult.ProtoReflect.Descriptor instead.
func (*ReloadSchemasResponse_KeyspaceResult) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{90, 0}
+ return file_vtadmin_proto_rawDescGZIP(), []int{91, 0}
}
func (x *ReloadSchemasResponse_KeyspaceResult) GetKeyspace() *Keyspace {
@@ -7633,7 +7688,7 @@ type ReloadSchemasResponse_ShardResult struct {
func (x *ReloadSchemasResponse_ShardResult) Reset() {
*x = ReloadSchemasResponse_ShardResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[135]
+ mi := &file_vtadmin_proto_msgTypes[136]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7646,7 +7701,7 @@ func (x *ReloadSchemasResponse_ShardResult) String() string {
func (*ReloadSchemasResponse_ShardResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_ShardResult) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[135]
+ mi := &file_vtadmin_proto_msgTypes[136]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7659,7 +7714,7 @@ func (x *ReloadSchemasResponse_ShardResult) ProtoReflect() protoreflect.Message
// Deprecated: Use ReloadSchemasResponse_ShardResult.ProtoReflect.Descriptor instead.
func (*ReloadSchemasResponse_ShardResult) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{90, 1}
+ return file_vtadmin_proto_rawDescGZIP(), []int{91, 1}
}
func (x *ReloadSchemasResponse_ShardResult) GetShard() *Shard {
@@ -7695,7 +7750,7 @@ type ReloadSchemasResponse_TabletResult struct {
func (x *ReloadSchemasResponse_TabletResult) Reset() {
*x = ReloadSchemasResponse_TabletResult{}
if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[136]
+ mi := &file_vtadmin_proto_msgTypes[137]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -7708,7 +7763,7 @@ func (x *ReloadSchemasResponse_TabletResult) String() string {
func (*ReloadSchemasResponse_TabletResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_TabletResult) ProtoReflect() protoreflect.Message {
- mi := &file_vtadmin_proto_msgTypes[136]
+ mi := &file_vtadmin_proto_msgTypes[137]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -7721,7 +7776,7 @@ func (x *ReloadSchemasResponse_TabletResult) ProtoReflect() protoreflect.Message
// Deprecated: Use ReloadSchemasResponse_TabletResult.ProtoReflect.Descriptor instead.
func (*ReloadSchemasResponse_TabletResult) Descriptor() ([]byte, []int) {
- return file_vtadmin_proto_rawDescGZIP(), []int{90, 2}
+ return file_vtadmin_proto_rawDescGZIP(), []int{91, 2}
}
func (x *ReloadSchemasResponse_TabletResult) GetTablet() *Tablet {
@@ -8256,869 +8311,883 @@ var file_vtadmin_proto_rawDesc = []byte{
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x7e, 0x0a, 0x20, 0x47, 0x65, 0x74,
- 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
- 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x62, 0x61, 0x6e,
- 0x64, 0x6f, 0x6e, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61,
- 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74,
- 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a,
- 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65, 0x74,
- 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73,
- 0x22, 0x44, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x76, 0x5f, 0x73, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x08, 0x76, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0x34, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x7a, 0x0a, 0x19, 0x47, 0x65, 0x74,
+ 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65,
+ 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x5f,
+ 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x62, 0x61, 0x6e, 0x64,
+ 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x22, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63,
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x3f, 0x0a, 0x12,
- 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x52, 0x07, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x22, 0x84, 0x01,
- 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e,
- 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x44, 0x0a, 0x13,
+ 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x09, 0x76, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x08, 0x76, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x73, 0x22, 0x34, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x3f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56,
+ 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29,
+ 0x0a, 0x07, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x52, 0x07, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x12, 0x47, 0x65,
+ 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
- 0x6d, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x6c,
- 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xa0, 0x01, 0x0a,
- 0x13, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
- 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22,
- 0xe1, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x14, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x42,
- 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x1a, 0x60, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x42, 0x79,
- 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
- 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x80, 0x01, 0x0a, 0x1c, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x74, 0x65, 0x72,
- 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x6e, 0x6c, 0x79,
+ 0x22, 0x69, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x14, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74,
- 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69,
- 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
- 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x19, 0x4d, 0x6f, 0x76, 0x65,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70,
- 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, 0x17, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c,
- 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x11,
- 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f,
- 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22,
- 0x58, 0x0a, 0x12, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a,
- 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x1b, 0x50, 0x6c, 0x61,
- 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72,
- 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c,
- 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x1c, 0x50, 0x6c,
- 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61,
- 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c,
- 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6d,
- 0x6f, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x6f,
- 0x74, 0x65, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67,
- 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65,
- 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65,
- 0x6c, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72,
- 0x74, 0x69, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f,
- 0x77, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x22, 0x36, 0x0a, 0x1c, 0x52, 0x65, 0x62, 0x75,
- 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x22, 0x63, 0x0a, 0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61,
- 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5a, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a,
- 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x22, 0x9f, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x65,
- 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
- 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72,
- 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61,
- 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x22, 0xad, 0x04, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a,
- 0x10, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64,
- 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53,
- 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72,
- 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x2b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61,
- 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x67, 0x0a, 0x0e,
- 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d,
- 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x11, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a,
- 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
- 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x5b, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x68,
- 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67,
- 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x1a, 0x4f, 0x0a, 0x0c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x22, 0xdb, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a,
+ 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x6c, 0x0a, 0x13, 0x53, 0x74,
+ 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xa0, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x6e,
+ 0x6c, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
+ 0x12, 0x29, 0x0a, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f,
+ 0x72, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x14,
+ 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x14, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x60, 0x0a,
+ 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x42, 0x79, 0x43, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+ 0x80, 0x01, 0x0a, 0x1c, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12,
- 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
- 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72,
- 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
- 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12,
- 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
- 0x79, 0x22, 0x43, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d,
- 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26,
- 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e,
- 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x75, 0x0a, 0x25, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
- 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
- 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xb7, 0x01,
- 0x0a, 0x26, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x70, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
- 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
- 0x61, 0x73, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x63,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07,
- 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x63, 0x65, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65,
- 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72,
- 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x22, 0x34, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7e,
- 0x0a, 0x1b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07,
- 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65,
- 0x0a, 0x15, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61,
- 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72,
+ 0x41, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75,
+ 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x18, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69,
+ 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25,
+ 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x19, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f,
+ 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x22, 0x76, 0x0a, 0x17, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x62, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64,
- 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61,
+ 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
+ 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x11, 0x50, 0x69, 0x6e, 0x67,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a,
+ 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
+ 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
+ 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x58, 0x0a, 0x12, 0x50,
+ 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x7e, 0x0a, 0x1b, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64,
+ 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x1c, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65,
+ 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
+ 0x68, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64,
+ 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c,
+ 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x93,
+ 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a,
+ 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c,
+ 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12,
+ 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x61, 0x72,
+ 0x74, 0x69, 0x61, 0x6c, 0x22, 0x36, 0x0a, 0x1c, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x13,
+ 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x73, 0x22, 0x5a, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x9f, 0x02,
+ 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x5f, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2f, 0x0a,
+ 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12,
+ 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
+ 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
+ 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22,
+ 0xad, 0x04, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x6b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65,
+ 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x72,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76,
+ 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x67, 0x0a, 0x0e, 0x4b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x08, 0x6b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76,
+ 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52,
+ 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75,
+ 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x1a, 0x5b, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x12, 0x24, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
+ 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c,
+ 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4f,
+ 0x0a, 0x0c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27,
+ 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52,
+ 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
+ 0xdb, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x23, 0x0a,
+ 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63,
+ 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x43, 0x0a,
+ 0x19, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61,
+ 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67,
+ 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x22, 0x75, 0x0a, 0x25, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61,
0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70,
0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73,
0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x63, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x26, 0x52, 0x65,
+ 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x07,
+ 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x65, 0x6c, 0x6c,
+ 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73,
+ 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72,
+ 0x73, 0x69, 0x76, 0x65, 0x22, 0x34, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x7e, 0x0a, 0x1b, 0x52, 0x65,
+ 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x15, 0x52, 0x75,
+ 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
+ 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22,
+ 0x70, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x22, 0x62, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74,
0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61,
0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64,
- 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a,
- 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61,
- 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05,
- 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73,
- 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c,
- 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a,
- 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5d,
- 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x6f, 0x0a,
- 0x1f, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c,
- 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a,
- 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xf0,
- 0x01, 0x0a, 0x20, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
- 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43,
- 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12,
+ 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64,
+ 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x0a, 0x13,
+ 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64,
+ 0x73, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x17, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61,
+ 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49,
+ 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x22, 0x66, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5d, 0x0a, 0x17, 0x53, 0x74,
+ 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a,
+ 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x6f, 0x0a, 0x1f, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f,
+ 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x20, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50,
+ 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x2a, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74,
+ 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x36, 0x0a,
+ 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70,
+ 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
+ 0x73, 0x52, 0x0a, 0x6f, 0x6c, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x71, 0x0a,
+ 0x21, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c,
+ 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73,
+ 0x22, 0x53, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x73, 0x22, 0x77, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
+ 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12,
0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
- 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72,
- 0x64, 0x12, 0x36, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0a, 0x6e,
- 0x65, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x36, 0x0a, 0x0b, 0x6f, 0x6c, 0x64,
- 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0a, 0x6f, 0x6c, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
- 0x79, 0x22, 0x71, 0x0a, 0x21, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72,
- 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x05, 0x61, 0x6c,
- 0x69, 0x61, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x49, 0x64, 0x73, 0x22, 0x53, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69,
- 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x22, 0x77, 0x0a, 0x17, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
- 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x73, 0x22, 0x5a, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70,
+ 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x22, 0x5a,
+ 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a,
+ 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x8a,
- 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67,
- 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
- 0x70, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x22, 0x5b, 0x0a, 0x1e, 0x56,
- 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65,
- 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
- 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x6e, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74,
- 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75,
- 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x22, 0x6c, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a,
- 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x68, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53,
- 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
+ 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x22, 0x5b, 0x0a, 0x1e, 0x56, 0x61, 0x6c, 0x69, 0x64,
+ 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
+ 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
+ 0x70, 0x61, 0x63, 0x65, 0x22, 0x6e, 0x0a, 0x1b, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
+ 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14,
+ 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
+ 0x68, 0x61, 0x72, 0x64, 0x22, 0x6c, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c,
0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x22, 0x41, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
- 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67,
- 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x65, 0x74, 0x61, 0x22, 0xe6, 0x01, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x61,
- 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23,
- 0x0a, 0x0d, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x61,
- 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61,
- 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x4d, 0x69,
- 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65,
- 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
- 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d,
- 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67,
- 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
- 0x73, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x01, 0x0a,
- 0x11, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f,
- 0x72, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f,
- 0x72, 0x74, 0x1a, 0x59, 0x0a, 0x10, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f,
- 0x72, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a,
- 0x10, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x71, 0x6c, 0x22, 0x2f, 0x0a, 0x11, 0x56, 0x54, 0x45,
- 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
- 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xda, 0x30, 0x0a, 0x07, 0x56,
- 0x54, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41,
- 0x70, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e,
- 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x6d, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d,
- 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
- 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x70, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d,
- 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
- 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x64, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61,
- 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e,
- 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75,
- 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72,
- 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x44, 0x65,
- 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76,
- 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1f, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c,
- 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x6b, 0x0a, 0x16, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61,
- 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x46,
- 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6d,
- 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53,
- 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b,
- 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d,
- 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47,
- 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x49,
- 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
- 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
- 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41,
- 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x47,
- 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x75,
- 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x47,
- 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x47,
- 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f,
- 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x2e,
- 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x00, 0x12,
- 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12,
- 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
- 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39,
- 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x19, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
- 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x62, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d,
- 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
- 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61,
- 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
- 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a,
- 0x0f, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
- 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72,
- 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53,
- 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e,
- 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1e,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x19,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a,
- 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f,
- 0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61,
- 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74,
- 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67,
- 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x76, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64,
- 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f,
- 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65,
- 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
- 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x12,
- 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x22, 0x68, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73,
+ 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x0d,
+ 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x01, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a,
+ 0x03, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x74, 0x61, 0x22,
+ 0xe6, 0x01, 0x0a, 0x10, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x6f,
+ 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0c, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x64, 0x12,
+ 0x21, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x68, 0x61, 0x73, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74,
+ 0x63, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41,
+ 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08,
+ 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x11, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e,
+ 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56,
+ 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x59,
+ 0x0a, 0x10, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x44,
+ 0x69, 0x66, 0x66, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x10, 0x56, 0x54, 0x45,
+ 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
+ 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x71, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x73, 0x71, 0x6c, 0x22, 0x2f, 0x0a, 0x11, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61,
+ 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xbd, 0x31, 0x0a, 0x07, 0x56, 0x54, 0x41, 0x64, 0x6d,
+ 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x61, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c,
+ 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79,
+ 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x6a, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
+ 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x6e,
+ 0x63, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x16,
+ 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
+ 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e,
+ 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x17, 0x43,
+ 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d,
+ 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a,
+ 0x13, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a,
+ 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1c, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74,
+ 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d,
+ 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x1c,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76,
+ 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a,
+ 0x16, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76,
+ 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x6f,
+ 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x27, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65,
+ 0x6e, 0x63, 0x79, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0a, 0x46, 0x69,
+ 0x6e, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73,
+ 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65,
+ 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c,
+ 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73,
+ 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6c,
+ 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
+ 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x47, 0x65, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x61,
+ 0x74, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x47, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0b, 0x47, 0x65,
- 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x47,
- 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65,
- 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
- 0x21, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c,
- 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66,
- 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63,
- 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x6a, 0x0a, 0x15, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d,
- 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d,
- 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x28, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e,
- 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x4d,
- 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
- 0x65, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x6f, 0x76, 0x65,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
+ 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x47,
+ 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x74,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x09, 0x47, 0x65,
+ 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62,
+ 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
+ 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x2d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x56, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x0f, 0x47, 0x65, 0x74,
+ 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x76,
+ 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x45, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x13, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x72, 0x76, 0x56,
+ 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53,
+ 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x72, 0x76, 0x56, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a,
+ 0x09, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79,
+ 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
+ 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x50, 0x61, 0x74,
+ 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x47,
+ 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66,
+ 0x6f, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54,
+ 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70,
- 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59,
- 0x0a, 0x10, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x6f, 0x76,
- 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x4d, 0x61, 0x74,
- 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61,
- 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x61,
- 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x50, 0x69, 0x6e,
- 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x69,
- 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69,
- 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c,
- 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e,
- 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x62,
- 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70,
- 0x68, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x62, 0x75,
+ 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76,
+ 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54,
+ 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x2e, 0x76, 0x74,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c,
+ 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64,
+ 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47,
+ 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x10, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x56, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x47, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x12, 0x1a,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0b, 0x47, 0x65, 0x74,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x47, 0x65,
+ 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x53,
+ 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1c, 0x2e, 0x76, 0x74,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
+ 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74,
+ 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a,
+ 0x0a, 0x15, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
+ 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69,
+ 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63,
+ 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x12, 0x4d, 0x6f,
+ 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
+ 0x12, 0x22, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54,
+ 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c,
+ 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a,
+ 0x10, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x6f, 0x76, 0x65,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x11, 0x4d, 0x61, 0x74, 0x65,
+ 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c,
+ 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x24, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x61, 0x74,
+ 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x69, 0x6e,
+ 0x67, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x00, 0x12, 0x65, 0x0a, 0x14, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c,
+ 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f,
+ 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65,
+ 0x64, 0x46, 0x61, 0x69, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x14, 0x52, 0x65, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
- 0x6e, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
- 0x12, 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65,
- 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65,
- 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x83, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66,
- 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66,
- 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x6f, 0x61,
- 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68,
- 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x22, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x23, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
- 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24,
- 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63,
- 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x53, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64,
- 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65,
- 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
- 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x56, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x6f,
- 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74,
- 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x18, 0x54, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
- 0x74, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72,
- 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e,
- 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78,
- 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x56, 0x61,
- 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x5b, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70,
- 0x61, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61,
- 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
- 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
- 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x16,
+ 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69,
+ 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x70, 0x68, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x47, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+ 0x4d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
+ 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73,
+ 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83,
+ 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x2e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72,
+ 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x2f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x72,
+ 0x65, 0x73, 0x68, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52,
+ 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64,
+ 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x21, 0x2e, 0x76, 0x74,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x63, 0x68, 0x65,
+ 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x22, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23,
+ 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4b,
+ 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e,
+ 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68,
+ 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x52, 0x65, 0x74, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4d, 0x69, 0x67, 0x72, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53,
+ 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x52,
+ 0x65, 0x73, 0x68, 0x61, 0x72, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x52,
+ 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53,
+ 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57,
+ 0x72, 0x69, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53,
+ 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x65, 0x74,
+ 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56,
+ 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x1f, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70,
+ 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x6f,
+ 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x18, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
+ 0x65, 0x64, 0x12, 0x28, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f,
+ 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76,
+ 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x45, 0x78, 0x74,
+ 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x56, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x1b, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69,
+ 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b,
+ 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
+ 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61,
+ 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x16, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79,
+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65,
- 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
- 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
- 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x56,
- 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76,
- 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53,
- 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
- 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
- 0x70, 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
- 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x61,
- 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b,
- 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x00, 0x12, 0x67, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61, 0x64,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e,
+ 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x56, 0x61,
+ 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76, 0x74,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53, 0x68,
+ 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x53,
+ 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x70,
+ 0x0a, 0x17, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x76, 0x74, 0x61, 0x64,
0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x27, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64,
- 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
- 0x56, 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66,
- 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44,
- 0x0a, 0x09, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x76, 0x74,
- 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e,
- 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x15, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61,
- 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74,
- 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x26, 0x5a, 0x24, 0x76, 0x69, 0x74, 0x65, 0x73,
- 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
- 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56,
+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65,
+ 0x79, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+ 0x12, 0x67, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x24, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
+ 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
+ 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x09, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x53, 0x68, 0x6f, 0x77, 0x12, 0x19, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56,
+ 0x44, 0x69, 0x66, 0x66, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x53,
+ 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a,
+ 0x09, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x76, 0x74, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x56, 0x54, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x74, 0x63, 0x74, 0x6c, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x15, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66,
+ 0x66, 0x69, 0x63, 0x12, 0x25, 0x2e, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66,
+ 0x66, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x74, 0x63,
+ 0x74, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53,
+ 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x26, 0x5a, 0x24, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73,
+ 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x74, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -9134,7 +9203,7 @@ func file_vtadmin_proto_rawDescGZIP() []byte {
}
var file_vtadmin_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_vtadmin_proto_msgTypes = make([]protoimpl.MessageInfo, 138)
+var file_vtadmin_proto_msgTypes = make([]protoimpl.MessageInfo, 139)
var file_vtadmin_proto_goTypes = []any{
(Tablet_ServingState)(0), // 0: vtadmin.Tablet.ServingState
(*Cluster)(nil), // 1: vtadmin.Cluster
@@ -9202,413 +9271,419 @@ var file_vtadmin_proto_goTypes = []any{
(*GetTabletsRequest)(nil), // 63: vtadmin.GetTabletsRequest
(*GetTabletsResponse)(nil), // 64: vtadmin.GetTabletsResponse
(*GetTopologyPathRequest)(nil), // 65: vtadmin.GetTopologyPathRequest
- (*GetUnresolvedTransactionsRequest)(nil), // 66: vtadmin.GetUnresolvedTransactionsRequest
- (*GetVSchemaRequest)(nil), // 67: vtadmin.GetVSchemaRequest
- (*GetVSchemasRequest)(nil), // 68: vtadmin.GetVSchemasRequest
- (*GetVSchemasResponse)(nil), // 69: vtadmin.GetVSchemasResponse
- (*GetVtctldsRequest)(nil), // 70: vtadmin.GetVtctldsRequest
- (*GetVtctldsResponse)(nil), // 71: vtadmin.GetVtctldsResponse
- (*GetWorkflowRequest)(nil), // 72: vtadmin.GetWorkflowRequest
- (*GetWorkflowStatusRequest)(nil), // 73: vtadmin.GetWorkflowStatusRequest
- (*StartWorkflowRequest)(nil), // 74: vtadmin.StartWorkflowRequest
- (*StopWorkflowRequest)(nil), // 75: vtadmin.StopWorkflowRequest
- (*GetWorkflowsRequest)(nil), // 76: vtadmin.GetWorkflowsRequest
- (*GetWorkflowsResponse)(nil), // 77: vtadmin.GetWorkflowsResponse
- (*LaunchSchemaMigrationRequest)(nil), // 78: vtadmin.LaunchSchemaMigrationRequest
- (*MaterializeCreateRequest)(nil), // 79: vtadmin.MaterializeCreateRequest
- (*MoveTablesCompleteRequest)(nil), // 80: vtadmin.MoveTablesCompleteRequest
- (*MoveTablesCreateRequest)(nil), // 81: vtadmin.MoveTablesCreateRequest
- (*PingTabletRequest)(nil), // 82: vtadmin.PingTabletRequest
- (*PingTabletResponse)(nil), // 83: vtadmin.PingTabletResponse
- (*PlannedFailoverShardRequest)(nil), // 84: vtadmin.PlannedFailoverShardRequest
- (*PlannedFailoverShardResponse)(nil), // 85: vtadmin.PlannedFailoverShardResponse
- (*RebuildKeyspaceGraphRequest)(nil), // 86: vtadmin.RebuildKeyspaceGraphRequest
- (*RebuildKeyspaceGraphResponse)(nil), // 87: vtadmin.RebuildKeyspaceGraphResponse
- (*RefreshStateRequest)(nil), // 88: vtadmin.RefreshStateRequest
- (*RefreshStateResponse)(nil), // 89: vtadmin.RefreshStateResponse
- (*ReloadSchemasRequest)(nil), // 90: vtadmin.ReloadSchemasRequest
- (*ReloadSchemasResponse)(nil), // 91: vtadmin.ReloadSchemasResponse
- (*ReloadSchemaShardRequest)(nil), // 92: vtadmin.ReloadSchemaShardRequest
- (*ReloadSchemaShardResponse)(nil), // 93: vtadmin.ReloadSchemaShardResponse
- (*RefreshTabletReplicationSourceRequest)(nil), // 94: vtadmin.RefreshTabletReplicationSourceRequest
- (*RefreshTabletReplicationSourceResponse)(nil), // 95: vtadmin.RefreshTabletReplicationSourceResponse
- (*RemoveKeyspaceCellRequest)(nil), // 96: vtadmin.RemoveKeyspaceCellRequest
- (*RemoveKeyspaceCellResponse)(nil), // 97: vtadmin.RemoveKeyspaceCellResponse
- (*RetrySchemaMigrationRequest)(nil), // 98: vtadmin.RetrySchemaMigrationRequest
- (*RunHealthCheckRequest)(nil), // 99: vtadmin.RunHealthCheckRequest
- (*RunHealthCheckResponse)(nil), // 100: vtadmin.RunHealthCheckResponse
- (*ReshardCreateRequest)(nil), // 101: vtadmin.ReshardCreateRequest
- (*SetReadOnlyRequest)(nil), // 102: vtadmin.SetReadOnlyRequest
- (*SetReadOnlyResponse)(nil), // 103: vtadmin.SetReadOnlyResponse
- (*SetReadWriteRequest)(nil), // 104: vtadmin.SetReadWriteRequest
- (*SetReadWriteResponse)(nil), // 105: vtadmin.SetReadWriteResponse
- (*StartReplicationRequest)(nil), // 106: vtadmin.StartReplicationRequest
- (*StartReplicationResponse)(nil), // 107: vtadmin.StartReplicationResponse
- (*StopReplicationRequest)(nil), // 108: vtadmin.StopReplicationRequest
- (*StopReplicationResponse)(nil), // 109: vtadmin.StopReplicationResponse
- (*TabletExternallyPromotedRequest)(nil), // 110: vtadmin.TabletExternallyPromotedRequest
- (*TabletExternallyPromotedResponse)(nil), // 111: vtadmin.TabletExternallyPromotedResponse
- (*TabletExternallyReparentedRequest)(nil), // 112: vtadmin.TabletExternallyReparentedRequest
- (*ValidateRequest)(nil), // 113: vtadmin.ValidateRequest
- (*ValidateKeyspaceRequest)(nil), // 114: vtadmin.ValidateKeyspaceRequest
- (*ValidateSchemaKeyspaceRequest)(nil), // 115: vtadmin.ValidateSchemaKeyspaceRequest
- (*ValidateShardRequest)(nil), // 116: vtadmin.ValidateShardRequest
- (*ValidateVersionKeyspaceRequest)(nil), // 117: vtadmin.ValidateVersionKeyspaceRequest
- (*ValidateVersionShardRequest)(nil), // 118: vtadmin.ValidateVersionShardRequest
- (*VDiffCreateRequest)(nil), // 119: vtadmin.VDiffCreateRequest
- (*VDiffShowRequest)(nil), // 120: vtadmin.VDiffShowRequest
- (*VDiffProgress)(nil), // 121: vtadmin.VDiffProgress
- (*VDiffShardReport)(nil), // 122: vtadmin.VDiffShardReport
- (*VDiffShowResponse)(nil), // 123: vtadmin.VDiffShowResponse
- (*VTExplainRequest)(nil), // 124: vtadmin.VTExplainRequest
- (*VTExplainResponse)(nil), // 125: vtadmin.VTExplainResponse
- nil, // 126: vtadmin.ClusterCellsAliases.AliasesEntry
- nil, // 127: vtadmin.Keyspace.ShardsEntry
- nil, // 128: vtadmin.Schema.TableSizesEntry
- (*Schema_ShardTableSize)(nil), // 129: vtadmin.Schema.ShardTableSize
- (*Schema_TableSize)(nil), // 130: vtadmin.Schema.TableSize
- nil, // 131: vtadmin.Schema.TableSize.ByShardEntry
- (*GetSchemaMigrationsRequest_ClusterRequest)(nil), // 132: vtadmin.GetSchemaMigrationsRequest.ClusterRequest
- nil, // 133: vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry
- nil, // 134: vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry
- (*ReloadSchemasResponse_KeyspaceResult)(nil), // 135: vtadmin.ReloadSchemasResponse.KeyspaceResult
- (*ReloadSchemasResponse_ShardResult)(nil), // 136: vtadmin.ReloadSchemasResponse.ShardResult
- (*ReloadSchemasResponse_TabletResult)(nil), // 137: vtadmin.ReloadSchemasResponse.TabletResult
- nil, // 138: vtadmin.VDiffShowResponse.ShardReportEntry
- (*mysqlctl.BackupInfo)(nil), // 139: mysqlctl.BackupInfo
- (*topodata.CellInfo)(nil), // 140: topodata.CellInfo
- (*vtctldata.ShardReplicationPositionsResponse)(nil), // 141: vtctldata.ShardReplicationPositionsResponse
- (*vtctldata.Keyspace)(nil), // 142: vtctldata.Keyspace
- (*tabletmanagerdata.TableDefinition)(nil), // 143: tabletmanagerdata.TableDefinition
- (*vtctldata.SchemaMigration)(nil), // 144: vtctldata.SchemaMigration
- (*vtctldata.Shard)(nil), // 145: vtctldata.Shard
- (*vschema.SrvVSchema)(nil), // 146: vschema.SrvVSchema
- (*topodata.Tablet)(nil), // 147: topodata.Tablet
- (*vschema.Keyspace)(nil), // 148: vschema.Keyspace
- (*vtctldata.Workflow)(nil), // 149: vtctldata.Workflow
- (*vtctldata.WorkflowDeleteRequest)(nil), // 150: vtctldata.WorkflowDeleteRequest
- (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 151: vtctldata.WorkflowSwitchTrafficRequest
- (*vtctldata.ApplySchemaRequest)(nil), // 152: vtctldata.ApplySchemaRequest
- (*vtctldata.CancelSchemaMigrationRequest)(nil), // 153: vtctldata.CancelSchemaMigrationRequest
- (*vtctldata.CleanupSchemaMigrationRequest)(nil), // 154: vtctldata.CleanupSchemaMigrationRequest
- (*vtctldata.CompleteSchemaMigrationRequest)(nil), // 155: vtctldata.CompleteSchemaMigrationRequest
- (*vtctldata.CreateKeyspaceRequest)(nil), // 156: vtctldata.CreateKeyspaceRequest
- (*vtctldata.CreateShardRequest)(nil), // 157: vtctldata.CreateShardRequest
- (*vtctldata.DeleteKeyspaceRequest)(nil), // 158: vtctldata.DeleteKeyspaceRequest
- (*vtctldata.DeleteShardsRequest)(nil), // 159: vtctldata.DeleteShardsRequest
- (*topodata.TabletAlias)(nil), // 160: topodata.TabletAlias
- (*vtctldata.EmergencyReparentShardRequest)(nil), // 161: vtctldata.EmergencyReparentShardRequest
- (*logutil.Event)(nil), // 162: logutil.Event
- (*vtctldata.GetBackupsRequest)(nil), // 163: vtctldata.GetBackupsRequest
- (*vtctldata.LaunchSchemaMigrationRequest)(nil), // 164: vtctldata.LaunchSchemaMigrationRequest
- (*vtctldata.MaterializeCreateRequest)(nil), // 165: vtctldata.MaterializeCreateRequest
- (*vtctldata.MoveTablesCompleteRequest)(nil), // 166: vtctldata.MoveTablesCompleteRequest
- (*vtctldata.MoveTablesCreateRequest)(nil), // 167: vtctldata.MoveTablesCreateRequest
- (*vtctldata.PlannedReparentShardRequest)(nil), // 168: vtctldata.PlannedReparentShardRequest
- (*vtctldata.RetrySchemaMigrationRequest)(nil), // 169: vtctldata.RetrySchemaMigrationRequest
- (*vtctldata.ReshardCreateRequest)(nil), // 170: vtctldata.ReshardCreateRequest
- (*vtctldata.VDiffCreateRequest)(nil), // 171: vtctldata.VDiffCreateRequest
- (*vtctldata.VDiffShowRequest)(nil), // 172: vtctldata.VDiffShowRequest
- (*topodata.CellsAlias)(nil), // 173: topodata.CellsAlias
- (*vtctldata.GetSchemaMigrationsRequest)(nil), // 174: vtctldata.GetSchemaMigrationsRequest
- (*vtctldata.GetSrvKeyspacesResponse)(nil), // 175: vtctldata.GetSrvKeyspacesResponse
- (*vtctldata.ApplySchemaResponse)(nil), // 176: vtctldata.ApplySchemaResponse
- (*vtctldata.CancelSchemaMigrationResponse)(nil), // 177: vtctldata.CancelSchemaMigrationResponse
- (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 178: vtctldata.CleanupSchemaMigrationResponse
- (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 179: vtctldata.CompleteSchemaMigrationResponse
- (*vtctldata.ConcludeTransactionResponse)(nil), // 180: vtctldata.ConcludeTransactionResponse
- (*vtctldata.CreateShardResponse)(nil), // 181: vtctldata.CreateShardResponse
- (*vtctldata.DeleteKeyspaceResponse)(nil), // 182: vtctldata.DeleteKeyspaceResponse
- (*vtctldata.DeleteShardsResponse)(nil), // 183: vtctldata.DeleteShardsResponse
- (*vtctldata.GetFullStatusResponse)(nil), // 184: vtctldata.GetFullStatusResponse
- (*vtctldata.GetTopologyPathResponse)(nil), // 185: vtctldata.GetTopologyPathResponse
- (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 186: vtctldata.GetUnresolvedTransactionsResponse
- (*vtctldata.WorkflowStatusResponse)(nil), // 187: vtctldata.WorkflowStatusResponse
- (*vtctldata.WorkflowUpdateResponse)(nil), // 188: vtctldata.WorkflowUpdateResponse
- (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 189: vtctldata.LaunchSchemaMigrationResponse
- (*vtctldata.MoveTablesCompleteResponse)(nil), // 190: vtctldata.MoveTablesCompleteResponse
- (*vtctldata.MaterializeCreateResponse)(nil), // 191: vtctldata.MaterializeCreateResponse
- (*vtctldata.RetrySchemaMigrationResponse)(nil), // 192: vtctldata.RetrySchemaMigrationResponse
- (*vtctldata.ValidateResponse)(nil), // 193: vtctldata.ValidateResponse
- (*vtctldata.ValidateKeyspaceResponse)(nil), // 194: vtctldata.ValidateKeyspaceResponse
- (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 195: vtctldata.ValidateSchemaKeyspaceResponse
- (*vtctldata.ValidateShardResponse)(nil), // 196: vtctldata.ValidateShardResponse
- (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 197: vtctldata.ValidateVersionKeyspaceResponse
- (*vtctldata.ValidateVersionShardResponse)(nil), // 198: vtctldata.ValidateVersionShardResponse
- (*vtctldata.VDiffCreateResponse)(nil), // 199: vtctldata.VDiffCreateResponse
- (*vtctldata.WorkflowDeleteResponse)(nil), // 200: vtctldata.WorkflowDeleteResponse
- (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 201: vtctldata.WorkflowSwitchTrafficResponse
+ (*GetTransactionInfoRequest)(nil), // 66: vtadmin.GetTransactionInfoRequest
+ (*GetUnresolvedTransactionsRequest)(nil), // 67: vtadmin.GetUnresolvedTransactionsRequest
+ (*GetVSchemaRequest)(nil), // 68: vtadmin.GetVSchemaRequest
+ (*GetVSchemasRequest)(nil), // 69: vtadmin.GetVSchemasRequest
+ (*GetVSchemasResponse)(nil), // 70: vtadmin.GetVSchemasResponse
+ (*GetVtctldsRequest)(nil), // 71: vtadmin.GetVtctldsRequest
+ (*GetVtctldsResponse)(nil), // 72: vtadmin.GetVtctldsResponse
+ (*GetWorkflowRequest)(nil), // 73: vtadmin.GetWorkflowRequest
+ (*GetWorkflowStatusRequest)(nil), // 74: vtadmin.GetWorkflowStatusRequest
+ (*StartWorkflowRequest)(nil), // 75: vtadmin.StartWorkflowRequest
+ (*StopWorkflowRequest)(nil), // 76: vtadmin.StopWorkflowRequest
+ (*GetWorkflowsRequest)(nil), // 77: vtadmin.GetWorkflowsRequest
+ (*GetWorkflowsResponse)(nil), // 78: vtadmin.GetWorkflowsResponse
+ (*LaunchSchemaMigrationRequest)(nil), // 79: vtadmin.LaunchSchemaMigrationRequest
+ (*MaterializeCreateRequest)(nil), // 80: vtadmin.MaterializeCreateRequest
+ (*MoveTablesCompleteRequest)(nil), // 81: vtadmin.MoveTablesCompleteRequest
+ (*MoveTablesCreateRequest)(nil), // 82: vtadmin.MoveTablesCreateRequest
+ (*PingTabletRequest)(nil), // 83: vtadmin.PingTabletRequest
+ (*PingTabletResponse)(nil), // 84: vtadmin.PingTabletResponse
+ (*PlannedFailoverShardRequest)(nil), // 85: vtadmin.PlannedFailoverShardRequest
+ (*PlannedFailoverShardResponse)(nil), // 86: vtadmin.PlannedFailoverShardResponse
+ (*RebuildKeyspaceGraphRequest)(nil), // 87: vtadmin.RebuildKeyspaceGraphRequest
+ (*RebuildKeyspaceGraphResponse)(nil), // 88: vtadmin.RebuildKeyspaceGraphResponse
+ (*RefreshStateRequest)(nil), // 89: vtadmin.RefreshStateRequest
+ (*RefreshStateResponse)(nil), // 90: vtadmin.RefreshStateResponse
+ (*ReloadSchemasRequest)(nil), // 91: vtadmin.ReloadSchemasRequest
+ (*ReloadSchemasResponse)(nil), // 92: vtadmin.ReloadSchemasResponse
+ (*ReloadSchemaShardRequest)(nil), // 93: vtadmin.ReloadSchemaShardRequest
+ (*ReloadSchemaShardResponse)(nil), // 94: vtadmin.ReloadSchemaShardResponse
+ (*RefreshTabletReplicationSourceRequest)(nil), // 95: vtadmin.RefreshTabletReplicationSourceRequest
+ (*RefreshTabletReplicationSourceResponse)(nil), // 96: vtadmin.RefreshTabletReplicationSourceResponse
+ (*RemoveKeyspaceCellRequest)(nil), // 97: vtadmin.RemoveKeyspaceCellRequest
+ (*RemoveKeyspaceCellResponse)(nil), // 98: vtadmin.RemoveKeyspaceCellResponse
+ (*RetrySchemaMigrationRequest)(nil), // 99: vtadmin.RetrySchemaMigrationRequest
+ (*RunHealthCheckRequest)(nil), // 100: vtadmin.RunHealthCheckRequest
+ (*RunHealthCheckResponse)(nil), // 101: vtadmin.RunHealthCheckResponse
+ (*ReshardCreateRequest)(nil), // 102: vtadmin.ReshardCreateRequest
+ (*SetReadOnlyRequest)(nil), // 103: vtadmin.SetReadOnlyRequest
+ (*SetReadOnlyResponse)(nil), // 104: vtadmin.SetReadOnlyResponse
+ (*SetReadWriteRequest)(nil), // 105: vtadmin.SetReadWriteRequest
+ (*SetReadWriteResponse)(nil), // 106: vtadmin.SetReadWriteResponse
+ (*StartReplicationRequest)(nil), // 107: vtadmin.StartReplicationRequest
+ (*StartReplicationResponse)(nil), // 108: vtadmin.StartReplicationResponse
+ (*StopReplicationRequest)(nil), // 109: vtadmin.StopReplicationRequest
+ (*StopReplicationResponse)(nil), // 110: vtadmin.StopReplicationResponse
+ (*TabletExternallyPromotedRequest)(nil), // 111: vtadmin.TabletExternallyPromotedRequest
+ (*TabletExternallyPromotedResponse)(nil), // 112: vtadmin.TabletExternallyPromotedResponse
+ (*TabletExternallyReparentedRequest)(nil), // 113: vtadmin.TabletExternallyReparentedRequest
+ (*ValidateRequest)(nil), // 114: vtadmin.ValidateRequest
+ (*ValidateKeyspaceRequest)(nil), // 115: vtadmin.ValidateKeyspaceRequest
+ (*ValidateSchemaKeyspaceRequest)(nil), // 116: vtadmin.ValidateSchemaKeyspaceRequest
+ (*ValidateShardRequest)(nil), // 117: vtadmin.ValidateShardRequest
+ (*ValidateVersionKeyspaceRequest)(nil), // 118: vtadmin.ValidateVersionKeyspaceRequest
+ (*ValidateVersionShardRequest)(nil), // 119: vtadmin.ValidateVersionShardRequest
+ (*VDiffCreateRequest)(nil), // 120: vtadmin.VDiffCreateRequest
+ (*VDiffShowRequest)(nil), // 121: vtadmin.VDiffShowRequest
+ (*VDiffProgress)(nil), // 122: vtadmin.VDiffProgress
+ (*VDiffShardReport)(nil), // 123: vtadmin.VDiffShardReport
+ (*VDiffShowResponse)(nil), // 124: vtadmin.VDiffShowResponse
+ (*VTExplainRequest)(nil), // 125: vtadmin.VTExplainRequest
+ (*VTExplainResponse)(nil), // 126: vtadmin.VTExplainResponse
+ nil, // 127: vtadmin.ClusterCellsAliases.AliasesEntry
+ nil, // 128: vtadmin.Keyspace.ShardsEntry
+ nil, // 129: vtadmin.Schema.TableSizesEntry
+ (*Schema_ShardTableSize)(nil), // 130: vtadmin.Schema.ShardTableSize
+ (*Schema_TableSize)(nil), // 131: vtadmin.Schema.TableSize
+ nil, // 132: vtadmin.Schema.TableSize.ByShardEntry
+ (*GetSchemaMigrationsRequest_ClusterRequest)(nil), // 133: vtadmin.GetSchemaMigrationsRequest.ClusterRequest
+ nil, // 134: vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry
+ nil, // 135: vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry
+ (*ReloadSchemasResponse_KeyspaceResult)(nil), // 136: vtadmin.ReloadSchemasResponse.KeyspaceResult
+ (*ReloadSchemasResponse_ShardResult)(nil), // 137: vtadmin.ReloadSchemasResponse.ShardResult
+ (*ReloadSchemasResponse_TabletResult)(nil), // 138: vtadmin.ReloadSchemasResponse.TabletResult
+ nil, // 139: vtadmin.VDiffShowResponse.ShardReportEntry
+ (*mysqlctl.BackupInfo)(nil), // 140: mysqlctl.BackupInfo
+ (*topodata.CellInfo)(nil), // 141: topodata.CellInfo
+ (*vtctldata.ShardReplicationPositionsResponse)(nil), // 142: vtctldata.ShardReplicationPositionsResponse
+ (*vtctldata.Keyspace)(nil), // 143: vtctldata.Keyspace
+ (*tabletmanagerdata.TableDefinition)(nil), // 144: tabletmanagerdata.TableDefinition
+ (*vtctldata.SchemaMigration)(nil), // 145: vtctldata.SchemaMigration
+ (*vtctldata.Shard)(nil), // 146: vtctldata.Shard
+ (*vschema.SrvVSchema)(nil), // 147: vschema.SrvVSchema
+ (*topodata.Tablet)(nil), // 148: topodata.Tablet
+ (*vschema.Keyspace)(nil), // 149: vschema.Keyspace
+ (*vtctldata.Workflow)(nil), // 150: vtctldata.Workflow
+ (*vtctldata.WorkflowDeleteRequest)(nil), // 151: vtctldata.WorkflowDeleteRequest
+ (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 152: vtctldata.WorkflowSwitchTrafficRequest
+ (*vtctldata.ApplySchemaRequest)(nil), // 153: vtctldata.ApplySchemaRequest
+ (*vtctldata.CancelSchemaMigrationRequest)(nil), // 154: vtctldata.CancelSchemaMigrationRequest
+ (*vtctldata.CleanupSchemaMigrationRequest)(nil), // 155: vtctldata.CleanupSchemaMigrationRequest
+ (*vtctldata.CompleteSchemaMigrationRequest)(nil), // 156: vtctldata.CompleteSchemaMigrationRequest
+ (*vtctldata.CreateKeyspaceRequest)(nil), // 157: vtctldata.CreateKeyspaceRequest
+ (*vtctldata.CreateShardRequest)(nil), // 158: vtctldata.CreateShardRequest
+ (*vtctldata.DeleteKeyspaceRequest)(nil), // 159: vtctldata.DeleteKeyspaceRequest
+ (*vtctldata.DeleteShardsRequest)(nil), // 160: vtctldata.DeleteShardsRequest
+ (*topodata.TabletAlias)(nil), // 161: topodata.TabletAlias
+ (*vtctldata.EmergencyReparentShardRequest)(nil), // 162: vtctldata.EmergencyReparentShardRequest
+ (*logutil.Event)(nil), // 163: logutil.Event
+ (*vtctldata.GetBackupsRequest)(nil), // 164: vtctldata.GetBackupsRequest
+ (*vtctldata.GetTransactionInfoRequest)(nil), // 165: vtctldata.GetTransactionInfoRequest
+ (*vtctldata.LaunchSchemaMigrationRequest)(nil), // 166: vtctldata.LaunchSchemaMigrationRequest
+ (*vtctldata.MaterializeCreateRequest)(nil), // 167: vtctldata.MaterializeCreateRequest
+ (*vtctldata.MoveTablesCompleteRequest)(nil), // 168: vtctldata.MoveTablesCompleteRequest
+ (*vtctldata.MoveTablesCreateRequest)(nil), // 169: vtctldata.MoveTablesCreateRequest
+ (*vtctldata.PlannedReparentShardRequest)(nil), // 170: vtctldata.PlannedReparentShardRequest
+ (*vtctldata.RetrySchemaMigrationRequest)(nil), // 171: vtctldata.RetrySchemaMigrationRequest
+ (*vtctldata.ReshardCreateRequest)(nil), // 172: vtctldata.ReshardCreateRequest
+ (*vtctldata.VDiffCreateRequest)(nil), // 173: vtctldata.VDiffCreateRequest
+ (*vtctldata.VDiffShowRequest)(nil), // 174: vtctldata.VDiffShowRequest
+ (*topodata.CellsAlias)(nil), // 175: topodata.CellsAlias
+ (*vtctldata.GetSchemaMigrationsRequest)(nil), // 176: vtctldata.GetSchemaMigrationsRequest
+ (*vtctldata.GetSrvKeyspacesResponse)(nil), // 177: vtctldata.GetSrvKeyspacesResponse
+ (*vtctldata.ApplySchemaResponse)(nil), // 178: vtctldata.ApplySchemaResponse
+ (*vtctldata.CancelSchemaMigrationResponse)(nil), // 179: vtctldata.CancelSchemaMigrationResponse
+ (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 180: vtctldata.CleanupSchemaMigrationResponse
+ (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 181: vtctldata.CompleteSchemaMigrationResponse
+ (*vtctldata.ConcludeTransactionResponse)(nil), // 182: vtctldata.ConcludeTransactionResponse
+ (*vtctldata.CreateShardResponse)(nil), // 183: vtctldata.CreateShardResponse
+ (*vtctldata.DeleteKeyspaceResponse)(nil), // 184: vtctldata.DeleteKeyspaceResponse
+ (*vtctldata.DeleteShardsResponse)(nil), // 185: vtctldata.DeleteShardsResponse
+ (*vtctldata.GetFullStatusResponse)(nil), // 186: vtctldata.GetFullStatusResponse
+ (*vtctldata.GetTopologyPathResponse)(nil), // 187: vtctldata.GetTopologyPathResponse
+ (*vtctldata.GetTransactionInfoResponse)(nil), // 188: vtctldata.GetTransactionInfoResponse
+ (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 189: vtctldata.GetUnresolvedTransactionsResponse
+ (*vtctldata.WorkflowStatusResponse)(nil), // 190: vtctldata.WorkflowStatusResponse
+ (*vtctldata.WorkflowUpdateResponse)(nil), // 191: vtctldata.WorkflowUpdateResponse
+ (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 192: vtctldata.LaunchSchemaMigrationResponse
+ (*vtctldata.MoveTablesCompleteResponse)(nil), // 193: vtctldata.MoveTablesCompleteResponse
+ (*vtctldata.MaterializeCreateResponse)(nil), // 194: vtctldata.MaterializeCreateResponse
+ (*vtctldata.RetrySchemaMigrationResponse)(nil), // 195: vtctldata.RetrySchemaMigrationResponse
+ (*vtctldata.ValidateResponse)(nil), // 196: vtctldata.ValidateResponse
+ (*vtctldata.ValidateKeyspaceResponse)(nil), // 197: vtctldata.ValidateKeyspaceResponse
+ (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 198: vtctldata.ValidateSchemaKeyspaceResponse
+ (*vtctldata.ValidateShardResponse)(nil), // 199: vtctldata.ValidateShardResponse
+ (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 200: vtctldata.ValidateVersionKeyspaceResponse
+ (*vtctldata.ValidateVersionShardResponse)(nil), // 201: vtctldata.ValidateVersionShardResponse
+ (*vtctldata.VDiffCreateResponse)(nil), // 202: vtctldata.VDiffCreateResponse
+ (*vtctldata.WorkflowDeleteResponse)(nil), // 203: vtctldata.WorkflowDeleteResponse
+ (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 204: vtctldata.WorkflowSwitchTrafficResponse
}
var file_vtadmin_proto_depIdxs = []int32{
1, // 0: vtadmin.ClusterBackup.cluster:type_name -> vtadmin.Cluster
- 139, // 1: vtadmin.ClusterBackup.backup:type_name -> mysqlctl.BackupInfo
+ 140, // 1: vtadmin.ClusterBackup.backup:type_name -> mysqlctl.BackupInfo
1, // 2: vtadmin.ClusterCellsAliases.cluster:type_name -> vtadmin.Cluster
- 126, // 3: vtadmin.ClusterCellsAliases.aliases:type_name -> vtadmin.ClusterCellsAliases.AliasesEntry
+ 127, // 3: vtadmin.ClusterCellsAliases.aliases:type_name -> vtadmin.ClusterCellsAliases.AliasesEntry
1, // 4: vtadmin.ClusterCellInfo.cluster:type_name -> vtadmin.Cluster
- 140, // 5: vtadmin.ClusterCellInfo.cell_info:type_name -> topodata.CellInfo
+ 141, // 5: vtadmin.ClusterCellInfo.cell_info:type_name -> topodata.CellInfo
1, // 6: vtadmin.ClusterShardReplicationPosition.cluster:type_name -> vtadmin.Cluster
- 141, // 7: vtadmin.ClusterShardReplicationPosition.position_info:type_name -> vtctldata.ShardReplicationPositionsResponse
+ 142, // 7: vtadmin.ClusterShardReplicationPosition.position_info:type_name -> vtctldata.ShardReplicationPositionsResponse
16, // 8: vtadmin.ClusterWorkflows.workflows:type_name -> vtadmin.Workflow
1, // 9: vtadmin.Keyspace.cluster:type_name -> vtadmin.Cluster
- 142, // 10: vtadmin.Keyspace.keyspace:type_name -> vtctldata.Keyspace
- 127, // 11: vtadmin.Keyspace.shards:type_name -> vtadmin.Keyspace.ShardsEntry
+ 143, // 10: vtadmin.Keyspace.keyspace:type_name -> vtctldata.Keyspace
+ 128, // 11: vtadmin.Keyspace.shards:type_name -> vtadmin.Keyspace.ShardsEntry
1, // 12: vtadmin.Schema.cluster:type_name -> vtadmin.Cluster
- 143, // 13: vtadmin.Schema.table_definitions:type_name -> tabletmanagerdata.TableDefinition
- 128, // 14: vtadmin.Schema.table_sizes:type_name -> vtadmin.Schema.TableSizesEntry
+ 144, // 13: vtadmin.Schema.table_definitions:type_name -> tabletmanagerdata.TableDefinition
+ 129, // 14: vtadmin.Schema.table_sizes:type_name -> vtadmin.Schema.TableSizesEntry
1, // 15: vtadmin.SchemaMigration.cluster:type_name -> vtadmin.Cluster
- 144, // 16: vtadmin.SchemaMigration.schema_migration:type_name -> vtctldata.SchemaMigration
+ 145, // 16: vtadmin.SchemaMigration.schema_migration:type_name -> vtctldata.SchemaMigration
1, // 17: vtadmin.Shard.cluster:type_name -> vtadmin.Cluster
- 145, // 18: vtadmin.Shard.shard:type_name -> vtctldata.Shard
+ 146, // 18: vtadmin.Shard.shard:type_name -> vtctldata.Shard
1, // 19: vtadmin.SrvVSchema.cluster:type_name -> vtadmin.Cluster
- 146, // 20: vtadmin.SrvVSchema.srv_v_schema:type_name -> vschema.SrvVSchema
+ 147, // 20: vtadmin.SrvVSchema.srv_v_schema:type_name -> vschema.SrvVSchema
1, // 21: vtadmin.Tablet.cluster:type_name -> vtadmin.Cluster
- 147, // 22: vtadmin.Tablet.tablet:type_name -> topodata.Tablet
+ 148, // 22: vtadmin.Tablet.tablet:type_name -> topodata.Tablet
0, // 23: vtadmin.Tablet.state:type_name -> vtadmin.Tablet.ServingState
1, // 24: vtadmin.VSchema.cluster:type_name -> vtadmin.Cluster
- 148, // 25: vtadmin.VSchema.v_schema:type_name -> vschema.Keyspace
+ 149, // 25: vtadmin.VSchema.v_schema:type_name -> vschema.Keyspace
1, // 26: vtadmin.Vtctld.cluster:type_name -> vtadmin.Cluster
1, // 27: vtadmin.VTGate.cluster:type_name -> vtadmin.Cluster
1, // 28: vtadmin.Workflow.cluster:type_name -> vtadmin.Cluster
- 149, // 29: vtadmin.Workflow.workflow:type_name -> vtctldata.Workflow
- 150, // 30: vtadmin.WorkflowDeleteRequest.request:type_name -> vtctldata.WorkflowDeleteRequest
- 151, // 31: vtadmin.WorkflowSwitchTrafficRequest.request:type_name -> vtctldata.WorkflowSwitchTrafficRequest
- 152, // 32: vtadmin.ApplySchemaRequest.request:type_name -> vtctldata.ApplySchemaRequest
- 153, // 33: vtadmin.CancelSchemaMigrationRequest.request:type_name -> vtctldata.CancelSchemaMigrationRequest
- 154, // 34: vtadmin.CleanupSchemaMigrationRequest.request:type_name -> vtctldata.CleanupSchemaMigrationRequest
- 155, // 35: vtadmin.CompleteSchemaMigrationRequest.request:type_name -> vtctldata.CompleteSchemaMigrationRequest
- 156, // 36: vtadmin.CreateKeyspaceRequest.options:type_name -> vtctldata.CreateKeyspaceRequest
+ 150, // 29: vtadmin.Workflow.workflow:type_name -> vtctldata.Workflow
+ 151, // 30: vtadmin.WorkflowDeleteRequest.request:type_name -> vtctldata.WorkflowDeleteRequest
+ 152, // 31: vtadmin.WorkflowSwitchTrafficRequest.request:type_name -> vtctldata.WorkflowSwitchTrafficRequest
+ 153, // 32: vtadmin.ApplySchemaRequest.request:type_name -> vtctldata.ApplySchemaRequest
+ 154, // 33: vtadmin.CancelSchemaMigrationRequest.request:type_name -> vtctldata.CancelSchemaMigrationRequest
+ 155, // 34: vtadmin.CleanupSchemaMigrationRequest.request:type_name -> vtctldata.CleanupSchemaMigrationRequest
+ 156, // 35: vtadmin.CompleteSchemaMigrationRequest.request:type_name -> vtctldata.CompleteSchemaMigrationRequest
+ 157, // 36: vtadmin.CreateKeyspaceRequest.options:type_name -> vtctldata.CreateKeyspaceRequest
7, // 37: vtadmin.CreateKeyspaceResponse.keyspace:type_name -> vtadmin.Keyspace
- 157, // 38: vtadmin.CreateShardRequest.options:type_name -> vtctldata.CreateShardRequest
- 158, // 39: vtadmin.DeleteKeyspaceRequest.options:type_name -> vtctldata.DeleteKeyspaceRequest
- 159, // 40: vtadmin.DeleteShardsRequest.options:type_name -> vtctldata.DeleteShardsRequest
- 160, // 41: vtadmin.DeleteTabletRequest.alias:type_name -> topodata.TabletAlias
+ 158, // 38: vtadmin.CreateShardRequest.options:type_name -> vtctldata.CreateShardRequest
+ 159, // 39: vtadmin.DeleteKeyspaceRequest.options:type_name -> vtctldata.DeleteKeyspaceRequest
+ 160, // 40: vtadmin.DeleteShardsRequest.options:type_name -> vtctldata.DeleteShardsRequest
+ 161, // 41: vtadmin.DeleteTabletRequest.alias:type_name -> topodata.TabletAlias
1, // 42: vtadmin.DeleteTabletResponse.cluster:type_name -> vtadmin.Cluster
- 161, // 43: vtadmin.EmergencyFailoverShardRequest.options:type_name -> vtctldata.EmergencyReparentShardRequest
+ 162, // 43: vtadmin.EmergencyFailoverShardRequest.options:type_name -> vtctldata.EmergencyReparentShardRequest
1, // 44: vtadmin.EmergencyFailoverShardResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 45: vtadmin.EmergencyFailoverShardResponse.promoted_primary:type_name -> topodata.TabletAlias
- 162, // 46: vtadmin.EmergencyFailoverShardResponse.events:type_name -> logutil.Event
+ 161, // 45: vtadmin.EmergencyFailoverShardResponse.promoted_primary:type_name -> topodata.TabletAlias
+ 163, // 46: vtadmin.EmergencyFailoverShardResponse.events:type_name -> logutil.Event
61, // 47: vtadmin.FindSchemaRequest.table_size_options:type_name -> vtadmin.GetSchemaTableSizeOptions
- 163, // 48: vtadmin.GetBackupsRequest.request_options:type_name -> vtctldata.GetBackupsRequest
+ 164, // 48: vtadmin.GetBackupsRequest.request_options:type_name -> vtctldata.GetBackupsRequest
2, // 49: vtadmin.GetBackupsResponse.backups:type_name -> vtadmin.ClusterBackup
4, // 50: vtadmin.GetCellInfosResponse.cell_infos:type_name -> vtadmin.ClusterCellInfo
3, // 51: vtadmin.GetCellsAliasesResponse.aliases:type_name -> vtadmin.ClusterCellsAliases
1, // 52: vtadmin.GetClustersResponse.clusters:type_name -> vtadmin.Cluster
- 160, // 53: vtadmin.GetFullStatusRequest.alias:type_name -> topodata.TabletAlias
+ 161, // 53: vtadmin.GetFullStatusRequest.alias:type_name -> topodata.TabletAlias
15, // 54: vtadmin.GetGatesResponse.gates:type_name -> vtadmin.VTGate
7, // 55: vtadmin.GetKeyspacesResponse.keyspaces:type_name -> vtadmin.Keyspace
61, // 56: vtadmin.GetSchemaRequest.table_size_options:type_name -> vtadmin.GetSchemaTableSizeOptions
61, // 57: vtadmin.GetSchemasRequest.table_size_options:type_name -> vtadmin.GetSchemaTableSizeOptions
8, // 58: vtadmin.GetSchemasResponse.schemas:type_name -> vtadmin.Schema
- 132, // 59: vtadmin.GetSchemaMigrationsRequest.cluster_requests:type_name -> vtadmin.GetSchemaMigrationsRequest.ClusterRequest
+ 133, // 59: vtadmin.GetSchemaMigrationsRequest.cluster_requests:type_name -> vtadmin.GetSchemaMigrationsRequest.ClusterRequest
9, // 60: vtadmin.GetSchemaMigrationsResponse.schema_migrations:type_name -> vtadmin.SchemaMigration
5, // 61: vtadmin.GetShardReplicationPositionsResponse.replication_positions:type_name -> vtadmin.ClusterShardReplicationPosition
- 133, // 62: vtadmin.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry
+ 134, // 62: vtadmin.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry
11, // 63: vtadmin.GetSrvVSchemasResponse.srv_v_schemas:type_name -> vtadmin.SrvVSchema
- 160, // 64: vtadmin.GetTabletRequest.alias:type_name -> topodata.TabletAlias
+ 161, // 64: vtadmin.GetTabletRequest.alias:type_name -> topodata.TabletAlias
12, // 65: vtadmin.GetTabletsResponse.tablets:type_name -> vtadmin.Tablet
- 13, // 66: vtadmin.GetVSchemasResponse.v_schemas:type_name -> vtadmin.VSchema
- 14, // 67: vtadmin.GetVtctldsResponse.vtctlds:type_name -> vtadmin.Vtctld
- 134, // 68: vtadmin.GetWorkflowsResponse.workflows_by_cluster:type_name -> vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry
- 164, // 69: vtadmin.LaunchSchemaMigrationRequest.request:type_name -> vtctldata.LaunchSchemaMigrationRequest
- 165, // 70: vtadmin.MaterializeCreateRequest.request:type_name -> vtctldata.MaterializeCreateRequest
- 166, // 71: vtadmin.MoveTablesCompleteRequest.request:type_name -> vtctldata.MoveTablesCompleteRequest
- 167, // 72: vtadmin.MoveTablesCreateRequest.request:type_name -> vtctldata.MoveTablesCreateRequest
- 160, // 73: vtadmin.PingTabletRequest.alias:type_name -> topodata.TabletAlias
- 1, // 74: vtadmin.PingTabletResponse.cluster:type_name -> vtadmin.Cluster
- 168, // 75: vtadmin.PlannedFailoverShardRequest.options:type_name -> vtctldata.PlannedReparentShardRequest
- 1, // 76: vtadmin.PlannedFailoverShardResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 77: vtadmin.PlannedFailoverShardResponse.promoted_primary:type_name -> topodata.TabletAlias
- 162, // 78: vtadmin.PlannedFailoverShardResponse.events:type_name -> logutil.Event
- 160, // 79: vtadmin.RefreshStateRequest.alias:type_name -> topodata.TabletAlias
- 1, // 80: vtadmin.RefreshStateResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 81: vtadmin.ReloadSchemasRequest.tablets:type_name -> topodata.TabletAlias
- 135, // 82: vtadmin.ReloadSchemasResponse.keyspace_results:type_name -> vtadmin.ReloadSchemasResponse.KeyspaceResult
- 136, // 83: vtadmin.ReloadSchemasResponse.shard_results:type_name -> vtadmin.ReloadSchemasResponse.ShardResult
- 137, // 84: vtadmin.ReloadSchemasResponse.tablet_results:type_name -> vtadmin.ReloadSchemasResponse.TabletResult
- 162, // 85: vtadmin.ReloadSchemaShardResponse.events:type_name -> logutil.Event
- 160, // 86: vtadmin.RefreshTabletReplicationSourceRequest.alias:type_name -> topodata.TabletAlias
- 160, // 87: vtadmin.RefreshTabletReplicationSourceResponse.primary:type_name -> topodata.TabletAlias
- 1, // 88: vtadmin.RefreshTabletReplicationSourceResponse.cluster:type_name -> vtadmin.Cluster
- 169, // 89: vtadmin.RetrySchemaMigrationRequest.request:type_name -> vtctldata.RetrySchemaMigrationRequest
- 160, // 90: vtadmin.RunHealthCheckRequest.alias:type_name -> topodata.TabletAlias
- 1, // 91: vtadmin.RunHealthCheckResponse.cluster:type_name -> vtadmin.Cluster
- 170, // 92: vtadmin.ReshardCreateRequest.request:type_name -> vtctldata.ReshardCreateRequest
- 160, // 93: vtadmin.SetReadOnlyRequest.alias:type_name -> topodata.TabletAlias
- 160, // 94: vtadmin.SetReadWriteRequest.alias:type_name -> topodata.TabletAlias
- 160, // 95: vtadmin.StartReplicationRequest.alias:type_name -> topodata.TabletAlias
- 1, // 96: vtadmin.StartReplicationResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 97: vtadmin.StopReplicationRequest.alias:type_name -> topodata.TabletAlias
- 1, // 98: vtadmin.StopReplicationResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 99: vtadmin.TabletExternallyPromotedRequest.alias:type_name -> topodata.TabletAlias
- 1, // 100: vtadmin.TabletExternallyPromotedResponse.cluster:type_name -> vtadmin.Cluster
- 160, // 101: vtadmin.TabletExternallyPromotedResponse.new_primary:type_name -> topodata.TabletAlias
- 160, // 102: vtadmin.TabletExternallyPromotedResponse.old_primary:type_name -> topodata.TabletAlias
- 160, // 103: vtadmin.TabletExternallyReparentedRequest.alias:type_name -> topodata.TabletAlias
- 171, // 104: vtadmin.VDiffCreateRequest.request:type_name -> vtctldata.VDiffCreateRequest
- 172, // 105: vtadmin.VDiffShowRequest.request:type_name -> vtctldata.VDiffShowRequest
- 121, // 106: vtadmin.VDiffShardReport.progress:type_name -> vtadmin.VDiffProgress
- 138, // 107: vtadmin.VDiffShowResponse.shard_report:type_name -> vtadmin.VDiffShowResponse.ShardReportEntry
- 173, // 108: vtadmin.ClusterCellsAliases.AliasesEntry.value:type_name -> topodata.CellsAlias
- 145, // 109: vtadmin.Keyspace.ShardsEntry.value:type_name -> vtctldata.Shard
- 130, // 110: vtadmin.Schema.TableSizesEntry.value:type_name -> vtadmin.Schema.TableSize
- 131, // 111: vtadmin.Schema.TableSize.by_shard:type_name -> vtadmin.Schema.TableSize.ByShardEntry
- 129, // 112: vtadmin.Schema.TableSize.ByShardEntry.value:type_name -> vtadmin.Schema.ShardTableSize
- 174, // 113: vtadmin.GetSchemaMigrationsRequest.ClusterRequest.request:type_name -> vtctldata.GetSchemaMigrationsRequest
- 175, // 114: vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> vtctldata.GetSrvKeyspacesResponse
- 6, // 115: vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry.value:type_name -> vtadmin.ClusterWorkflows
- 7, // 116: vtadmin.ReloadSchemasResponse.KeyspaceResult.keyspace:type_name -> vtadmin.Keyspace
- 162, // 117: vtadmin.ReloadSchemasResponse.KeyspaceResult.events:type_name -> logutil.Event
- 10, // 118: vtadmin.ReloadSchemasResponse.ShardResult.shard:type_name -> vtadmin.Shard
- 162, // 119: vtadmin.ReloadSchemasResponse.ShardResult.events:type_name -> logutil.Event
- 12, // 120: vtadmin.ReloadSchemasResponse.TabletResult.tablet:type_name -> vtadmin.Tablet
- 122, // 121: vtadmin.VDiffShowResponse.ShardReportEntry.value:type_name -> vtadmin.VDiffShardReport
- 19, // 122: vtadmin.VTAdmin.ApplySchema:input_type -> vtadmin.ApplySchemaRequest
- 20, // 123: vtadmin.VTAdmin.CancelSchemaMigration:input_type -> vtadmin.CancelSchemaMigrationRequest
- 21, // 124: vtadmin.VTAdmin.CleanupSchemaMigration:input_type -> vtadmin.CleanupSchemaMigrationRequest
- 22, // 125: vtadmin.VTAdmin.CompleteSchemaMigration:input_type -> vtadmin.CompleteSchemaMigrationRequest
- 23, // 126: vtadmin.VTAdmin.ConcludeTransaction:input_type -> vtadmin.ConcludeTransactionRequest
- 24, // 127: vtadmin.VTAdmin.CreateKeyspace:input_type -> vtadmin.CreateKeyspaceRequest
- 26, // 128: vtadmin.VTAdmin.CreateShard:input_type -> vtadmin.CreateShardRequest
- 27, // 129: vtadmin.VTAdmin.DeleteKeyspace:input_type -> vtadmin.DeleteKeyspaceRequest
- 28, // 130: vtadmin.VTAdmin.DeleteShards:input_type -> vtadmin.DeleteShardsRequest
- 29, // 131: vtadmin.VTAdmin.DeleteTablet:input_type -> vtadmin.DeleteTabletRequest
- 31, // 132: vtadmin.VTAdmin.EmergencyFailoverShard:input_type -> vtadmin.EmergencyFailoverShardRequest
- 33, // 133: vtadmin.VTAdmin.FindSchema:input_type -> vtadmin.FindSchemaRequest
- 34, // 134: vtadmin.VTAdmin.GetBackups:input_type -> vtadmin.GetBackupsRequest
- 36, // 135: vtadmin.VTAdmin.GetCellInfos:input_type -> vtadmin.GetCellInfosRequest
- 38, // 136: vtadmin.VTAdmin.GetCellsAliases:input_type -> vtadmin.GetCellsAliasesRequest
- 40, // 137: vtadmin.VTAdmin.GetClusters:input_type -> vtadmin.GetClustersRequest
- 42, // 138: vtadmin.VTAdmin.GetFullStatus:input_type -> vtadmin.GetFullStatusRequest
- 43, // 139: vtadmin.VTAdmin.GetGates:input_type -> vtadmin.GetGatesRequest
- 45, // 140: vtadmin.VTAdmin.GetKeyspace:input_type -> vtadmin.GetKeyspaceRequest
- 46, // 141: vtadmin.VTAdmin.GetKeyspaces:input_type -> vtadmin.GetKeyspacesRequest
- 48, // 142: vtadmin.VTAdmin.GetSchema:input_type -> vtadmin.GetSchemaRequest
- 49, // 143: vtadmin.VTAdmin.GetSchemas:input_type -> vtadmin.GetSchemasRequest
- 51, // 144: vtadmin.VTAdmin.GetSchemaMigrations:input_type -> vtadmin.GetSchemaMigrationsRequest
- 53, // 145: vtadmin.VTAdmin.GetShardReplicationPositions:input_type -> vtadmin.GetShardReplicationPositionsRequest
- 55, // 146: vtadmin.VTAdmin.GetSrvKeyspace:input_type -> vtadmin.GetSrvKeyspaceRequest
- 56, // 147: vtadmin.VTAdmin.GetSrvKeyspaces:input_type -> vtadmin.GetSrvKeyspacesRequest
- 58, // 148: vtadmin.VTAdmin.GetSrvVSchema:input_type -> vtadmin.GetSrvVSchemaRequest
- 59, // 149: vtadmin.VTAdmin.GetSrvVSchemas:input_type -> vtadmin.GetSrvVSchemasRequest
- 62, // 150: vtadmin.VTAdmin.GetTablet:input_type -> vtadmin.GetTabletRequest
- 63, // 151: vtadmin.VTAdmin.GetTablets:input_type -> vtadmin.GetTabletsRequest
- 65, // 152: vtadmin.VTAdmin.GetTopologyPath:input_type -> vtadmin.GetTopologyPathRequest
- 66, // 153: vtadmin.VTAdmin.GetUnresolvedTransactions:input_type -> vtadmin.GetUnresolvedTransactionsRequest
- 67, // 154: vtadmin.VTAdmin.GetVSchema:input_type -> vtadmin.GetVSchemaRequest
- 68, // 155: vtadmin.VTAdmin.GetVSchemas:input_type -> vtadmin.GetVSchemasRequest
- 70, // 156: vtadmin.VTAdmin.GetVtctlds:input_type -> vtadmin.GetVtctldsRequest
- 72, // 157: vtadmin.VTAdmin.GetWorkflow:input_type -> vtadmin.GetWorkflowRequest
- 76, // 158: vtadmin.VTAdmin.GetWorkflows:input_type -> vtadmin.GetWorkflowsRequest
- 73, // 159: vtadmin.VTAdmin.GetWorkflowStatus:input_type -> vtadmin.GetWorkflowStatusRequest
- 74, // 160: vtadmin.VTAdmin.StartWorkflow:input_type -> vtadmin.StartWorkflowRequest
- 75, // 161: vtadmin.VTAdmin.StopWorkflow:input_type -> vtadmin.StopWorkflowRequest
- 78, // 162: vtadmin.VTAdmin.LaunchSchemaMigration:input_type -> vtadmin.LaunchSchemaMigrationRequest
- 80, // 163: vtadmin.VTAdmin.MoveTablesComplete:input_type -> vtadmin.MoveTablesCompleteRequest
- 81, // 164: vtadmin.VTAdmin.MoveTablesCreate:input_type -> vtadmin.MoveTablesCreateRequest
- 79, // 165: vtadmin.VTAdmin.MaterializeCreate:input_type -> vtadmin.MaterializeCreateRequest
- 82, // 166: vtadmin.VTAdmin.PingTablet:input_type -> vtadmin.PingTabletRequest
- 84, // 167: vtadmin.VTAdmin.PlannedFailoverShard:input_type -> vtadmin.PlannedFailoverShardRequest
- 86, // 168: vtadmin.VTAdmin.RebuildKeyspaceGraph:input_type -> vtadmin.RebuildKeyspaceGraphRequest
- 88, // 169: vtadmin.VTAdmin.RefreshState:input_type -> vtadmin.RefreshStateRequest
- 94, // 170: vtadmin.VTAdmin.RefreshTabletReplicationSource:input_type -> vtadmin.RefreshTabletReplicationSourceRequest
- 90, // 171: vtadmin.VTAdmin.ReloadSchemas:input_type -> vtadmin.ReloadSchemasRequest
- 92, // 172: vtadmin.VTAdmin.ReloadSchemaShard:input_type -> vtadmin.ReloadSchemaShardRequest
- 96, // 173: vtadmin.VTAdmin.RemoveKeyspaceCell:input_type -> vtadmin.RemoveKeyspaceCellRequest
- 98, // 174: vtadmin.VTAdmin.RetrySchemaMigration:input_type -> vtadmin.RetrySchemaMigrationRequest
- 99, // 175: vtadmin.VTAdmin.RunHealthCheck:input_type -> vtadmin.RunHealthCheckRequest
- 101, // 176: vtadmin.VTAdmin.ReshardCreate:input_type -> vtadmin.ReshardCreateRequest
- 102, // 177: vtadmin.VTAdmin.SetReadOnly:input_type -> vtadmin.SetReadOnlyRequest
- 104, // 178: vtadmin.VTAdmin.SetReadWrite:input_type -> vtadmin.SetReadWriteRequest
- 106, // 179: vtadmin.VTAdmin.StartReplication:input_type -> vtadmin.StartReplicationRequest
- 108, // 180: vtadmin.VTAdmin.StopReplication:input_type -> vtadmin.StopReplicationRequest
- 110, // 181: vtadmin.VTAdmin.TabletExternallyPromoted:input_type -> vtadmin.TabletExternallyPromotedRequest
- 113, // 182: vtadmin.VTAdmin.Validate:input_type -> vtadmin.ValidateRequest
- 114, // 183: vtadmin.VTAdmin.ValidateKeyspace:input_type -> vtadmin.ValidateKeyspaceRequest
- 115, // 184: vtadmin.VTAdmin.ValidateSchemaKeyspace:input_type -> vtadmin.ValidateSchemaKeyspaceRequest
- 116, // 185: vtadmin.VTAdmin.ValidateShard:input_type -> vtadmin.ValidateShardRequest
- 117, // 186: vtadmin.VTAdmin.ValidateVersionKeyspace:input_type -> vtadmin.ValidateVersionKeyspaceRequest
- 118, // 187: vtadmin.VTAdmin.ValidateVersionShard:input_type -> vtadmin.ValidateVersionShardRequest
- 119, // 188: vtadmin.VTAdmin.VDiffCreate:input_type -> vtadmin.VDiffCreateRequest
- 120, // 189: vtadmin.VTAdmin.VDiffShow:input_type -> vtadmin.VDiffShowRequest
- 124, // 190: vtadmin.VTAdmin.VTExplain:input_type -> vtadmin.VTExplainRequest
- 17, // 191: vtadmin.VTAdmin.WorkflowDelete:input_type -> vtadmin.WorkflowDeleteRequest
- 18, // 192: vtadmin.VTAdmin.WorkflowSwitchTraffic:input_type -> vtadmin.WorkflowSwitchTrafficRequest
- 176, // 193: vtadmin.VTAdmin.ApplySchema:output_type -> vtctldata.ApplySchemaResponse
- 177, // 194: vtadmin.VTAdmin.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse
- 178, // 195: vtadmin.VTAdmin.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse
- 179, // 196: vtadmin.VTAdmin.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse
- 180, // 197: vtadmin.VTAdmin.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse
- 25, // 198: vtadmin.VTAdmin.CreateKeyspace:output_type -> vtadmin.CreateKeyspaceResponse
- 181, // 199: vtadmin.VTAdmin.CreateShard:output_type -> vtctldata.CreateShardResponse
- 182, // 200: vtadmin.VTAdmin.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse
- 183, // 201: vtadmin.VTAdmin.DeleteShards:output_type -> vtctldata.DeleteShardsResponse
- 30, // 202: vtadmin.VTAdmin.DeleteTablet:output_type -> vtadmin.DeleteTabletResponse
- 32, // 203: vtadmin.VTAdmin.EmergencyFailoverShard:output_type -> vtadmin.EmergencyFailoverShardResponse
- 8, // 204: vtadmin.VTAdmin.FindSchema:output_type -> vtadmin.Schema
- 35, // 205: vtadmin.VTAdmin.GetBackups:output_type -> vtadmin.GetBackupsResponse
- 37, // 206: vtadmin.VTAdmin.GetCellInfos:output_type -> vtadmin.GetCellInfosResponse
- 39, // 207: vtadmin.VTAdmin.GetCellsAliases:output_type -> vtadmin.GetCellsAliasesResponse
- 41, // 208: vtadmin.VTAdmin.GetClusters:output_type -> vtadmin.GetClustersResponse
- 184, // 209: vtadmin.VTAdmin.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse
- 44, // 210: vtadmin.VTAdmin.GetGates:output_type -> vtadmin.GetGatesResponse
- 7, // 211: vtadmin.VTAdmin.GetKeyspace:output_type -> vtadmin.Keyspace
- 47, // 212: vtadmin.VTAdmin.GetKeyspaces:output_type -> vtadmin.GetKeyspacesResponse
- 8, // 213: vtadmin.VTAdmin.GetSchema:output_type -> vtadmin.Schema
- 50, // 214: vtadmin.VTAdmin.GetSchemas:output_type -> vtadmin.GetSchemasResponse
- 52, // 215: vtadmin.VTAdmin.GetSchemaMigrations:output_type -> vtadmin.GetSchemaMigrationsResponse
- 54, // 216: vtadmin.VTAdmin.GetShardReplicationPositions:output_type -> vtadmin.GetShardReplicationPositionsResponse
- 175, // 217: vtadmin.VTAdmin.GetSrvKeyspace:output_type -> vtctldata.GetSrvKeyspacesResponse
- 57, // 218: vtadmin.VTAdmin.GetSrvKeyspaces:output_type -> vtadmin.GetSrvKeyspacesResponse
- 11, // 219: vtadmin.VTAdmin.GetSrvVSchema:output_type -> vtadmin.SrvVSchema
- 60, // 220: vtadmin.VTAdmin.GetSrvVSchemas:output_type -> vtadmin.GetSrvVSchemasResponse
- 12, // 221: vtadmin.VTAdmin.GetTablet:output_type -> vtadmin.Tablet
- 64, // 222: vtadmin.VTAdmin.GetTablets:output_type -> vtadmin.GetTabletsResponse
- 185, // 223: vtadmin.VTAdmin.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse
- 186, // 224: vtadmin.VTAdmin.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse
- 13, // 225: vtadmin.VTAdmin.GetVSchema:output_type -> vtadmin.VSchema
- 69, // 226: vtadmin.VTAdmin.GetVSchemas:output_type -> vtadmin.GetVSchemasResponse
- 71, // 227: vtadmin.VTAdmin.GetVtctlds:output_type -> vtadmin.GetVtctldsResponse
- 16, // 228: vtadmin.VTAdmin.GetWorkflow:output_type -> vtadmin.Workflow
- 77, // 229: vtadmin.VTAdmin.GetWorkflows:output_type -> vtadmin.GetWorkflowsResponse
- 187, // 230: vtadmin.VTAdmin.GetWorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse
- 188, // 231: vtadmin.VTAdmin.StartWorkflow:output_type -> vtctldata.WorkflowUpdateResponse
- 188, // 232: vtadmin.VTAdmin.StopWorkflow:output_type -> vtctldata.WorkflowUpdateResponse
- 189, // 233: vtadmin.VTAdmin.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse
- 190, // 234: vtadmin.VTAdmin.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse
- 187, // 235: vtadmin.VTAdmin.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse
- 191, // 236: vtadmin.VTAdmin.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse
- 83, // 237: vtadmin.VTAdmin.PingTablet:output_type -> vtadmin.PingTabletResponse
- 85, // 238: vtadmin.VTAdmin.PlannedFailoverShard:output_type -> vtadmin.PlannedFailoverShardResponse
- 87, // 239: vtadmin.VTAdmin.RebuildKeyspaceGraph:output_type -> vtadmin.RebuildKeyspaceGraphResponse
- 89, // 240: vtadmin.VTAdmin.RefreshState:output_type -> vtadmin.RefreshStateResponse
- 95, // 241: vtadmin.VTAdmin.RefreshTabletReplicationSource:output_type -> vtadmin.RefreshTabletReplicationSourceResponse
- 91, // 242: vtadmin.VTAdmin.ReloadSchemas:output_type -> vtadmin.ReloadSchemasResponse
- 93, // 243: vtadmin.VTAdmin.ReloadSchemaShard:output_type -> vtadmin.ReloadSchemaShardResponse
- 97, // 244: vtadmin.VTAdmin.RemoveKeyspaceCell:output_type -> vtadmin.RemoveKeyspaceCellResponse
- 192, // 245: vtadmin.VTAdmin.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse
- 100, // 246: vtadmin.VTAdmin.RunHealthCheck:output_type -> vtadmin.RunHealthCheckResponse
- 187, // 247: vtadmin.VTAdmin.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse
- 103, // 248: vtadmin.VTAdmin.SetReadOnly:output_type -> vtadmin.SetReadOnlyResponse
- 105, // 249: vtadmin.VTAdmin.SetReadWrite:output_type -> vtadmin.SetReadWriteResponse
- 107, // 250: vtadmin.VTAdmin.StartReplication:output_type -> vtadmin.StartReplicationResponse
- 109, // 251: vtadmin.VTAdmin.StopReplication:output_type -> vtadmin.StopReplicationResponse
- 111, // 252: vtadmin.VTAdmin.TabletExternallyPromoted:output_type -> vtadmin.TabletExternallyPromotedResponse
- 193, // 253: vtadmin.VTAdmin.Validate:output_type -> vtctldata.ValidateResponse
- 194, // 254: vtadmin.VTAdmin.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse
- 195, // 255: vtadmin.VTAdmin.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse
- 196, // 256: vtadmin.VTAdmin.ValidateShard:output_type -> vtctldata.ValidateShardResponse
- 197, // 257: vtadmin.VTAdmin.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse
- 198, // 258: vtadmin.VTAdmin.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse
- 199, // 259: vtadmin.VTAdmin.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse
- 123, // 260: vtadmin.VTAdmin.VDiffShow:output_type -> vtadmin.VDiffShowResponse
- 125, // 261: vtadmin.VTAdmin.VTExplain:output_type -> vtadmin.VTExplainResponse
- 200, // 262: vtadmin.VTAdmin.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse
- 201, // 263: vtadmin.VTAdmin.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse
- 193, // [193:264] is the sub-list for method output_type
- 122, // [122:193] is the sub-list for method input_type
- 122, // [122:122] is the sub-list for extension type_name
- 122, // [122:122] is the sub-list for extension extendee
- 0, // [0:122] is the sub-list for field type_name
+ 165, // 66: vtadmin.GetTransactionInfoRequest.request:type_name -> vtctldata.GetTransactionInfoRequest
+ 13, // 67: vtadmin.GetVSchemasResponse.v_schemas:type_name -> vtadmin.VSchema
+ 14, // 68: vtadmin.GetVtctldsResponse.vtctlds:type_name -> vtadmin.Vtctld
+ 135, // 69: vtadmin.GetWorkflowsResponse.workflows_by_cluster:type_name -> vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry
+ 166, // 70: vtadmin.LaunchSchemaMigrationRequest.request:type_name -> vtctldata.LaunchSchemaMigrationRequest
+ 167, // 71: vtadmin.MaterializeCreateRequest.request:type_name -> vtctldata.MaterializeCreateRequest
+ 168, // 72: vtadmin.MoveTablesCompleteRequest.request:type_name -> vtctldata.MoveTablesCompleteRequest
+ 169, // 73: vtadmin.MoveTablesCreateRequest.request:type_name -> vtctldata.MoveTablesCreateRequest
+ 161, // 74: vtadmin.PingTabletRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 75: vtadmin.PingTabletResponse.cluster:type_name -> vtadmin.Cluster
+ 170, // 76: vtadmin.PlannedFailoverShardRequest.options:type_name -> vtctldata.PlannedReparentShardRequest
+ 1, // 77: vtadmin.PlannedFailoverShardResponse.cluster:type_name -> vtadmin.Cluster
+ 161, // 78: vtadmin.PlannedFailoverShardResponse.promoted_primary:type_name -> topodata.TabletAlias
+ 163, // 79: vtadmin.PlannedFailoverShardResponse.events:type_name -> logutil.Event
+ 161, // 80: vtadmin.RefreshStateRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 81: vtadmin.RefreshStateResponse.cluster:type_name -> vtadmin.Cluster
+ 161, // 82: vtadmin.ReloadSchemasRequest.tablets:type_name -> topodata.TabletAlias
+ 136, // 83: vtadmin.ReloadSchemasResponse.keyspace_results:type_name -> vtadmin.ReloadSchemasResponse.KeyspaceResult
+ 137, // 84: vtadmin.ReloadSchemasResponse.shard_results:type_name -> vtadmin.ReloadSchemasResponse.ShardResult
+ 138, // 85: vtadmin.ReloadSchemasResponse.tablet_results:type_name -> vtadmin.ReloadSchemasResponse.TabletResult
+ 163, // 86: vtadmin.ReloadSchemaShardResponse.events:type_name -> logutil.Event
+ 161, // 87: vtadmin.RefreshTabletReplicationSourceRequest.alias:type_name -> topodata.TabletAlias
+ 161, // 88: vtadmin.RefreshTabletReplicationSourceResponse.primary:type_name -> topodata.TabletAlias
+ 1, // 89: vtadmin.RefreshTabletReplicationSourceResponse.cluster:type_name -> vtadmin.Cluster
+ 171, // 90: vtadmin.RetrySchemaMigrationRequest.request:type_name -> vtctldata.RetrySchemaMigrationRequest
+ 161, // 91: vtadmin.RunHealthCheckRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 92: vtadmin.RunHealthCheckResponse.cluster:type_name -> vtadmin.Cluster
+ 172, // 93: vtadmin.ReshardCreateRequest.request:type_name -> vtctldata.ReshardCreateRequest
+ 161, // 94: vtadmin.SetReadOnlyRequest.alias:type_name -> topodata.TabletAlias
+ 161, // 95: vtadmin.SetReadWriteRequest.alias:type_name -> topodata.TabletAlias
+ 161, // 96: vtadmin.StartReplicationRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 97: vtadmin.StartReplicationResponse.cluster:type_name -> vtadmin.Cluster
+ 161, // 98: vtadmin.StopReplicationRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 99: vtadmin.StopReplicationResponse.cluster:type_name -> vtadmin.Cluster
+ 161, // 100: vtadmin.TabletExternallyPromotedRequest.alias:type_name -> topodata.TabletAlias
+ 1, // 101: vtadmin.TabletExternallyPromotedResponse.cluster:type_name -> vtadmin.Cluster
+ 161, // 102: vtadmin.TabletExternallyPromotedResponse.new_primary:type_name -> topodata.TabletAlias
+ 161, // 103: vtadmin.TabletExternallyPromotedResponse.old_primary:type_name -> topodata.TabletAlias
+ 161, // 104: vtadmin.TabletExternallyReparentedRequest.alias:type_name -> topodata.TabletAlias
+ 173, // 105: vtadmin.VDiffCreateRequest.request:type_name -> vtctldata.VDiffCreateRequest
+ 174, // 106: vtadmin.VDiffShowRequest.request:type_name -> vtctldata.VDiffShowRequest
+ 122, // 107: vtadmin.VDiffShardReport.progress:type_name -> vtadmin.VDiffProgress
+ 139, // 108: vtadmin.VDiffShowResponse.shard_report:type_name -> vtadmin.VDiffShowResponse.ShardReportEntry
+ 175, // 109: vtadmin.ClusterCellsAliases.AliasesEntry.value:type_name -> topodata.CellsAlias
+ 146, // 110: vtadmin.Keyspace.ShardsEntry.value:type_name -> vtctldata.Shard
+ 131, // 111: vtadmin.Schema.TableSizesEntry.value:type_name -> vtadmin.Schema.TableSize
+ 132, // 112: vtadmin.Schema.TableSize.by_shard:type_name -> vtadmin.Schema.TableSize.ByShardEntry
+ 130, // 113: vtadmin.Schema.TableSize.ByShardEntry.value:type_name -> vtadmin.Schema.ShardTableSize
+ 176, // 114: vtadmin.GetSchemaMigrationsRequest.ClusterRequest.request:type_name -> vtctldata.GetSchemaMigrationsRequest
+ 177, // 115: vtadmin.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> vtctldata.GetSrvKeyspacesResponse
+ 6, // 116: vtadmin.GetWorkflowsResponse.WorkflowsByClusterEntry.value:type_name -> vtadmin.ClusterWorkflows
+ 7, // 117: vtadmin.ReloadSchemasResponse.KeyspaceResult.keyspace:type_name -> vtadmin.Keyspace
+ 163, // 118: vtadmin.ReloadSchemasResponse.KeyspaceResult.events:type_name -> logutil.Event
+ 10, // 119: vtadmin.ReloadSchemasResponse.ShardResult.shard:type_name -> vtadmin.Shard
+ 163, // 120: vtadmin.ReloadSchemasResponse.ShardResult.events:type_name -> logutil.Event
+ 12, // 121: vtadmin.ReloadSchemasResponse.TabletResult.tablet:type_name -> vtadmin.Tablet
+ 123, // 122: vtadmin.VDiffShowResponse.ShardReportEntry.value:type_name -> vtadmin.VDiffShardReport
+ 19, // 123: vtadmin.VTAdmin.ApplySchema:input_type -> vtadmin.ApplySchemaRequest
+ 20, // 124: vtadmin.VTAdmin.CancelSchemaMigration:input_type -> vtadmin.CancelSchemaMigrationRequest
+ 21, // 125: vtadmin.VTAdmin.CleanupSchemaMigration:input_type -> vtadmin.CleanupSchemaMigrationRequest
+ 22, // 126: vtadmin.VTAdmin.CompleteSchemaMigration:input_type -> vtadmin.CompleteSchemaMigrationRequest
+ 23, // 127: vtadmin.VTAdmin.ConcludeTransaction:input_type -> vtadmin.ConcludeTransactionRequest
+ 24, // 128: vtadmin.VTAdmin.CreateKeyspace:input_type -> vtadmin.CreateKeyspaceRequest
+ 26, // 129: vtadmin.VTAdmin.CreateShard:input_type -> vtadmin.CreateShardRequest
+ 27, // 130: vtadmin.VTAdmin.DeleteKeyspace:input_type -> vtadmin.DeleteKeyspaceRequest
+ 28, // 131: vtadmin.VTAdmin.DeleteShards:input_type -> vtadmin.DeleteShardsRequest
+ 29, // 132: vtadmin.VTAdmin.DeleteTablet:input_type -> vtadmin.DeleteTabletRequest
+ 31, // 133: vtadmin.VTAdmin.EmergencyFailoverShard:input_type -> vtadmin.EmergencyFailoverShardRequest
+ 33, // 134: vtadmin.VTAdmin.FindSchema:input_type -> vtadmin.FindSchemaRequest
+ 34, // 135: vtadmin.VTAdmin.GetBackups:input_type -> vtadmin.GetBackupsRequest
+ 36, // 136: vtadmin.VTAdmin.GetCellInfos:input_type -> vtadmin.GetCellInfosRequest
+ 38, // 137: vtadmin.VTAdmin.GetCellsAliases:input_type -> vtadmin.GetCellsAliasesRequest
+ 40, // 138: vtadmin.VTAdmin.GetClusters:input_type -> vtadmin.GetClustersRequest
+ 42, // 139: vtadmin.VTAdmin.GetFullStatus:input_type -> vtadmin.GetFullStatusRequest
+ 43, // 140: vtadmin.VTAdmin.GetGates:input_type -> vtadmin.GetGatesRequest
+ 45, // 141: vtadmin.VTAdmin.GetKeyspace:input_type -> vtadmin.GetKeyspaceRequest
+ 46, // 142: vtadmin.VTAdmin.GetKeyspaces:input_type -> vtadmin.GetKeyspacesRequest
+ 48, // 143: vtadmin.VTAdmin.GetSchema:input_type -> vtadmin.GetSchemaRequest
+ 49, // 144: vtadmin.VTAdmin.GetSchemas:input_type -> vtadmin.GetSchemasRequest
+ 51, // 145: vtadmin.VTAdmin.GetSchemaMigrations:input_type -> vtadmin.GetSchemaMigrationsRequest
+ 53, // 146: vtadmin.VTAdmin.GetShardReplicationPositions:input_type -> vtadmin.GetShardReplicationPositionsRequest
+ 55, // 147: vtadmin.VTAdmin.GetSrvKeyspace:input_type -> vtadmin.GetSrvKeyspaceRequest
+ 56, // 148: vtadmin.VTAdmin.GetSrvKeyspaces:input_type -> vtadmin.GetSrvKeyspacesRequest
+ 58, // 149: vtadmin.VTAdmin.GetSrvVSchema:input_type -> vtadmin.GetSrvVSchemaRequest
+ 59, // 150: vtadmin.VTAdmin.GetSrvVSchemas:input_type -> vtadmin.GetSrvVSchemasRequest
+ 62, // 151: vtadmin.VTAdmin.GetTablet:input_type -> vtadmin.GetTabletRequest
+ 63, // 152: vtadmin.VTAdmin.GetTablets:input_type -> vtadmin.GetTabletsRequest
+ 65, // 153: vtadmin.VTAdmin.GetTopologyPath:input_type -> vtadmin.GetTopologyPathRequest
+ 66, // 154: vtadmin.VTAdmin.GetTransactionInfo:input_type -> vtadmin.GetTransactionInfoRequest
+ 67, // 155: vtadmin.VTAdmin.GetUnresolvedTransactions:input_type -> vtadmin.GetUnresolvedTransactionsRequest
+ 68, // 156: vtadmin.VTAdmin.GetVSchema:input_type -> vtadmin.GetVSchemaRequest
+ 69, // 157: vtadmin.VTAdmin.GetVSchemas:input_type -> vtadmin.GetVSchemasRequest
+ 71, // 158: vtadmin.VTAdmin.GetVtctlds:input_type -> vtadmin.GetVtctldsRequest
+ 73, // 159: vtadmin.VTAdmin.GetWorkflow:input_type -> vtadmin.GetWorkflowRequest
+ 77, // 160: vtadmin.VTAdmin.GetWorkflows:input_type -> vtadmin.GetWorkflowsRequest
+ 74, // 161: vtadmin.VTAdmin.GetWorkflowStatus:input_type -> vtadmin.GetWorkflowStatusRequest
+ 75, // 162: vtadmin.VTAdmin.StartWorkflow:input_type -> vtadmin.StartWorkflowRequest
+ 76, // 163: vtadmin.VTAdmin.StopWorkflow:input_type -> vtadmin.StopWorkflowRequest
+ 79, // 164: vtadmin.VTAdmin.LaunchSchemaMigration:input_type -> vtadmin.LaunchSchemaMigrationRequest
+ 81, // 165: vtadmin.VTAdmin.MoveTablesComplete:input_type -> vtadmin.MoveTablesCompleteRequest
+ 82, // 166: vtadmin.VTAdmin.MoveTablesCreate:input_type -> vtadmin.MoveTablesCreateRequest
+ 80, // 167: vtadmin.VTAdmin.MaterializeCreate:input_type -> vtadmin.MaterializeCreateRequest
+ 83, // 168: vtadmin.VTAdmin.PingTablet:input_type -> vtadmin.PingTabletRequest
+ 85, // 169: vtadmin.VTAdmin.PlannedFailoverShard:input_type -> vtadmin.PlannedFailoverShardRequest
+ 87, // 170: vtadmin.VTAdmin.RebuildKeyspaceGraph:input_type -> vtadmin.RebuildKeyspaceGraphRequest
+ 89, // 171: vtadmin.VTAdmin.RefreshState:input_type -> vtadmin.RefreshStateRequest
+ 95, // 172: vtadmin.VTAdmin.RefreshTabletReplicationSource:input_type -> vtadmin.RefreshTabletReplicationSourceRequest
+ 91, // 173: vtadmin.VTAdmin.ReloadSchemas:input_type -> vtadmin.ReloadSchemasRequest
+ 93, // 174: vtadmin.VTAdmin.ReloadSchemaShard:input_type -> vtadmin.ReloadSchemaShardRequest
+ 97, // 175: vtadmin.VTAdmin.RemoveKeyspaceCell:input_type -> vtadmin.RemoveKeyspaceCellRequest
+ 99, // 176: vtadmin.VTAdmin.RetrySchemaMigration:input_type -> vtadmin.RetrySchemaMigrationRequest
+ 100, // 177: vtadmin.VTAdmin.RunHealthCheck:input_type -> vtadmin.RunHealthCheckRequest
+ 102, // 178: vtadmin.VTAdmin.ReshardCreate:input_type -> vtadmin.ReshardCreateRequest
+ 103, // 179: vtadmin.VTAdmin.SetReadOnly:input_type -> vtadmin.SetReadOnlyRequest
+ 105, // 180: vtadmin.VTAdmin.SetReadWrite:input_type -> vtadmin.SetReadWriteRequest
+ 107, // 181: vtadmin.VTAdmin.StartReplication:input_type -> vtadmin.StartReplicationRequest
+ 109, // 182: vtadmin.VTAdmin.StopReplication:input_type -> vtadmin.StopReplicationRequest
+ 111, // 183: vtadmin.VTAdmin.TabletExternallyPromoted:input_type -> vtadmin.TabletExternallyPromotedRequest
+ 114, // 184: vtadmin.VTAdmin.Validate:input_type -> vtadmin.ValidateRequest
+ 115, // 185: vtadmin.VTAdmin.ValidateKeyspace:input_type -> vtadmin.ValidateKeyspaceRequest
+ 116, // 186: vtadmin.VTAdmin.ValidateSchemaKeyspace:input_type -> vtadmin.ValidateSchemaKeyspaceRequest
+ 117, // 187: vtadmin.VTAdmin.ValidateShard:input_type -> vtadmin.ValidateShardRequest
+ 118, // 188: vtadmin.VTAdmin.ValidateVersionKeyspace:input_type -> vtadmin.ValidateVersionKeyspaceRequest
+ 119, // 189: vtadmin.VTAdmin.ValidateVersionShard:input_type -> vtadmin.ValidateVersionShardRequest
+ 120, // 190: vtadmin.VTAdmin.VDiffCreate:input_type -> vtadmin.VDiffCreateRequest
+ 121, // 191: vtadmin.VTAdmin.VDiffShow:input_type -> vtadmin.VDiffShowRequest
+ 125, // 192: vtadmin.VTAdmin.VTExplain:input_type -> vtadmin.VTExplainRequest
+ 17, // 193: vtadmin.VTAdmin.WorkflowDelete:input_type -> vtadmin.WorkflowDeleteRequest
+ 18, // 194: vtadmin.VTAdmin.WorkflowSwitchTraffic:input_type -> vtadmin.WorkflowSwitchTrafficRequest
+ 178, // 195: vtadmin.VTAdmin.ApplySchema:output_type -> vtctldata.ApplySchemaResponse
+ 179, // 196: vtadmin.VTAdmin.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse
+ 180, // 197: vtadmin.VTAdmin.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse
+ 181, // 198: vtadmin.VTAdmin.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse
+ 182, // 199: vtadmin.VTAdmin.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse
+ 25, // 200: vtadmin.VTAdmin.CreateKeyspace:output_type -> vtadmin.CreateKeyspaceResponse
+ 183, // 201: vtadmin.VTAdmin.CreateShard:output_type -> vtctldata.CreateShardResponse
+ 184, // 202: vtadmin.VTAdmin.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse
+ 185, // 203: vtadmin.VTAdmin.DeleteShards:output_type -> vtctldata.DeleteShardsResponse
+ 30, // 204: vtadmin.VTAdmin.DeleteTablet:output_type -> vtadmin.DeleteTabletResponse
+ 32, // 205: vtadmin.VTAdmin.EmergencyFailoverShard:output_type -> vtadmin.EmergencyFailoverShardResponse
+ 8, // 206: vtadmin.VTAdmin.FindSchema:output_type -> vtadmin.Schema
+ 35, // 207: vtadmin.VTAdmin.GetBackups:output_type -> vtadmin.GetBackupsResponse
+ 37, // 208: vtadmin.VTAdmin.GetCellInfos:output_type -> vtadmin.GetCellInfosResponse
+ 39, // 209: vtadmin.VTAdmin.GetCellsAliases:output_type -> vtadmin.GetCellsAliasesResponse
+ 41, // 210: vtadmin.VTAdmin.GetClusters:output_type -> vtadmin.GetClustersResponse
+ 186, // 211: vtadmin.VTAdmin.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse
+ 44, // 212: vtadmin.VTAdmin.GetGates:output_type -> vtadmin.GetGatesResponse
+ 7, // 213: vtadmin.VTAdmin.GetKeyspace:output_type -> vtadmin.Keyspace
+ 47, // 214: vtadmin.VTAdmin.GetKeyspaces:output_type -> vtadmin.GetKeyspacesResponse
+ 8, // 215: vtadmin.VTAdmin.GetSchema:output_type -> vtadmin.Schema
+ 50, // 216: vtadmin.VTAdmin.GetSchemas:output_type -> vtadmin.GetSchemasResponse
+ 52, // 217: vtadmin.VTAdmin.GetSchemaMigrations:output_type -> vtadmin.GetSchemaMigrationsResponse
+ 54, // 218: vtadmin.VTAdmin.GetShardReplicationPositions:output_type -> vtadmin.GetShardReplicationPositionsResponse
+ 177, // 219: vtadmin.VTAdmin.GetSrvKeyspace:output_type -> vtctldata.GetSrvKeyspacesResponse
+ 57, // 220: vtadmin.VTAdmin.GetSrvKeyspaces:output_type -> vtadmin.GetSrvKeyspacesResponse
+ 11, // 221: vtadmin.VTAdmin.GetSrvVSchema:output_type -> vtadmin.SrvVSchema
+ 60, // 222: vtadmin.VTAdmin.GetSrvVSchemas:output_type -> vtadmin.GetSrvVSchemasResponse
+ 12, // 223: vtadmin.VTAdmin.GetTablet:output_type -> vtadmin.Tablet
+ 64, // 224: vtadmin.VTAdmin.GetTablets:output_type -> vtadmin.GetTabletsResponse
+ 187, // 225: vtadmin.VTAdmin.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse
+ 188, // 226: vtadmin.VTAdmin.GetTransactionInfo:output_type -> vtctldata.GetTransactionInfoResponse
+ 189, // 227: vtadmin.VTAdmin.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse
+ 13, // 228: vtadmin.VTAdmin.GetVSchema:output_type -> vtadmin.VSchema
+ 70, // 229: vtadmin.VTAdmin.GetVSchemas:output_type -> vtadmin.GetVSchemasResponse
+ 72, // 230: vtadmin.VTAdmin.GetVtctlds:output_type -> vtadmin.GetVtctldsResponse
+ 16, // 231: vtadmin.VTAdmin.GetWorkflow:output_type -> vtadmin.Workflow
+ 78, // 232: vtadmin.VTAdmin.GetWorkflows:output_type -> vtadmin.GetWorkflowsResponse
+ 190, // 233: vtadmin.VTAdmin.GetWorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse
+ 191, // 234: vtadmin.VTAdmin.StartWorkflow:output_type -> vtctldata.WorkflowUpdateResponse
+ 191, // 235: vtadmin.VTAdmin.StopWorkflow:output_type -> vtctldata.WorkflowUpdateResponse
+ 192, // 236: vtadmin.VTAdmin.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse
+ 193, // 237: vtadmin.VTAdmin.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse
+ 190, // 238: vtadmin.VTAdmin.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse
+ 194, // 239: vtadmin.VTAdmin.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse
+ 84, // 240: vtadmin.VTAdmin.PingTablet:output_type -> vtadmin.PingTabletResponse
+ 86, // 241: vtadmin.VTAdmin.PlannedFailoverShard:output_type -> vtadmin.PlannedFailoverShardResponse
+ 88, // 242: vtadmin.VTAdmin.RebuildKeyspaceGraph:output_type -> vtadmin.RebuildKeyspaceGraphResponse
+ 90, // 243: vtadmin.VTAdmin.RefreshState:output_type -> vtadmin.RefreshStateResponse
+ 96, // 244: vtadmin.VTAdmin.RefreshTabletReplicationSource:output_type -> vtadmin.RefreshTabletReplicationSourceResponse
+ 92, // 245: vtadmin.VTAdmin.ReloadSchemas:output_type -> vtadmin.ReloadSchemasResponse
+ 94, // 246: vtadmin.VTAdmin.ReloadSchemaShard:output_type -> vtadmin.ReloadSchemaShardResponse
+ 98, // 247: vtadmin.VTAdmin.RemoveKeyspaceCell:output_type -> vtadmin.RemoveKeyspaceCellResponse
+ 195, // 248: vtadmin.VTAdmin.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse
+ 101, // 249: vtadmin.VTAdmin.RunHealthCheck:output_type -> vtadmin.RunHealthCheckResponse
+ 190, // 250: vtadmin.VTAdmin.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse
+ 104, // 251: vtadmin.VTAdmin.SetReadOnly:output_type -> vtadmin.SetReadOnlyResponse
+ 106, // 252: vtadmin.VTAdmin.SetReadWrite:output_type -> vtadmin.SetReadWriteResponse
+ 108, // 253: vtadmin.VTAdmin.StartReplication:output_type -> vtadmin.StartReplicationResponse
+ 110, // 254: vtadmin.VTAdmin.StopReplication:output_type -> vtadmin.StopReplicationResponse
+ 112, // 255: vtadmin.VTAdmin.TabletExternallyPromoted:output_type -> vtadmin.TabletExternallyPromotedResponse
+ 196, // 256: vtadmin.VTAdmin.Validate:output_type -> vtctldata.ValidateResponse
+ 197, // 257: vtadmin.VTAdmin.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse
+ 198, // 258: vtadmin.VTAdmin.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse
+ 199, // 259: vtadmin.VTAdmin.ValidateShard:output_type -> vtctldata.ValidateShardResponse
+ 200, // 260: vtadmin.VTAdmin.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse
+ 201, // 261: vtadmin.VTAdmin.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse
+ 202, // 262: vtadmin.VTAdmin.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse
+ 124, // 263: vtadmin.VTAdmin.VDiffShow:output_type -> vtadmin.VDiffShowResponse
+ 126, // 264: vtadmin.VTAdmin.VTExplain:output_type -> vtadmin.VTExplainResponse
+ 203, // 265: vtadmin.VTAdmin.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse
+ 204, // 266: vtadmin.VTAdmin.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse
+ 195, // [195:267] is the sub-list for method output_type
+ 123, // [123:195] is the sub-list for method input_type
+ 123, // [123:123] is the sub-list for extension type_name
+ 123, // [123:123] is the sub-list for extension extendee
+ 0, // [0:123] is the sub-list for field type_name
}
func init() { file_vtadmin_proto_init() }
@@ -10398,7 +10473,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsRequest); i {
+ switch v := v.(*GetTransactionInfoRequest); i {
case 0:
return &v.state
case 1:
@@ -10410,7 +10485,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaRequest); i {
+ switch v := v.(*GetUnresolvedTransactionsRequest); i {
case 0:
return &v.state
case 1:
@@ -10422,7 +10497,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[67].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemasRequest); i {
+ switch v := v.(*GetVSchemaRequest); i {
case 0:
return &v.state
case 1:
@@ -10434,7 +10509,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemasResponse); i {
+ switch v := v.(*GetVSchemasRequest); i {
case 0:
return &v.state
case 1:
@@ -10446,7 +10521,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[69].Exporter = func(v any, i int) any {
- switch v := v.(*GetVtctldsRequest); i {
+ switch v := v.(*GetVSchemasResponse); i {
case 0:
return &v.state
case 1:
@@ -10458,7 +10533,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[70].Exporter = func(v any, i int) any {
- switch v := v.(*GetVtctldsResponse); i {
+ switch v := v.(*GetVtctldsRequest); i {
case 0:
return &v.state
case 1:
@@ -10470,7 +10545,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[71].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowRequest); i {
+ switch v := v.(*GetVtctldsResponse); i {
case 0:
return &v.state
case 1:
@@ -10482,7 +10557,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[72].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowStatusRequest); i {
+ switch v := v.(*GetWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10494,7 +10569,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[73].Exporter = func(v any, i int) any {
- switch v := v.(*StartWorkflowRequest); i {
+ switch v := v.(*GetWorkflowStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -10506,7 +10581,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[74].Exporter = func(v any, i int) any {
- switch v := v.(*StopWorkflowRequest); i {
+ switch v := v.(*StartWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10518,7 +10593,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[75].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsRequest); i {
+ switch v := v.(*StopWorkflowRequest); i {
case 0:
return &v.state
case 1:
@@ -10530,7 +10605,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[76].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsResponse); i {
+ switch v := v.(*GetWorkflowsRequest); i {
case 0:
return &v.state
case 1:
@@ -10542,7 +10617,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[77].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationRequest); i {
+ switch v := v.(*GetWorkflowsResponse); i {
case 0:
return &v.state
case 1:
@@ -10554,7 +10629,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[78].Exporter = func(v any, i int) any {
- switch v := v.(*MaterializeCreateRequest); i {
+ switch v := v.(*LaunchSchemaMigrationRequest); i {
case 0:
return &v.state
case 1:
@@ -10566,7 +10641,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[79].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCompleteRequest); i {
+ switch v := v.(*MaterializeCreateRequest); i {
case 0:
return &v.state
case 1:
@@ -10578,7 +10653,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[80].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCreateRequest); i {
+ switch v := v.(*MoveTablesCompleteRequest); i {
case 0:
return &v.state
case 1:
@@ -10590,7 +10665,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[81].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletRequest); i {
+ switch v := v.(*MoveTablesCreateRequest); i {
case 0:
return &v.state
case 1:
@@ -10602,7 +10677,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[82].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletResponse); i {
+ switch v := v.(*PingTabletRequest); i {
case 0:
return &v.state
case 1:
@@ -10614,7 +10689,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[83].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedFailoverShardRequest); i {
+ switch v := v.(*PingTabletResponse); i {
case 0:
return &v.state
case 1:
@@ -10626,7 +10701,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedFailoverShardResponse); i {
+ switch v := v.(*PlannedFailoverShardRequest); i {
case 0:
return &v.state
case 1:
@@ -10638,7 +10713,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphRequest); i {
+ switch v := v.(*PlannedFailoverShardResponse); i {
case 0:
return &v.state
case 1:
@@ -10650,7 +10725,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphResponse); i {
+ switch v := v.(*RebuildKeyspaceGraphRequest); i {
case 0:
return &v.state
case 1:
@@ -10662,7 +10737,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateRequest); i {
+ switch v := v.(*RebuildKeyspaceGraphResponse); i {
case 0:
return &v.state
case 1:
@@ -10674,7 +10749,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateResponse); i {
+ switch v := v.(*RefreshStateRequest); i {
case 0:
return &v.state
case 1:
@@ -10686,7 +10761,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasRequest); i {
+ switch v := v.(*RefreshStateResponse); i {
case 0:
return &v.state
case 1:
@@ -10698,7 +10773,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasResponse); i {
+ switch v := v.(*ReloadSchemasRequest); i {
case 0:
return &v.state
case 1:
@@ -10710,7 +10785,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardRequest); i {
+ switch v := v.(*ReloadSchemasResponse); i {
case 0:
return &v.state
case 1:
@@ -10722,7 +10797,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardResponse); i {
+ switch v := v.(*ReloadSchemaShardRequest); i {
case 0:
return &v.state
case 1:
@@ -10734,7 +10809,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshTabletReplicationSourceRequest); i {
+ switch v := v.(*ReloadSchemaShardResponse); i {
case 0:
return &v.state
case 1:
@@ -10746,7 +10821,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshTabletReplicationSourceResponse); i {
+ switch v := v.(*RefreshTabletReplicationSourceRequest); i {
case 0:
return &v.state
case 1:
@@ -10758,7 +10833,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellRequest); i {
+ switch v := v.(*RefreshTabletReplicationSourceResponse); i {
case 0:
return &v.state
case 1:
@@ -10770,7 +10845,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellResponse); i {
+ switch v := v.(*RemoveKeyspaceCellRequest); i {
case 0:
return &v.state
case 1:
@@ -10782,7 +10857,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*RetrySchemaMigrationRequest); i {
+ switch v := v.(*RemoveKeyspaceCellResponse); i {
case 0:
return &v.state
case 1:
@@ -10794,7 +10869,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckRequest); i {
+ switch v := v.(*RetrySchemaMigrationRequest); i {
case 0:
return &v.state
case 1:
@@ -10806,7 +10881,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckResponse); i {
+ switch v := v.(*RunHealthCheckRequest); i {
case 0:
return &v.state
case 1:
@@ -10818,7 +10893,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*ReshardCreateRequest); i {
+ switch v := v.(*RunHealthCheckResponse); i {
case 0:
return &v.state
case 1:
@@ -10830,7 +10905,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyRequest); i {
+ switch v := v.(*ReshardCreateRequest); i {
case 0:
return &v.state
case 1:
@@ -10842,7 +10917,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyResponse); i {
+ switch v := v.(*SetReadOnlyRequest); i {
case 0:
return &v.state
case 1:
@@ -10854,7 +10929,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteRequest); i {
+ switch v := v.(*SetReadOnlyResponse); i {
case 0:
return &v.state
case 1:
@@ -10866,7 +10941,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteResponse); i {
+ switch v := v.(*SetReadWriteRequest); i {
case 0:
return &v.state
case 1:
@@ -10878,7 +10953,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationRequest); i {
+ switch v := v.(*SetReadWriteResponse); i {
case 0:
return &v.state
case 1:
@@ -10890,7 +10965,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationResponse); i {
+ switch v := v.(*StartReplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -10902,7 +10977,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationRequest); i {
+ switch v := v.(*StartReplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -10914,7 +10989,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationResponse); i {
+ switch v := v.(*StopReplicationRequest); i {
case 0:
return &v.state
case 1:
@@ -10926,7 +11001,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyPromotedRequest); i {
+ switch v := v.(*StopReplicationResponse); i {
case 0:
return &v.state
case 1:
@@ -10938,7 +11013,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyPromotedResponse); i {
+ switch v := v.(*TabletExternallyPromotedRequest); i {
case 0:
return &v.state
case 1:
@@ -10950,7 +11025,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyReparentedRequest); i {
+ switch v := v.(*TabletExternallyPromotedResponse); i {
case 0:
return &v.state
case 1:
@@ -10962,7 +11037,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateRequest); i {
+ switch v := v.(*TabletExternallyReparentedRequest); i {
case 0:
return &v.state
case 1:
@@ -10974,7 +11049,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateKeyspaceRequest); i {
+ switch v := v.(*ValidateRequest); i {
case 0:
return &v.state
case 1:
@@ -10986,7 +11061,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateSchemaKeyspaceRequest); i {
+ switch v := v.(*ValidateKeyspaceRequest); i {
case 0:
return &v.state
case 1:
@@ -10998,7 +11073,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateShardRequest); i {
+ switch v := v.(*ValidateSchemaKeyspaceRequest); i {
case 0:
return &v.state
case 1:
@@ -11010,7 +11085,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionKeyspaceRequest); i {
+ switch v := v.(*ValidateShardRequest); i {
case 0:
return &v.state
case 1:
@@ -11022,7 +11097,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionShardRequest); i {
+ switch v := v.(*ValidateVersionKeyspaceRequest); i {
case 0:
return &v.state
case 1:
@@ -11034,7 +11109,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCreateRequest); i {
+ switch v := v.(*ValidateVersionShardRequest); i {
case 0:
return &v.state
case 1:
@@ -11046,7 +11121,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowRequest); i {
+ switch v := v.(*VDiffCreateRequest); i {
case 0:
return &v.state
case 1:
@@ -11058,7 +11133,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffProgress); i {
+ switch v := v.(*VDiffShowRequest); i {
case 0:
return &v.state
case 1:
@@ -11070,7 +11145,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShardReport); i {
+ switch v := v.(*VDiffProgress); i {
case 0:
return &v.state
case 1:
@@ -11082,7 +11157,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowResponse); i {
+ switch v := v.(*VDiffShardReport); i {
case 0:
return &v.state
case 1:
@@ -11094,7 +11169,7 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*VTExplainRequest); i {
+ switch v := v.(*VDiffShowResponse); i {
case 0:
return &v.state
case 1:
@@ -11106,6 +11181,18 @@ func file_vtadmin_proto_init() {
}
}
file_vtadmin_proto_msgTypes[124].Exporter = func(v any, i int) any {
+ switch v := v.(*VTExplainRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_vtadmin_proto_msgTypes[125].Exporter = func(v any, i int) any {
switch v := v.(*VTExplainResponse); i {
case 0:
return &v.state
@@ -11117,7 +11204,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[128].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[129].Exporter = func(v any, i int) any {
switch v := v.(*Schema_ShardTableSize); i {
case 0:
return &v.state
@@ -11129,7 +11216,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[129].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[130].Exporter = func(v any, i int) any {
switch v := v.(*Schema_TableSize); i {
case 0:
return &v.state
@@ -11141,7 +11228,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[131].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[132].Exporter = func(v any, i int) any {
switch v := v.(*GetSchemaMigrationsRequest_ClusterRequest); i {
case 0:
return &v.state
@@ -11153,7 +11240,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[134].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[135].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemasResponse_KeyspaceResult); i {
case 0:
return &v.state
@@ -11165,7 +11252,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[135].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[136].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemasResponse_ShardResult); i {
case 0:
return &v.state
@@ -11177,7 +11264,7 @@ func file_vtadmin_proto_init() {
return nil
}
}
- file_vtadmin_proto_msgTypes[136].Exporter = func(v any, i int) any {
+ file_vtadmin_proto_msgTypes[137].Exporter = func(v any, i int) any {
switch v := v.(*ReloadSchemasResponse_TabletResult); i {
case 0:
return &v.state
@@ -11196,7 +11283,7 @@ func file_vtadmin_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_vtadmin_proto_rawDesc,
NumEnums: 1,
- NumMessages: 138,
+ NumMessages: 139,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/go/vt/proto/vtadmin/vtadmin_grpc.pb.go b/go/vt/proto/vtadmin/vtadmin_grpc.pb.go
index 23c587bf67f..89fffccd424 100644
--- a/go/vt/proto/vtadmin/vtadmin_grpc.pb.go
+++ b/go/vt/proto/vtadmin/vtadmin_grpc.pb.go
@@ -106,6 +106,8 @@ type VTAdminClient interface {
GetTablets(ctx context.Context, in *GetTabletsRequest, opts ...grpc.CallOption) (*GetTabletsResponse, error)
// GetTopologyPath returns the cell located at the specified path in the topology server.
GetTopologyPath(ctx context.Context, in *GetTopologyPathRequest, opts ...grpc.CallOption) (*vtctldata.GetTopologyPathResponse, error)
+ // GetTransactionInfo returns the information about a single transaction.
+ GetTransactionInfo(ctx context.Context, in *GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldata.GetTransactionInfoResponse, error)
// GetUnresolvedTransactions returns the unresolved transactions for the request.
GetUnresolvedTransactions(ctx context.Context, in *GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldata.GetUnresolvedTransactionsResponse, error)
// GetVSchema returns a VSchema for the specified keyspace in the specified
@@ -506,6 +508,15 @@ func (c *vTAdminClient) GetTopologyPath(ctx context.Context, in *GetTopologyPath
return out, nil
}
+func (c *vTAdminClient) GetTransactionInfo(ctx context.Context, in *GetTransactionInfoRequest, opts ...grpc.CallOption) (*vtctldata.GetTransactionInfoResponse, error) {
+ out := new(vtctldata.GetTransactionInfoResponse)
+ err := c.cc.Invoke(ctx, "/vtadmin.VTAdmin/GetTransactionInfo", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *vTAdminClient) GetUnresolvedTransactions(ctx context.Context, in *GetUnresolvedTransactionsRequest, opts ...grpc.CallOption) (*vtctldata.GetUnresolvedTransactionsResponse, error) {
out := new(vtctldata.GetUnresolvedTransactionsResponse)
err := c.cc.Invoke(ctx, "/vtadmin.VTAdmin/GetUnresolvedTransactions", in, out, opts...)
@@ -953,6 +964,8 @@ type VTAdminServer interface {
GetTablets(context.Context, *GetTabletsRequest) (*GetTabletsResponse, error)
// GetTopologyPath returns the cell located at the specified path in the topology server.
GetTopologyPath(context.Context, *GetTopologyPathRequest) (*vtctldata.GetTopologyPathResponse, error)
+ // GetTransactionInfo returns the information about a single transaction.
+ GetTransactionInfo(context.Context, *GetTransactionInfoRequest) (*vtctldata.GetTransactionInfoResponse, error)
// GetUnresolvedTransactions returns the unresolved transactions for the request.
GetUnresolvedTransactions(context.Context, *GetUnresolvedTransactionsRequest) (*vtctldata.GetUnresolvedTransactionsResponse, error)
// GetVSchema returns a VSchema for the specified keyspace in the specified
@@ -1164,6 +1177,9 @@ func (UnimplementedVTAdminServer) GetTablets(context.Context, *GetTabletsRequest
func (UnimplementedVTAdminServer) GetTopologyPath(context.Context, *GetTopologyPathRequest) (*vtctldata.GetTopologyPathResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetTopologyPath not implemented")
}
+func (UnimplementedVTAdminServer) GetTransactionInfo(context.Context, *GetTransactionInfoRequest) (*vtctldata.GetTransactionInfoResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetTransactionInfo not implemented")
+}
func (UnimplementedVTAdminServer) GetUnresolvedTransactions(context.Context, *GetUnresolvedTransactionsRequest) (*vtctldata.GetUnresolvedTransactionsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUnresolvedTransactions not implemented")
}
@@ -1855,6 +1871,24 @@ func _VTAdmin_GetTopologyPath_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
+func _VTAdmin_GetTransactionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetTransactionInfoRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(VTAdminServer).GetTransactionInfo(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/vtadmin.VTAdmin/GetTransactionInfo",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(VTAdminServer).GetTransactionInfo(ctx, req.(*GetTransactionInfoRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _VTAdmin_GetUnresolvedTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUnresolvedTransactionsRequest)
if err := dec(in); err != nil {
@@ -2706,6 +2740,10 @@ var VTAdmin_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetTopologyPath",
Handler: _VTAdmin_GetTopologyPath_Handler,
},
+ {
+ MethodName: "GetTransactionInfo",
+ Handler: _VTAdmin_GetTransactionInfo_Handler,
+ },
{
MethodName: "GetUnresolvedTransactions",
Handler: _VTAdmin_GetUnresolvedTransactions_Handler,
diff --git a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
index 16ac8c4fbd5..06bc371c4f8 100644
--- a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
+++ b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
@@ -1472,6 +1472,24 @@ func (m *GetTopologyPathRequest) CloneMessageVT() proto.Message {
return m.CloneVT()
}
+func (m *GetTransactionInfoRequest) CloneVT() *GetTransactionInfoRequest {
+ if m == nil {
+ return (*GetTransactionInfoRequest)(nil)
+ }
+ r := new(GetTransactionInfoRequest)
+ r.ClusterId = m.ClusterId
+ r.Request = m.Request.CloneVT()
+ if len(m.unknownFields) > 0 {
+ r.unknownFields = make([]byte, len(m.unknownFields))
+ copy(r.unknownFields, m.unknownFields)
+ }
+ return r
+}
+
+func (m *GetTransactionInfoRequest) CloneMessageVT() proto.Message {
+ return m.CloneVT()
+}
+
func (m *GetUnresolvedTransactionsRequest) CloneVT() *GetUnresolvedTransactionsRequest {
if m == nil {
return (*GetUnresolvedTransactionsRequest)(nil)
@@ -6379,6 +6397,56 @@ func (m *GetTopologyPathRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error
return len(dAtA) - i, nil
}
+func (m *GetTransactionInfoRequest) MarshalVT() (dAtA []byte, err error) {
+ if m == nil {
+ return nil, nil
+ }
+ size := m.SizeVT()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBufferVT(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *GetTransactionInfoRequest) MarshalToVT(dAtA []byte) (int, error) {
+ size := m.SizeVT()
+ return m.MarshalToSizedBufferVT(dAtA[:size])
+}
+
+func (m *GetTransactionInfoRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
+ if m == nil {
+ return 0, nil
+ }
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.unknownFields != nil {
+ i -= len(m.unknownFields)
+ copy(dAtA[i:], m.unknownFields)
+ }
+ if m.Request != nil {
+ size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ClusterId) > 0 {
+ i -= len(m.ClusterId)
+ copy(dAtA[i:], m.ClusterId)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ClusterId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *GetUnresolvedTransactionsRequest) MarshalVT() (dAtA []byte, err error) {
if m == nil {
return nil, nil
@@ -11148,6 +11216,24 @@ func (m *GetTopologyPathRequest) SizeVT() (n int) {
return n
}
+func (m *GetTransactionInfoRequest) SizeVT() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ClusterId)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ if m.Request != nil {
+ l = m.Request.SizeVT()
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
+ n += len(m.unknownFields)
+ return n
+}
+
func (m *GetUnresolvedTransactionsRequest) SizeVT() (n int) {
if m == nil {
return 0
@@ -21148,6 +21234,125 @@ func (m *GetTopologyPathRequest) UnmarshalVT(dAtA []byte) error {
}
return nil
}
+func (m *GetTransactionInfoRequest) UnmarshalVT(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: GetTransactionInfoRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: GetTransactionInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ClusterId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ClusterId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Request", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Request == nil {
+ m.Request = &vtctldata.GetTransactionInfoRequest{}
+ }
+ if err := m.Request.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *GetUnresolvedTransactionsRequest) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/go/vt/vtadmin/api.go b/go/vt/vtadmin/api.go
index db3f16d8426..cef8816504a 100644
--- a/go/vt/vtadmin/api.go
+++ b/go/vt/vtadmin/api.go
@@ -425,6 +425,7 @@ func (api *API) Handler() http.Handler {
router.HandleFunc("/tablet/{tablet}/externally_promoted", httpAPI.Adapt(vtadminhttp.TabletExternallyPromoted)).Name("API.TabletExternallyPromoted").Methods("POST")
router.HandleFunc("/transactions/{cluster_id}/{keyspace}", httpAPI.Adapt(vtadminhttp.GetUnresolvedTransactions)).Name("API.GetUnresolvedTransactions").Methods("GET")
router.HandleFunc("/transaction/{cluster_id}/{dtid}/conclude", httpAPI.Adapt(vtadminhttp.ConcludeTransaction)).Name("API.ConcludeTransaction")
+ router.HandleFunc("/transaction/{cluster_id}/{dtid}/info", httpAPI.Adapt(vtadminhttp.GetTransactionInfo)).Name("API.GetTransactionInfo")
router.HandleFunc("/vschema/{cluster_id}/{keyspace}", httpAPI.Adapt(vtadminhttp.GetVSchema)).Name("API.GetVSchema")
router.HandleFunc("/vschemas", httpAPI.Adapt(vtadminhttp.GetVSchemas)).Name("API.GetVSchemas")
router.HandleFunc("/vdiff/{cluster_id}/", httpAPI.Adapt(vtadminhttp.VDiffCreate)).Name("API.VDiffCreate").Methods("POST")
@@ -1521,6 +1522,25 @@ func (api *API) GetTopologyPath(ctx context.Context, req *vtadminpb.GetTopologyP
return c.Vtctld.GetTopologyPath(ctx, &vtctldatapb.GetTopologyPathRequest{Path: req.Path})
}
+// GetTransactionInfo is part of the vtadminpb.VTAdminServer interface.
+func (api *API) GetTransactionInfo(ctx context.Context, req *vtadminpb.GetTransactionInfoRequest) (*vtctldatapb.GetTransactionInfoResponse, error) {
+ span, ctx := trace.NewSpan(ctx, "API.GetTransactionInfo")
+ defer span.Finish()
+
+ c, err := api.getClusterForRequest(req.ClusterId)
+ if err != nil {
+ return nil, err
+ }
+
+ cluster.AnnotateSpan(c, span)
+
+ if !api.authz.IsAuthorized(ctx, c.ID, rbac.ClusterResource, rbac.GetAction) {
+ return nil, nil
+ }
+
+ return c.Vtctld.GetTransactionInfo(ctx, req.Request)
+}
+
// GetUnresolvedTransactions is part of the vtadminpb.VTAdminServer interface.
func (api *API) GetUnresolvedTransactions(ctx context.Context, req *vtadminpb.GetUnresolvedTransactionsRequest) (*vtctldatapb.GetUnresolvedTransactionsResponse, error) {
span, ctx := trace.NewSpan(ctx, "API.GetUnresolvedTransactions")
diff --git a/go/vt/vtadmin/http/transactions.go b/go/vt/vtadmin/http/transactions.go
index 5846b814524..fdc54873baf 100644
--- a/go/vt/vtadmin/http/transactions.go
+++ b/go/vt/vtadmin/http/transactions.go
@@ -20,6 +20,7 @@ import (
"context"
vtadminpb "vitess.io/vitess/go/vt/proto/vtadmin"
+ vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata"
)
// GetUnresolvedTransactions implements the http wrapper for the
@@ -41,6 +42,21 @@ func GetUnresolvedTransactions(ctx context.Context, r Request, api *API) *JSONRe
return NewJSONResponse(res, err)
}
+// GetTransactionInfo implements the http wrapper for the
+// /transaction/{cluster_id}/{dtid}/info route.
+func GetTransactionInfo(ctx context.Context, r Request, api *API) *JSONResponse {
+ vars := r.Vars()
+
+ res, err := api.server.GetTransactionInfo(ctx, &vtadminpb.GetTransactionInfoRequest{
+ ClusterId: vars["cluster_id"],
+ Request: &vtctldatapb.GetTransactionInfoRequest{
+ Dtid: vars["dtid"],
+ },
+ })
+
+ return NewJSONResponse(res, err)
+}
+
// ConcludeTransaction implements the http wrapper for the
// /transaction/{cluster_id}/{dtid}/conclude route.
func ConcludeTransaction(ctx context.Context, r Request, api *API) *JSONResponse {
diff --git a/proto/vtadmin.proto b/proto/vtadmin.proto
index 593c9b47db2..78f086ec345 100644
--- a/proto/vtadmin.proto
+++ b/proto/vtadmin.proto
@@ -116,6 +116,8 @@ service VTAdmin {
rpc GetTablets(GetTabletsRequest) returns (GetTabletsResponse) {};
// GetTopologyPath returns the cell located at the specified path in the topology server.
rpc GetTopologyPath(GetTopologyPathRequest) returns (vtctldata.GetTopologyPathResponse){};
+ // GetTransactionInfo returns the information about a single transaction.
+ rpc GetTransactionInfo(GetTransactionInfoRequest) returns (vtctldata.GetTransactionInfoResponse){};
// GetUnresolvedTransactions returns the unresolved transactions for the request.
rpc GetUnresolvedTransactions(GetUnresolvedTransactionsRequest) returns (vtctldata.GetUnresolvedTransactionsResponse){};
// GetVSchema returns a VSchema for the specified keyspace in the specified
@@ -655,6 +657,11 @@ message GetTopologyPathRequest {
string path = 2;
}
+message GetTransactionInfoRequest {
+ string cluster_id = 1;
+ vtctldata.GetTransactionInfoRequest request = 2;
+}
+
message GetUnresolvedTransactionsRequest {
string cluster_id = 1;
string keyspace = 2;
diff --git a/test/config.json b/test/config.json
index 805c66f73c4..7419f658385 100644
--- a/test/config.json
+++ b/test/config.json
@@ -1373,6 +1373,15 @@
"RetryMax": 1,
"Tags": []
},
+ "vtadmin": {
+ "File": "unused.go",
+ "Args": ["vitess.io/vitess/go/test/endtoend/vtadmin"],
+ "Command": [],
+ "Manual": false,
+ "Shard": "15",
+ "RetryMax": 1,
+ "Tags": []
+ },
"topo_connection_cache": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/topoconncache", "-run", "TestVtctldListAllTablets"],
diff --git a/web/vtadmin/src/api/http.ts b/web/vtadmin/src/api/http.ts
index 6f85a82e78d..3f75330d240 100644
--- a/web/vtadmin/src/api/http.ts
+++ b/web/vtadmin/src/api/http.ts
@@ -421,6 +421,20 @@ export const fetchVSchema = async ({ clusterID, keyspace }: FetchVSchemaParams)
return pb.VSchema.create(result);
};
+export interface FetchTransactionParams {
+ clusterID: string;
+ dtid: string;
+}
+
+export const fetchTransaction = async ({ clusterID, dtid }: FetchTransactionParams) => {
+ const { result } = await vtfetch(`/api/transaction/${clusterID}/${dtid}/info`);
+
+ const err = vtctldata.GetTransactionInfoResponse.verify(result);
+ if (err) throw Error(err);
+
+ return vtctldata.GetTransactionInfoResponse.create(result);
+};
+
export interface FetchTransactionsParams {
clusterID: string;
keyspace: string;
diff --git a/web/vtadmin/src/components/App.tsx b/web/vtadmin/src/components/App.tsx
index 505ea7e64eb..ef27a35dc95 100644
--- a/web/vtadmin/src/components/App.tsx
+++ b/web/vtadmin/src/components/App.tsx
@@ -42,6 +42,7 @@ import { Topology } from './routes/topology/Topology';
import { ClusterTopology } from './routes/topology/ClusterTopology';
import { CreateMoveTables } from './routes/createWorkflow/CreateMoveTables';
import { Transactions } from './routes/Transactions';
+import { Transaction } from './routes/transaction/Transaction';
import { CreateReshard } from './routes/createWorkflow/CreateReshard';
import { CreateMaterialize } from './routes/createWorkflow/CreateMaterialize';
@@ -143,6 +144,10 @@ export const App = () => {
+
+
+
+
diff --git a/web/vtadmin/src/components/links/TransactionLink.tsx b/web/vtadmin/src/components/links/TransactionLink.tsx
new file mode 100644
index 00000000000..64f9d12ddf4
--- /dev/null
+++ b/web/vtadmin/src/components/links/TransactionLink.tsx
@@ -0,0 +1,40 @@
+/**
+ * Copyright 2024 The Vitess Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React from 'react';
+import { Link } from 'react-router-dom';
+
+interface Props {
+ className?: string;
+ clusterID: string | null | undefined;
+ dtid: string | null | undefined;
+}
+
+export const TransactionLink: React.FunctionComponent = ({ children, className, clusterID, dtid, ...props }) => {
+ if (!clusterID || !dtid) {
+ return {children} ;
+ }
+
+ const to = {
+ pathname: `/transaction/${clusterID}/${dtid}`,
+ };
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/web/vtadmin/src/components/routes/Transactions.tsx b/web/vtadmin/src/components/routes/Transactions.tsx
index 10945403596..6320332b0b3 100644
--- a/web/vtadmin/src/components/routes/Transactions.tsx
+++ b/web/vtadmin/src/components/routes/Transactions.tsx
@@ -32,9 +32,11 @@ import { orderBy } from 'lodash-es';
import { ReadOnlyGate } from '../ReadOnlyGate';
import TransactionActions from './transactions/TransactionActions';
import { isReadOnlyMode } from '../../util/env';
+import { TransactionLink } from '../links/TransactionLink';
+import * as React from 'react';
-const COLUMNS = ['ID', 'State', 'Participants', 'Time Created', 'Actions'];
-const READ_ONLY_COLUMNS = ['ID', 'State', 'Participants', 'Time Created'];
+export const COLUMNS = ['ID', 'State', 'Participants', 'Time Created', 'Actions'];
+export const READ_ONLY_COLUMNS = ['ID', 'State', 'Participants', 'Time Created'];
const ABANDON_AGE_OPTIONS = [
{
@@ -90,7 +92,9 @@ export const Transactions = () => {
return (
- {row.dtid}
+
+ {row.dtid}
+
{formatTransactionState(row)}
diff --git a/web/vtadmin/src/components/routes/transaction/Transaction.tsx b/web/vtadmin/src/components/routes/transaction/Transaction.tsx
new file mode 100644
index 00000000000..acd9a5423e7
--- /dev/null
+++ b/web/vtadmin/src/components/routes/transaction/Transaction.tsx
@@ -0,0 +1,187 @@
+/**
+ * Copyright 2024 The Vitess Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { useTransaction } from '../../../hooks/api';
+import { DataCell } from '../../dataTable/DataCell';
+import { DataTable } from '../../dataTable/DataTable';
+import { ContentContainer } from '../../layout/ContentContainer';
+import { WorkspaceHeader } from '../../layout/WorkspaceHeader';
+import { WorkspaceTitle } from '../../layout/WorkspaceTitle';
+import { QueryLoadingPlaceholder } from '../../placeholders/QueryLoadingPlaceholder';
+import { useDocumentTitle } from '../../../hooks/useDocumentTitle';
+import { query, vtctldata } from '../../../proto/vtadmin';
+import { formatTransactionState } from '../../../util/transactions';
+import { ShardLink } from '../../links/ShardLink';
+import { formatDateTime, formatRelativeTimeInSeconds } from '../../../util/time';
+import { ReadOnlyGate } from '../../ReadOnlyGate';
+import TransactionActions from '../transactions/TransactionActions';
+import { isReadOnlyMode } from '../../../util/env';
+import { useParams } from 'react-router';
+import style from '../keyspace/Keyspace.module.scss';
+import { Link } from 'react-router-dom';
+import { NavCrumbs } from '../../layout/NavCrumbs';
+import { READ_ONLY_COLUMNS } from '../Transactions';
+import { COLUMNS } from '../Transactions';
+import * as React from 'react';
+import { TransactionLink } from '../../links/TransactionLink';
+
+interface RouteParams {
+ clusterID: string;
+ dtid: string;
+}
+
+export const SHARD_STATE_COLUMNS = ['Shard', 'State', 'Message', 'Time Created', 'Statements'];
+
+export const Transaction = () => {
+ const { clusterID, dtid } = useParams();
+
+ useDocumentTitle(`${dtid} (${clusterID})`);
+
+ const transactionQuery = useTransaction({ clusterID, dtid });
+
+ const { data: transaction } = transactionQuery;
+
+ if (transactionQuery.error) {
+ return (
+
+
😰
+
An error occurred
+
+ {(transactionQuery.error as any).response?.error?.message || transactionQuery.error?.message}
+
+
+ ← All Unresolved Transactions
+
+
+ );
+ }
+
+ if (!transactionQuery.isLoading && !transaction) {
+ return (
+
+
😖
+
Transaction not found
+
+ ← All Unresolved Transactions
+
+
+ );
+ }
+
+ const renderMetadataRow = (rows: query.ITransactionMetadata[]) => {
+ return rows.map((row) => {
+ return (
+
+
+
+ {row.dtid}
+
+
+
+ {formatTransactionState(row)}
+
+
+ {row.participants?.map((participant) => {
+ const shard = `${participant.keyspace}/${participant.shard}`;
+ return (
+
+ {shard}
+
+ );
+ })}
+
+
+ {formatDateTime(row.time_created)}
+
+ {formatRelativeTimeInSeconds(row.time_created)}
+
+
+
+
+
+
+
+
+ );
+ });
+ };
+
+ const renderShardStateRow = (rows: vtctldata.IShardTransactionState[]) => {
+ return rows.map((row) => {
+ return (
+
+
+ {row.shard}
+
+
+ {row.state ? row.state : 'COMMITTED'}
+
+
+ {row.message ? row.message : '-'}
+
+
+
+ {row.time_created ? formatDateTime(row.time_created) : '-'}
+
+
+ {row.time_created ? formatRelativeTimeInSeconds(row.time_created) : ''}
+
+
+ {row.statements}
+
+ );
+ });
+ };
+
+ return (
+
+
+
+ ← All Unresolved Transactions
+
+
+ {dtid}
+
+
+
+ Cluster: {clusterID}
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/web/vtadmin/src/hooks/api.ts b/web/vtadmin/src/hooks/api.ts
index 375fcd7a959..9261f4f0eb0 100644
--- a/web/vtadmin/src/hooks/api.ts
+++ b/web/vtadmin/src/hooks/api.ts
@@ -82,6 +82,8 @@ import {
createMoveTables,
startWorkflow,
stopWorkflow,
+ FetchTransactionParams,
+ fetchTransaction,
FetchTransactionsParams,
fetchTransactions,
completeMoveTables,
@@ -427,6 +429,16 @@ export const useTransactions = (
return useQuery(['transactions', params], () => fetchTransactions(params), { ...options });
};
+/**
+ * useTransaction is a query hook that fetches the details of a transaction for the given dtid.
+ */
+export const useTransaction = (
+ params: FetchTransactionParams,
+ options?: UseQueryOptions | undefined
+) => {
+ return useQuery(['transaction', params], () => fetchTransaction(params), { ...options });
+};
+
/**
* useConcludeTransaction is a mutate hook that concludes a transaction.
*/
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index 22b4430a895..3a11b44b28b 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -457,6 +457,20 @@ export namespace vtadmin {
*/
public getTopologyPath(request: vtadmin.IGetTopologyPathRequest): Promise;
+ /**
+ * Calls GetTransactionInfo.
+ * @param request GetTransactionInfoRequest message or plain object
+ * @param callback Node-style callback called with the error, if any, and GetTransactionInfoResponse
+ */
+ public getTransactionInfo(request: vtadmin.IGetTransactionInfoRequest, callback: vtadmin.VTAdmin.GetTransactionInfoCallback): void;
+
+ /**
+ * Calls GetTransactionInfo.
+ * @param request GetTransactionInfoRequest message or plain object
+ * @returns Promise
+ */
+ public getTransactionInfo(request: vtadmin.IGetTransactionInfoRequest): Promise;
+
/**
* Calls GetUnresolvedTransactions.
* @param request GetUnresolvedTransactionsRequest message or plain object
@@ -1237,6 +1251,13 @@ export namespace vtadmin {
*/
type GetTopologyPathCallback = (error: (Error|null), response?: vtctldata.GetTopologyPathResponse) => void;
+ /**
+ * Callback as used by {@link vtadmin.VTAdmin#getTransactionInfo}.
+ * @param error Error, if any
+ * @param [response] GetTransactionInfoResponse
+ */
+ type GetTransactionInfoCallback = (error: (Error|null), response?: vtctldata.GetTransactionInfoResponse) => void;
+
/**
* Callback as used by {@link vtadmin.VTAdmin#getUnresolvedTransactions}.
* @param error Error, if any
@@ -8592,6 +8613,109 @@ export namespace vtadmin {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** Properties of a GetTransactionInfoRequest. */
+ interface IGetTransactionInfoRequest {
+
+ /** GetTransactionInfoRequest cluster_id */
+ cluster_id?: (string|null);
+
+ /** GetTransactionInfoRequest request */
+ request?: (vtctldata.IGetTransactionInfoRequest|null);
+ }
+
+ /** Represents a GetTransactionInfoRequest. */
+ class GetTransactionInfoRequest implements IGetTransactionInfoRequest {
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: vtadmin.IGetTransactionInfoRequest);
+
+ /** GetTransactionInfoRequest cluster_id. */
+ public cluster_id: string;
+
+ /** GetTransactionInfoRequest request. */
+ public request?: (vtctldata.IGetTransactionInfoRequest|null);
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GetTransactionInfoRequest instance
+ */
+ public static create(properties?: vtadmin.IGetTransactionInfoRequest): vtadmin.GetTransactionInfoRequest;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link vtadmin.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: vtadmin.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link vtadmin.GetTransactionInfoRequest.verify|verify} messages.
+ * @param message GetTransactionInfoRequest message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: vtadmin.IGetTransactionInfoRequest, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtadmin.GetTransactionInfoRequest;
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtadmin.GetTransactionInfoRequest;
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GetTransactionInfoRequest
+ */
+ public static fromObject(object: { [k: string]: any }): vtadmin.GetTransactionInfoRequest;
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @param message GetTransactionInfoRequest
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: vtadmin.GetTransactionInfoRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns The default type url
+ */
+ public static getTypeUrl(typeUrlPrefix?: string): string;
+ }
+
/** Properties of a GetUnresolvedTransactionsRequest. */
interface IGetUnresolvedTransactionsRequest {
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index 3611efa8d19..fbdfac0512a 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -1071,6 +1071,39 @@ export const vtadmin = $root.vtadmin = (() => {
* @variation 2
*/
+ /**
+ * Callback as used by {@link vtadmin.VTAdmin#getTransactionInfo}.
+ * @memberof vtadmin.VTAdmin
+ * @typedef GetTransactionInfoCallback
+ * @type {function}
+ * @param {Error|null} error Error, if any
+ * @param {vtctldata.GetTransactionInfoResponse} [response] GetTransactionInfoResponse
+ */
+
+ /**
+ * Calls GetTransactionInfo.
+ * @function getTransactionInfo
+ * @memberof vtadmin.VTAdmin
+ * @instance
+ * @param {vtadmin.IGetTransactionInfoRequest} request GetTransactionInfoRequest message or plain object
+ * @param {vtadmin.VTAdmin.GetTransactionInfoCallback} callback Node-style callback called with the error, if any, and GetTransactionInfoResponse
+ * @returns {undefined}
+ * @variation 1
+ */
+ Object.defineProperty(VTAdmin.prototype.getTransactionInfo = function getTransactionInfo(request, callback) {
+ return this.rpcCall(getTransactionInfo, $root.vtadmin.GetTransactionInfoRequest, $root.vtctldata.GetTransactionInfoResponse, request, callback);
+ }, "name", { value: "GetTransactionInfo" });
+
+ /**
+ * Calls GetTransactionInfo.
+ * @function getTransactionInfo
+ * @memberof vtadmin.VTAdmin
+ * @instance
+ * @param {vtadmin.IGetTransactionInfoRequest} request GetTransactionInfoRequest message or plain object
+ * @returns {Promise} Promise
+ * @variation 2
+ */
+
/**
* Callback as used by {@link vtadmin.VTAdmin#getUnresolvedTransactions}.
* @memberof vtadmin.VTAdmin
@@ -19248,6 +19281,238 @@ export const vtadmin = $root.vtadmin = (() => {
return GetTopologyPathRequest;
})();
+ vtadmin.GetTransactionInfoRequest = (function() {
+
+ /**
+ * Properties of a GetTransactionInfoRequest.
+ * @memberof vtadmin
+ * @interface IGetTransactionInfoRequest
+ * @property {string|null} [cluster_id] GetTransactionInfoRequest cluster_id
+ * @property {vtctldata.IGetTransactionInfoRequest|null} [request] GetTransactionInfoRequest request
+ */
+
+ /**
+ * Constructs a new GetTransactionInfoRequest.
+ * @memberof vtadmin
+ * @classdesc Represents a GetTransactionInfoRequest.
+ * @implements IGetTransactionInfoRequest
+ * @constructor
+ * @param {vtadmin.IGetTransactionInfoRequest=} [properties] Properties to set
+ */
+ function GetTransactionInfoRequest(properties) {
+ if (properties)
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GetTransactionInfoRequest cluster_id.
+ * @member {string} cluster_id
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @instance
+ */
+ GetTransactionInfoRequest.prototype.cluster_id = "";
+
+ /**
+ * GetTransactionInfoRequest request.
+ * @member {vtctldata.IGetTransactionInfoRequest|null|undefined} request
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @instance
+ */
+ GetTransactionInfoRequest.prototype.request = null;
+
+ /**
+ * Creates a new GetTransactionInfoRequest instance using the specified properties.
+ * @function create
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {vtadmin.IGetTransactionInfoRequest=} [properties] Properties to set
+ * @returns {vtadmin.GetTransactionInfoRequest} GetTransactionInfoRequest instance
+ */
+ GetTransactionInfoRequest.create = function create(properties) {
+ return new GetTransactionInfoRequest(properties);
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message. Does not implicitly {@link vtadmin.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encode
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {vtadmin.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.cluster_id != null && Object.hasOwnProperty.call(message, "cluster_id"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.cluster_id);
+ if (message.request != null && Object.hasOwnProperty.call(message, "request"))
+ $root.vtctldata.GetTransactionInfoRequest.encode(message.request, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GetTransactionInfoRequest message, length delimited. Does not implicitly {@link vtadmin.GetTransactionInfoRequest.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {vtadmin.IGetTransactionInfoRequest} message GetTransactionInfoRequest message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GetTransactionInfoRequest.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer.
+ * @function decode
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {vtadmin.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtadmin.GetTransactionInfoRequest();
+ while (reader.pos < end) {
+ let tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1: {
+ message.cluster_id = reader.string();
+ break;
+ }
+ case 2: {
+ message.request = $root.vtctldata.GetTransactionInfoRequest.decode(reader, reader.uint32());
+ break;
+ }
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GetTransactionInfoRequest message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {vtadmin.GetTransactionInfoRequest} GetTransactionInfoRequest
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GetTransactionInfoRequest.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GetTransactionInfoRequest message.
+ * @function verify
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GetTransactionInfoRequest.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.cluster_id != null && message.hasOwnProperty("cluster_id"))
+ if (!$util.isString(message.cluster_id))
+ return "cluster_id: string expected";
+ if (message.request != null && message.hasOwnProperty("request")) {
+ let error = $root.vtctldata.GetTransactionInfoRequest.verify(message.request);
+ if (error)
+ return "request." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a GetTransactionInfoRequest message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {vtadmin.GetTransactionInfoRequest} GetTransactionInfoRequest
+ */
+ GetTransactionInfoRequest.fromObject = function fromObject(object) {
+ if (object instanceof $root.vtadmin.GetTransactionInfoRequest)
+ return object;
+ let message = new $root.vtadmin.GetTransactionInfoRequest();
+ if (object.cluster_id != null)
+ message.cluster_id = String(object.cluster_id);
+ if (object.request != null) {
+ if (typeof object.request !== "object")
+ throw TypeError(".vtadmin.GetTransactionInfoRequest.request: object expected");
+ message.request = $root.vtctldata.GetTransactionInfoRequest.fromObject(object.request);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GetTransactionInfoRequest message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {vtadmin.GetTransactionInfoRequest} message GetTransactionInfoRequest
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GetTransactionInfoRequest.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults) {
+ object.cluster_id = "";
+ object.request = null;
+ }
+ if (message.cluster_id != null && message.hasOwnProperty("cluster_id"))
+ object.cluster_id = message.cluster_id;
+ if (message.request != null && message.hasOwnProperty("request"))
+ object.request = $root.vtctldata.GetTransactionInfoRequest.toObject(message.request, options);
+ return object;
+ };
+
+ /**
+ * Converts this GetTransactionInfoRequest to JSON.
+ * @function toJSON
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GetTransactionInfoRequest.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Gets the default type url for GetTransactionInfoRequest
+ * @function getTypeUrl
+ * @memberof vtadmin.GetTransactionInfoRequest
+ * @static
+ * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+ * @returns {string} The default type url
+ */
+ GetTransactionInfoRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+ if (typeUrlPrefix === undefined) {
+ typeUrlPrefix = "type.googleapis.com";
+ }
+ return typeUrlPrefix + "/vtadmin.GetTransactionInfoRequest";
+ };
+
+ return GetTransactionInfoRequest;
+ })();
+
vtadmin.GetUnresolvedTransactionsRequest = (function() {
/**
diff --git a/web/vtadmin/src/util/time.ts b/web/vtadmin/src/util/time.ts
index 82703d60281..76ae4544cea 100644
--- a/web/vtadmin/src/util/time.ts
+++ b/web/vtadmin/src/util/time.ts
@@ -24,6 +24,18 @@ export const parse = (timestamp: number | Long | null | undefined): dayjs.Dayjs
if (typeof timestamp !== 'number') {
return null;
}
+
+ // Convert the timestamp to a string and check the number of digits
+ let timestampStr = timestamp.toString();
+
+ // If the length of the timestamp is more than 10 digits (seconds resolution),
+ // keep dividing by 10 until it has 10 digits
+ while (timestampStr.length > 10) {
+ timestampStr = Math.floor(timestamp / 10).toString();
+ timestamp = timestamp / 10;
+ }
+
+ // Now, we assume the timestamp is in seconds resolution and use dayjs.unix()
return dayjs.unix(timestamp);
};
From aa69c7c3e36927e97f26a6e1e119901d6ffa75bb Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Fri, 8 Nov 2024 17:10:15 +0530
Subject: [PATCH 40/78] Fix: Update found rows pool transaction capacity
dynamically via vttablet debug/env (#17055)
Signed-off-by: Harshit Gangal
---
go/vt/vttablet/endtoend/call_test.go | 2 +-
go/vt/vttablet/endtoend/config_test.go | 43 ++++++++++++++++++++-
go/vt/vttablet/endtoend/transaction_test.go | 30 +-------------
go/vt/vttablet/tabletserver/tabletserver.go | 6 ++-
4 files changed, 49 insertions(+), 32 deletions(-)
diff --git a/go/vt/vttablet/endtoend/call_test.go b/go/vt/vttablet/endtoend/call_test.go
index a1a2eae792a..95171e1523e 100644
--- a/go/vt/vttablet/endtoend/call_test.go
+++ b/go/vt/vttablet/endtoend/call_test.go
@@ -20,7 +20,6 @@ import (
"testing"
"github.com/stretchr/testify/assert"
-
"github.com/stretchr/testify/require"
"vitess.io/vitess/go/vt/vttablet/endtoend/framework"
@@ -136,6 +135,7 @@ func TestCallProcedureLeakTx(t *testing.T) {
func TestCallProcedureChangedTx(t *testing.T) {
client := framework.NewClient()
+ defer client.Release()
_, err := client.Execute(`call proc_tx_begin()`, nil)
require.EqualError(t, err, "Transaction not concluded inside the stored procedure, leaking transaction from stored procedure is not allowed (CallerID: dev)")
diff --git a/go/vt/vttablet/endtoend/config_test.go b/go/vt/vttablet/endtoend/config_test.go
index 3902113f354..4abf5b36c21 100644
--- a/go/vt/vttablet/endtoend/config_test.go
+++ b/go/vt/vttablet/endtoend/config_test.go
@@ -23,7 +23,6 @@ import (
"time"
"github.com/stretchr/testify/assert"
-
"github.com/stretchr/testify/require"
"vitess.io/vitess/go/sqltypes"
@@ -73,6 +72,48 @@ func TestStreamPoolSize(t *testing.T) {
verifyIntValue(t, vstart, "StreamConnPoolCapacity", 1)
}
+// TestTxPoolSize starts 2 transactions, one in normal pool and one in found rows pool of transaction pool.
+// Changing the pool size to 1, we verify that the pool size is updated and the pool is full when we try to acquire next transaction.
+func TestTxPoolSize(t *testing.T) {
+ vstart := framework.DebugVars()
+
+ verifyIntValue(t, vstart, "TransactionPoolCapacity", 20)
+ verifyIntValue(t, vstart, "FoundRowsPoolCapacity", 20)
+
+ client1 := framework.NewClient()
+ err := client1.Begin( /* found rows pool*/ false)
+ require.NoError(t, err)
+ defer client1.Rollback()
+ verifyIntValue(t, framework.DebugVars(), "TransactionPoolAvailable", framework.FetchInt(vstart, "TransactionPoolAvailable")-1)
+
+ client2 := framework.NewClient()
+ err = client2.Begin( /* found rows pool*/ true)
+ require.NoError(t, err)
+ defer client2.Rollback()
+ verifyIntValue(t, framework.DebugVars(), "FoundRowsPoolAvailable", framework.FetchInt(vstart, "FoundRowsPoolAvailable")-1)
+
+ revert := changeVar(t, "TxPoolSize", "1")
+ defer revert()
+ vend := framework.DebugVars()
+ verifyIntValue(t, vend, "TransactionPoolAvailable", 0)
+ verifyIntValue(t, vend, "TransactionPoolCapacity", 1)
+ verifyIntValue(t, vend, "FoundRowsPoolAvailable", 0)
+ verifyIntValue(t, vend, "FoundRowsPoolCapacity", 1)
+ assert.Equal(t, 1, framework.Server.TxPoolSize())
+
+ client3 := framework.NewClient()
+
+ // tx pool - normal
+ err = client3.Begin( /* found rows pool*/ false)
+ require.ErrorContains(t, err, "connection limit exceeded")
+ compareIntDiff(t, framework.DebugVars(), "Errors/RESOURCE_EXHAUSTED", vstart, 1)
+
+ // tx pool - found rows
+ err = client3.Begin( /* found rows pool*/ true)
+ require.ErrorContains(t, err, "connection limit exceeded")
+ compareIntDiff(t, framework.DebugVars(), "Errors/RESOURCE_EXHAUSTED", vstart, 2)
+}
+
func TestDisableConsolidator(t *testing.T) {
totalConsolidationsTag := "Waits/Histograms/Consolidations/Count"
initial := framework.FetchInt(framework.DebugVars(), totalConsolidationsTag)
diff --git a/go/vt/vttablet/endtoend/transaction_test.go b/go/vt/vttablet/endtoend/transaction_test.go
index 58a1cacbe10..4d46e134a7b 100644
--- a/go/vt/vttablet/endtoend/transaction_test.go
+++ b/go/vt/vttablet/endtoend/transaction_test.go
@@ -22,12 +22,9 @@ import (
"testing"
"time"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv/tabletenvtest"
-
- "google.golang.org/protobuf/proto"
-
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "google.golang.org/protobuf/proto"
"vitess.io/vitess/go/mysql"
"vitess.io/vitess/go/test/utils"
@@ -35,7 +32,6 @@ import (
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
"vitess.io/vitess/go/vt/vttablet/endtoend/framework"
"vitess.io/vitess/go/vt/vttablet/tabletserver"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
)
func TestCommit(t *testing.T) {
@@ -202,30 +198,6 @@ func TestAutoCommit(t *testing.T) {
}
}
-func TestTxPoolSize(t *testing.T) {
- tabletenvtest.LoadTabletEnvFlags()
-
- vstart := framework.DebugVars()
-
- client1 := framework.NewClient()
- err := client1.Begin(false)
- require.NoError(t, err)
- defer client1.Rollback()
- verifyIntValue(t, framework.DebugVars(), "TransactionPoolAvailable", tabletenv.NewCurrentConfig().TxPool.Size-1)
-
- revert := changeVar(t, "TxPoolSize", "1")
- defer revert()
- vend := framework.DebugVars()
- verifyIntValue(t, vend, "TransactionPoolAvailable", 0)
- verifyIntValue(t, vend, "TransactionPoolCapacity", 1)
-
- client2 := framework.NewClient()
- err = client2.Begin(false)
- require.Error(t, err)
- require.Contains(t, err.Error(), "connection limit exceeded")
- compareIntDiff(t, framework.DebugVars(), "Errors/RESOURCE_EXHAUSTED", vstart, 1)
-}
-
func TestForUpdate(t *testing.T) {
for _, mode := range []string{"for update", "lock in share mode"} {
client := framework.NewClient()
diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go
index 79123d5ba3f..d2c33c2a929 100644
--- a/go/vt/vttablet/tabletserver/tabletserver.go
+++ b/go/vt/vttablet/tabletserver/tabletserver.go
@@ -2039,7 +2039,11 @@ func (tsv *TabletServer) StreamPoolSize() int {
// SetTxPoolSize changes the tx pool size to the specified value.
func (tsv *TabletServer) SetTxPoolSize(ctx context.Context, val int) error {
- return tsv.te.txPool.scp.conns.SetCapacity(ctx, int64(val))
+ // TxPool manages two pools, one for normal connections and one for CLIENT_FOUND_ROWS capability enabled on the connections.
+ if err := tsv.te.txPool.scp.conns.SetCapacity(ctx, int64(val)); err != nil {
+ return err
+ }
+ return tsv.te.txPool.scp.foundRowsPool.SetCapacity(ctx, int64(val))
}
// TxPoolSize returns the tx pool size.
From de16affb4deb550a9587406a0393c704f791f51b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9s=20Taylor?=
Date: Fri, 8 Nov 2024 13:45:53 +0100
Subject: [PATCH 41/78] bugfix: Handle CTEs with columns named in the CTE def
(#17179)
Signed-off-by: Andres Taylor
---
go/test/endtoend/vtgate/vitess_tester/cte/queries.test | 9 +++++++++
go/vt/vtgate/planbuilder/operators/SQL_builder.go | 6 +++---
go/vt/vtgate/planbuilder/testdata/cte_cases.json | 4 ++--
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/go/test/endtoend/vtgate/vitess_tester/cte/queries.test b/go/test/endtoend/vtgate/vitess_tester/cte/queries.test
index 173dcaeb6ba..d4aa8b27ab5 100644
--- a/go/test/endtoend/vtgate/vitess_tester/cte/queries.test
+++ b/go/test/endtoend/vtgate/vitess_tester/cte/queries.test
@@ -30,6 +30,15 @@ WITH RECURSIVE numbers AS (SELECT 1 AS n
SELECT *
FROM numbers;
+# Simple recursive CTE using literal values, column named in the CTE def
+WITH RECURSIVE numbers(n) AS (SELECT 1
+ UNION ALL
+ SELECT n + 1
+ FROM numbers
+ WHERE n < 5)
+SELECT *
+FROM numbers;
+
# Recursive CTE joined with a normal table
WITH RECURSIVE emp_cte AS (SELECT id, name, manager_id
FROM employees
diff --git a/go/vt/vtgate/planbuilder/operators/SQL_builder.go b/go/vt/vtgate/planbuilder/operators/SQL_builder.go
index 20af2a698c3..fc91569981d 100644
--- a/go/vt/vtgate/planbuilder/operators/SQL_builder.go
+++ b/go/vt/vtgate/planbuilder/operators/SQL_builder.go
@@ -242,7 +242,7 @@ func (qb *queryBuilder) unionWith(other *queryBuilder, distinct bool) {
}
}
-func (qb *queryBuilder) recursiveCteWith(other *queryBuilder, name, alias string, distinct bool) {
+func (qb *queryBuilder) recursiveCteWith(other *queryBuilder, name, alias string, distinct bool, columns sqlparser.Columns) {
cteUnion := &sqlparser.Union{
Left: qb.stmt.(sqlparser.SelectStatement),
Right: other.stmt.(sqlparser.SelectStatement),
@@ -254,7 +254,7 @@ func (qb *queryBuilder) recursiveCteWith(other *queryBuilder, name, alias string
Recursive: true,
CTEs: []*sqlparser.CommonTableExpr{{
ID: sqlparser.NewIdentifierCS(name),
- Columns: nil,
+ Columns: columns,
Subquery: cteUnion,
}},
},
@@ -726,7 +726,7 @@ func buildRecursiveCTE(op *RecurseCTE, qb *queryBuilder) {
panic(err)
}
- qb.recursiveCteWith(qbR, op.Def.Name, infoFor.GetAliasedTableExpr().As.String(), op.Distinct)
+ qb.recursiveCteWith(qbR, op.Def.Name, infoFor.GetAliasedTableExpr().As.String(), op.Distinct, op.Def.Columns)
}
func mergeHaving(h1, h2 *sqlparser.Where) *sqlparser.Where {
diff --git a/go/vt/vtgate/planbuilder/testdata/cte_cases.json b/go/vt/vtgate/planbuilder/testdata/cte_cases.json
index 016159806d7..12f92f5a9f4 100644
--- a/go/vt/vtgate/planbuilder/testdata/cte_cases.json
+++ b/go/vt/vtgate/planbuilder/testdata/cte_cases.json
@@ -2260,8 +2260,8 @@
"Name": "main",
"Sharded": false
},
- "FieldQuery": "with recursive cte as (select 1 from dual where 1 != 1 union all select n + 1 from cte where 1 != 1) select n from cte where 1 != 1",
- "Query": "with recursive cte as (select 1 from dual union all select n + 1 from cte where n < 5) select n from cte",
+ "FieldQuery": "with recursive cte(n) as (select 1 from dual where 1 != 1 union all select n + 1 from cte where 1 != 1) select n from cte where 1 != 1",
+ "Query": "with recursive cte(n) as (select 1 from dual union all select n + 1 from cte where n < 5) select n from cte",
"Table": "dual"
},
"TablesUsed": [
From 78f7db2cee1ae7b6036dfdc523220d1a16866414 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Fri, 8 Nov 2024 20:53:17 +0530
Subject: [PATCH 42/78] Atomic Transaction `StartCommit` api to return the
commit state (#17116)
Signed-off-by: Harshit Gangal
---
go/vt/proto/query/query.pb.go | 1540 +++++++++--------
go/vt/proto/query/query_vtproto.pb.go | 28 +
go/vt/vtcombo/tablet_map.go | 6 +-
go/vt/vtexplain/vtexplain_vttablet.go | 2 +-
go/vt/vtgate/tx_conn.go | 44 +-
go/vt/vtgate/tx_conn_test.go | 38 +-
go/vt/vttablet/endtoend/framework/client.go | 2 +-
go/vt/vttablet/endtoend/transaction_test.go | 3 +-
go/vt/vttablet/grpcqueryservice/server.go | 7 +-
go/vt/vttablet/grpctabletconn/conn.go | 14 +-
go/vt/vttablet/queryservice/queryservice.go | 2 +-
go/vt/vttablet/queryservice/wrapped.go | 8 +-
go/vt/vttablet/sandboxconn/sandboxconn.go | 50 +-
.../tabletconntest/fakequeryservice.go | 6 +-
.../vttablet/tabletconntest/tabletconntest.go | 21 +-
.../vttablet/tabletmanager/framework_test.go | 4 +-
go/vt/vttablet/tabletserver/dt_executor.go | 16 +-
.../vttablet/tabletserver/dt_executor_test.go | 31 +-
go/vt/vttablet/tabletserver/tabletserver.go | 8 +-
.../tabletserver/tabletserver_test.go | 6 +-
proto/query.proto | 10 +-
web/vtadmin/src/proto/vtadmin.d.ts | 13 +
web/vtadmin/src/proto/vtadmin.js | 74 +-
23 files changed, 1102 insertions(+), 831 deletions(-)
diff --git a/go/vt/proto/query/query.pb.go b/go/vt/proto/query/query.pb.go
index cc2f7c160f5..68f99522584 100644
--- a/go/vt/proto/query/query.pb.go
+++ b/go/vt/proto/query/query.pb.go
@@ -431,6 +431,55 @@ func (Type) EnumDescriptor() ([]byte, []int) {
return file_query_proto_rawDescGZIP(), []int{2}
}
+type StartCommitState int32
+
+const (
+ StartCommitState_Unknown StartCommitState = 0
+ StartCommitState_Fail StartCommitState = 1
+ StartCommitState_Success StartCommitState = 2
+)
+
+// Enum value maps for StartCommitState.
+var (
+ StartCommitState_name = map[int32]string{
+ 0: "Unknown",
+ 1: "Fail",
+ 2: "Success",
+ }
+ StartCommitState_value = map[string]int32{
+ "Unknown": 0,
+ "Fail": 1,
+ "Success": 2,
+ }
+)
+
+func (x StartCommitState) Enum() *StartCommitState {
+ p := new(StartCommitState)
+ *p = x
+ return p
+}
+
+func (x StartCommitState) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (StartCommitState) Descriptor() protoreflect.EnumDescriptor {
+ return file_query_proto_enumTypes[3].Descriptor()
+}
+
+func (StartCommitState) Type() protoreflect.EnumType {
+ return &file_query_proto_enumTypes[3]
+}
+
+func (x StartCommitState) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use StartCommitState.Descriptor instead.
+func (StartCommitState) EnumDescriptor() ([]byte, []int) {
+ return file_query_proto_rawDescGZIP(), []int{3}
+}
+
// TransactionState represents the state of a distributed transaction.
type TransactionState int32
@@ -468,11 +517,11 @@ func (x TransactionState) String() string {
}
func (TransactionState) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[3].Descriptor()
+ return file_query_proto_enumTypes[4].Descriptor()
}
func (TransactionState) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[3]
+ return &file_query_proto_enumTypes[4]
}
func (x TransactionState) Number() protoreflect.EnumNumber {
@@ -481,7 +530,7 @@ func (x TransactionState) Number() protoreflect.EnumNumber {
// Deprecated: Use TransactionState.Descriptor instead.
func (TransactionState) EnumDescriptor() ([]byte, []int) {
- return file_query_proto_rawDescGZIP(), []int{3}
+ return file_query_proto_rawDescGZIP(), []int{4}
}
// SchemaTableType represents the type of table requested.
@@ -521,11 +570,11 @@ func (x SchemaTableType) String() string {
}
func (SchemaTableType) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[4].Descriptor()
+ return file_query_proto_enumTypes[5].Descriptor()
}
func (SchemaTableType) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[4]
+ return &file_query_proto_enumTypes[5]
}
func (x SchemaTableType) Number() protoreflect.EnumNumber {
@@ -534,7 +583,7 @@ func (x SchemaTableType) Number() protoreflect.EnumNumber {
// Deprecated: Use SchemaTableType.Descriptor instead.
func (SchemaTableType) EnumDescriptor() ([]byte, []int) {
- return file_query_proto_rawDescGZIP(), []int{4}
+ return file_query_proto_rawDescGZIP(), []int{5}
}
type ExecuteOptions_IncludedFields int32
@@ -570,11 +619,11 @@ func (x ExecuteOptions_IncludedFields) String() string {
}
func (ExecuteOptions_IncludedFields) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[5].Descriptor()
+ return file_query_proto_enumTypes[6].Descriptor()
}
func (ExecuteOptions_IncludedFields) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[5]
+ return &file_query_proto_enumTypes[6]
}
func (x ExecuteOptions_IncludedFields) Number() protoreflect.EnumNumber {
@@ -622,11 +671,11 @@ func (x ExecuteOptions_Workload) String() string {
}
func (ExecuteOptions_Workload) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[6].Descriptor()
+ return file_query_proto_enumTypes[7].Descriptor()
}
func (ExecuteOptions_Workload) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[6]
+ return &file_query_proto_enumTypes[7]
}
func (x ExecuteOptions_Workload) Number() protoreflect.EnumNumber {
@@ -687,11 +736,11 @@ func (x ExecuteOptions_TransactionIsolation) String() string {
}
func (ExecuteOptions_TransactionIsolation) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[7].Descriptor()
+ return file_query_proto_enumTypes[8].Descriptor()
}
func (ExecuteOptions_TransactionIsolation) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[7]
+ return &file_query_proto_enumTypes[8]
}
func (x ExecuteOptions_TransactionIsolation) Number() protoreflect.EnumNumber {
@@ -751,11 +800,11 @@ func (x ExecuteOptions_PlannerVersion) String() string {
}
func (ExecuteOptions_PlannerVersion) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[8].Descriptor()
+ return file_query_proto_enumTypes[9].Descriptor()
}
func (ExecuteOptions_PlannerVersion) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[8]
+ return &file_query_proto_enumTypes[9]
}
func (x ExecuteOptions_PlannerVersion) Number() protoreflect.EnumNumber {
@@ -803,11 +852,11 @@ func (x ExecuteOptions_Consolidator) String() string {
}
func (ExecuteOptions_Consolidator) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[9].Descriptor()
+ return file_query_proto_enumTypes[10].Descriptor()
}
func (ExecuteOptions_Consolidator) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[9]
+ return &file_query_proto_enumTypes[10]
}
func (x ExecuteOptions_Consolidator) Number() protoreflect.EnumNumber {
@@ -852,11 +901,11 @@ func (x ExecuteOptions_TransactionAccessMode) String() string {
}
func (ExecuteOptions_TransactionAccessMode) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[10].Descriptor()
+ return file_query_proto_enumTypes[11].Descriptor()
}
func (ExecuteOptions_TransactionAccessMode) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[10]
+ return &file_query_proto_enumTypes[11]
}
func (x ExecuteOptions_TransactionAccessMode) Number() protoreflect.EnumNumber {
@@ -902,11 +951,11 @@ func (x StreamEvent_Statement_Category) String() string {
}
func (StreamEvent_Statement_Category) Descriptor() protoreflect.EnumDescriptor {
- return file_query_proto_enumTypes[11].Descriptor()
+ return file_query_proto_enumTypes[12].Descriptor()
}
func (StreamEvent_Statement_Category) Type() protoreflect.EnumType {
- return &file_query_proto_enumTypes[11]
+ return &file_query_proto_enumTypes[12]
}
func (x StreamEvent_Statement_Category) Number() protoreflect.EnumNumber {
@@ -3193,6 +3242,8 @@ type StartCommitResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ State StartCommitState `protobuf:"varint,1,opt,name=state,proto3,enum=query.StartCommitState" json:"state,omitempty"`
}
func (x *StartCommitResponse) Reset() {
@@ -3227,6 +3278,13 @@ func (*StartCommitResponse) Descriptor() ([]byte, []int) {
return file_query_proto_rawDescGZIP(), []int{32}
}
+func (x *StartCommitResponse) GetState() StartCommitState {
+ if x != nil {
+ return x.State
+ }
+ return StartCommitState_Unknown
+}
+
// SetRollbackRequest is the payload to SetRollback
type SetRollbackRequest struct {
state protoimpl.MessageState
@@ -6300,84 +6358,13 @@ var file_query_proto_rawDesc = []byte{
0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x53,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x44, 0x0a, 0x13, 0x53,
0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61,
- 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43,
- 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d,
- 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
- 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11,
- 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
- 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e,
- 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
- 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64,
- 0x74, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61,
- 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x1a, 0x43,
- 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43,
- 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d,
- 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
- 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11,
- 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
- 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b,
- 0x43, 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x16,
- 0x52, 0x65, 0x61, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c,
- 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43,
- 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64,
- 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47,
- 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d,
- 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25,
- 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d,
- 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74,
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x17, 0x52, 0x65, 0x61,
- 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54,
- 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
- 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xef, 0x01, 0x0a,
- 0x1d, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f,
- 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c,
- 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74,
- 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66,
- 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12,
- 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c,
- 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65,
- 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61,
- 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54,
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a,
- 0x0b, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0a, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x22, 0x60,
- 0x0a, 0x1e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e,
- 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x3e, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54,
- 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
- 0x74, 0x61, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x22, 0xe0, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65,
+ 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x17, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
+ 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65,
0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61,
0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
@@ -6388,73 +6375,49 @@ var file_query_proto_rawDesc = []byte{
0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64,
0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
- 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42,
- 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
- 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65,
- 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72,
- 0x69, 0x65, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x14, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65,
- 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05,
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74,
- 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72,
- 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72,
- 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
- 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
- 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
- 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73,
- 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x19, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74,
- 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44,
- 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
- 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43,
- 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61,
- 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61,
- 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75,
- 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70,
- 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
- 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22, 0x84, 0x02,
- 0x0a, 0x1a, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65,
- 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05,
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74,
- 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72,
- 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72,
- 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
- 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
- 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
- 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73,
- 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a,
+ 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12,
+ 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74,
+ 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63,
+ 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x1a, 0x43, 0x6f,
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61,
+ 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56,
+ 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69,
+ 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
+ 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x43,
+ 0x6f, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x16, 0x52,
+ 0x65, 0x61, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65,
+ 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61,
+ 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69,
+ 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61,
+ 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65,
+ 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a,
+ 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69, 0x64, 0x22, 0x51, 0x0a, 0x17, 0x52, 0x65, 0x61, 0x64,
+ 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xef, 0x01, 0x0a, 0x1d,
+ 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a,
0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72,
0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66,
@@ -6465,128 +6428,77 @@ var file_query_proto_rawDesc = []byte{
0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c,
0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61,
- 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x22, 0x43, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72,
- 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65,
- 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63,
- 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63,
- 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13,
- 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44,
- 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e,
- 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x71, 0x75,
- 0x65, 0x72, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x40,
- 0x0a, 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0xe8, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x45, 0x78, 0x65, 0x63,
- 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66,
- 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e,
- 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69,
- 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52,
- 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72,
- 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
- 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e,
- 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0a, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x41, 0x67, 0x65, 0x22, 0x60, 0x0a,
+ 0x1e, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x54, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x3e, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72,
+ 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
+ 0xe0, 0x02, 0x0a, 0x13, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c,
+ 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65,
+ 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54,
+ 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d,
+ 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12,
+ 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06,
+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f,
+ 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12,
+ 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49,
+ 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
+ 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69,
+ 0x65, 0x73, 0x22, 0xfe, 0x01, 0x0a, 0x14, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63,
+ 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72,
+ 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25,
+ 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12,
+ 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
+ 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x73, 0x22, 0xe6, 0x02, 0x0a, 0x19, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63,
+ 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
+ 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52,
+ 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f,
+ 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61,
+ 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74,
+ 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72,
+ 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
+ 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65,
0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72,
- 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x16,
- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50,
- 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a,
- 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41,
- 0x6c, 0x69, 0x61, 0x73, 0x22, 0xee, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72,
- 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c,
- 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61,
- 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74,
- 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64,
- 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06,
- 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72,
- 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64,
- 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07,
- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a,
- 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
- 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72,
- 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75,
- 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76,
- 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50,
- 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a,
- 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41,
- 0x6c, 0x69, 0x61, 0x73, 0x22, 0xf4, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49,
- 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c,
- 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74,
- 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65,
- 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69,
- 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74,
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75,
- 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51,
- 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
- 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a,
- 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72,
- 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x42,
- 0x65, 0x67, 0x69, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x1b,
- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63,
+ 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22, 0x84, 0x02, 0x0a,
+ 0x1a, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63,
0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72,
0x70, 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72,
@@ -6595,17 +6507,52 @@ var file_query_proto_rawDesc = []byte{
0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25,
0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65,
- 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
- 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73,
- 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x13, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x73, 0x22, 0xfa, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
- 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75,
+ 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12,
+ 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
+ 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x14, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13,
+ 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70,
+ 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a,
+ 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65,
+ 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49,
+ 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c,
+ 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72,
+ 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
+ 0x43, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x41, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66,
+ 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e,
+ 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69,
+ 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52,
+ 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a,
+ 0x03, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x40, 0x0a,
+ 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
+ 0xe8, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75,
0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66,
0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43,
@@ -6620,34 +6567,28 @@ var file_query_proto_rawDesc = []byte{
0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72,
0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75,
- 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65,
- 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72,
- 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x67, 0x69,
- 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x10, 0x70, 0x6f, 0x73, 0x74, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65,
- 0x73, 0x22, 0xac, 0x02, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67,
- 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52,
- 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a,
- 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
- 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75,
- 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72,
- 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
- 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
- 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69,
- 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52,
- 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x32, 0x0a, 0x15,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73,
- 0x22, 0x87, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65,
+ 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
+ 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x16, 0x52,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
+ 0x69, 0x61, 0x73, 0x22, 0xee, 0x02, 0x0a, 0x1b, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x53,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49,
@@ -6659,190 +6600,313 @@ var file_query_proto_rawDesc = []byte{
0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75,
0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e,
- 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65,
- 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a,
- 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0xbe, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d,
- 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
- 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x65,
- 0x61, 0x6c, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63,
- 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
- 0x73, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79,
- 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x12, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x6f,
- 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f,
- 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x66,
- 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09,
- 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52,
- 0x08, 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70, 0x73,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x2e, 0x0a,
- 0x13, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x69, 0x65, 0x77,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x21, 0x0a,
- 0x0c, 0x75, 0x64, 0x66, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x64, 0x66, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64,
- 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x78, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65,
- 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x78, 0x55, 0x6e, 0x72, 0x65, 0x73,
- 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x0e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67,
- 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x6e,
- 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x75, 0x6e, 0x68, 0x65,
- 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x3d, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x69, 0x6e, 0x12,
+ 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51,
+ 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69,
+ 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65,
+ 0x72, 0x69, 0x65, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50, 0x43,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x06,
+ 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
+ 0x69, 0x61, 0x73, 0x22, 0xf4, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42,
+ 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44,
+ 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65,
+ 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43,
+ 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61,
+ 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75,
+ 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75,
+ 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70,
+ 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12,
+ 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69,
+ 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x42, 0x65,
+ 0x67, 0x69, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x1b, 0x52,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75,
+ 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70,
+ 0x63, 0x2e, 0x52, 0x50, 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a,
+ 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
+ 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72,
+ 0x76, 0x65, 0x64, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12,
+ 0x32, 0x0a, 0x15, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
+ 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x73, 0x22, 0xfa, 0x02, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42,
+ 0x65, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61,
+ 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56,
+ 0x54, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69,
+ 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64,
+ 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
+ 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42,
+ 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
+ 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
+ 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x51, 0x75, 0x65, 0x72, 0x69,
+ 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x67, 0x69, 0x6e,
+ 0x5f, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10,
+ 0x70, 0x6f, 0x73, 0x74, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73,
+ 0x22, 0xac, 0x02, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x65, 0x67, 0x69,
+ 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x50,
+ 0x43, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a,
+ 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61,
+ 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49,
+ 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61,
+ 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0b,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73,
+ 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x73, 0x73,
+ 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22,
+ 0x87, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x13, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0f, 0x2e, 0x76, 0x74, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44,
+ 0x52, 0x11, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65,
+ 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x13, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65,
+ 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x15, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x56, 0x54, 0x47, 0x61, 0x74, 0x65, 0x43,
+ 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x44, 0x52, 0x11, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61,
+ 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65,
+ 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x6c,
+ 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x22, 0xbe, 0x03, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
+ 0x12, 0x30, 0x0a, 0x14, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65,
+ 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12,
+ 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x73,
+ 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x66, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63,
+ 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08,
+ 0x63, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x70, 0x73, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x71, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13,
+ 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x64, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x76, 0x69, 0x65, 0x77, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c,
+ 0x75, 0x64, 0x66, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0b, 0x75, 0x64, 0x66, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12,
+ 0x23, 0x0a, 0x0d, 0x74, 0x78, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, 0x78, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x6f,
+ 0x6c, 0x76, 0x65, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x0e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
+ 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x61,
+ 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x6e, 0x68,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x75, 0x6e, 0x68, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x79, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
0x3d, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
- 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04,
+ 0x61, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x22, 0x95,
- 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
- 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18,
- 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19,
- 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x61,
- 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x14, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x74, 0x69,
- 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d,
- 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
- 0x69, 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73,
- 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xae, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12,
- 0x0a, 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74,
- 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x17, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
- 0x61, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69,
- 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53,
- 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06,
- 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71,
- 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72,
- 0x67, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x07, 0x55,
- 0x44, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x67,
- 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0b,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x0b, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a,
- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x47,
- 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x22, 0x0a, 0x04, 0x75, 0x64, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e,
- 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x44, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04,
- 0x75, 0x64, 0x66, 0x73, 0x12, 0x58, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65,
- 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65,
- 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x42,
- 0x0a, 0x14, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
- 0x38, 0x01, 0x2a, 0x92, 0x03, 0x0a, 0x09, 0x4d, 0x79, 0x53, 0x71, 0x6c, 0x46, 0x6c, 0x61, 0x67,
- 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e,
- 0x4f, 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x01, 0x12, 0x10,
- 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x02,
- 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46,
- 0x4c, 0x41, 0x47, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c,
- 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09,
- 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x55,
- 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x20, 0x12, 0x11,
- 0x0a, 0x0d, 0x5a, 0x45, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
- 0x40, 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47,
- 0x10, 0x80, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x47,
- 0x10, 0x80, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x43, 0x52,
- 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x04, 0x12, 0x13, 0x0a,
- 0x0e, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
- 0x80, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80,
- 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x4e, 0x4f, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f,
- 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x20, 0x12, 0x17, 0x0a,
- 0x12, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x57, 0x5f, 0x46,
- 0x4c, 0x41, 0x47, 0x10, 0x80, 0x40, 0x12, 0x0e, 0x0a, 0x08, 0x4e, 0x55, 0x4d, 0x5f, 0x46, 0x4c,
- 0x41, 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x50, 0x41, 0x52, 0x54, 0x5f, 0x4b,
- 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x01, 0x12, 0x10, 0x0a, 0x0a, 0x47,
- 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x11, 0x0a,
- 0x0b, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x04,
- 0x12, 0x11, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x43, 0x4d, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
- 0x80, 0x80, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x6b, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12,
- 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0a, 0x49, 0x53, 0x49,
- 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x4c, 0x10, 0x80, 0x02, 0x12, 0x0f, 0x0a, 0x0a, 0x49, 0x53,
- 0x55, 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x80, 0x04, 0x12, 0x0c, 0x0a, 0x07, 0x49,
- 0x53, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x80, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x49, 0x53, 0x51,
- 0x55, 0x4f, 0x54, 0x45, 0x44, 0x10, 0x80, 0x10, 0x12, 0x0b, 0x0a, 0x06, 0x49, 0x53, 0x54, 0x45,
- 0x58, 0x54, 0x10, 0x80, 0x20, 0x12, 0x0d, 0x0a, 0x08, 0x49, 0x53, 0x42, 0x49, 0x4e, 0x41, 0x52,
- 0x59, 0x10, 0x80, 0x40, 0x2a, 0xd7, 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a,
- 0x09, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x04,
- 0x49, 0x4e, 0x54, 0x38, 0x10, 0x81, 0x02, 0x12, 0x0a, 0x0a, 0x05, 0x55, 0x49, 0x4e, 0x54, 0x38,
- 0x10, 0x82, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x83, 0x02, 0x12,
- 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x84, 0x06, 0x12, 0x0a, 0x0a, 0x05,
- 0x49, 0x4e, 0x54, 0x32, 0x34, 0x10, 0x85, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54,
- 0x32, 0x34, 0x10, 0x86, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x87,
- 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x88, 0x06, 0x12, 0x0a,
- 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x89, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49,
- 0x4e, 0x54, 0x36, 0x34, 0x10, 0x8a, 0x06, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54,
- 0x33, 0x32, 0x10, 0x8b, 0x08, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34,
- 0x10, 0x8c, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50,
- 0x10, 0x8d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x8e, 0x10, 0x12, 0x09,
- 0x0a, 0x04, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x8f, 0x10, 0x12, 0x0d, 0x0a, 0x08, 0x44, 0x41, 0x54,
- 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x90, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52,
- 0x10, 0x91, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x12,
- 0x12, 0x09, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x93, 0x30, 0x12, 0x09, 0x0a, 0x04, 0x42,
- 0x4c, 0x4f, 0x42, 0x10, 0x94, 0x50, 0x12, 0x0c, 0x0a, 0x07, 0x56, 0x41, 0x52, 0x43, 0x48, 0x41,
- 0x52, 0x10, 0x95, 0x30, 0x12, 0x0e, 0x0a, 0x09, 0x56, 0x41, 0x52, 0x42, 0x49, 0x4e, 0x41, 0x52,
- 0x59, 0x10, 0x96, 0x50, 0x12, 0x09, 0x0a, 0x04, 0x43, 0x48, 0x41, 0x52, 0x10, 0x97, 0x30, 0x12,
- 0x0b, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x98, 0x50, 0x12, 0x08, 0x0a, 0x03,
- 0x42, 0x49, 0x54, 0x10, 0x99, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x9a,
- 0x10, 0x12, 0x08, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x9b, 0x10, 0x12, 0x09, 0x0a, 0x05, 0x54,
- 0x55, 0x50, 0x4c, 0x45, 0x10, 0x1c, 0x12, 0x0d, 0x0a, 0x08, 0x47, 0x45, 0x4f, 0x4d, 0x45, 0x54,
- 0x52, 0x59, 0x10, 0x9d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x9e, 0x10,
- 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x1f,
- 0x12, 0x0b, 0x0a, 0x06, 0x48, 0x45, 0x58, 0x4e, 0x55, 0x4d, 0x10, 0xa0, 0x20, 0x12, 0x0b, 0x0a,
- 0x06, 0x48, 0x45, 0x58, 0x56, 0x41, 0x4c, 0x10, 0xa1, 0x20, 0x12, 0x0b, 0x0a, 0x06, 0x42, 0x49,
- 0x54, 0x4e, 0x55, 0x4d, 0x10, 0xa2, 0x20, 0x12, 0x0b, 0x0a, 0x06, 0x56, 0x45, 0x43, 0x54, 0x4f,
- 0x52, 0x10, 0xa3, 0x10, 0x12, 0x08, 0x0a, 0x03, 0x52, 0x41, 0x57, 0x10, 0xa4, 0x10, 0x2a, 0x46,
- 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
- 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
- 0x52, 0x4f, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f,
- 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x03, 0x2a, 0x3b, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x45,
- 0x57, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x53, 0x10, 0x01,
- 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x44, 0x46,
- 0x53, 0x10, 0x03, 0x42, 0x35, 0x0a, 0x0f, 0x69, 0x6f, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x22, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69,
- 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 0x6e, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x69, 0x6e, 0x12, 0x3d,
+ 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61,
+ 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x18, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x4d, 0x61, 0x78, 0x22, 0x95, 0x02,
+ 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54,
+ 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a,
+ 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x3f, 0x0a, 0x1c, 0x70, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x70,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x65, 0x72, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x6c,
+ 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x14, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d,
+ 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65,
+ 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x4a,
+ 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xae, 0x01, 0x0a, 0x13, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a,
+ 0x04, 0x64, 0x74, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x74, 0x69,
+ 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x17, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
+ 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
+ 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63,
+ 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x06, 0x74,
+ 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x71, 0x75,
+ 0x65, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
+ 0x65, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53,
+ 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x07, 0x55, 0x44,
+ 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x67, 0x67,
+ 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
+ 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0b, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x0b, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x72,
+ 0x65, 0x74, 0x75, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x47, 0x65,
+ 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x22, 0x0a, 0x04, 0x75, 0x64, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x55, 0x44, 0x46, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75,
+ 0x64, 0x66, 0x73, 0x12, 0x58, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66,
+ 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
+ 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66,
+ 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x42, 0x0a,
+ 0x14, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x2a, 0x92, 0x03, 0x0a, 0x09, 0x4d, 0x79, 0x53, 0x71, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12,
+ 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f,
+ 0x54, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x01, 0x12, 0x10, 0x0a,
+ 0x0c, 0x50, 0x52, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x02, 0x12,
+ 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c,
+ 0x41, 0x47, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45,
+ 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x42,
+ 0x4c, 0x4f, 0x42, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e,
+ 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x20, 0x12, 0x11, 0x0a,
+ 0x0d, 0x5a, 0x45, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x4c, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x40,
+ 0x12, 0x10, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
+ 0x80, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10,
+ 0x80, 0x02, 0x12, 0x18, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x49, 0x4e, 0x43, 0x52, 0x45,
+ 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x04, 0x12, 0x13, 0x0a, 0x0e,
+ 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80,
+ 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x53, 0x45, 0x54, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x10,
+ 0x12, 0x1a, 0x0a, 0x15, 0x4e, 0x4f, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56,
+ 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x20, 0x12, 0x17, 0x0a, 0x12,
+ 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x57, 0x5f, 0x46, 0x4c,
+ 0x41, 0x47, 0x10, 0x80, 0x40, 0x12, 0x0e, 0x0a, 0x08, 0x4e, 0x55, 0x4d, 0x5f, 0x46, 0x4c, 0x41,
+ 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x50, 0x41, 0x52, 0x54, 0x5f, 0x4b, 0x45,
+ 0x59, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x01, 0x12, 0x10, 0x0a, 0x0a, 0x47, 0x52,
+ 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x02, 0x12, 0x11, 0x0a, 0x0b,
+ 0x55, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80, 0x80, 0x04, 0x12,
+ 0x11, 0x0a, 0x0b, 0x42, 0x49, 0x4e, 0x43, 0x4d, 0x50, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x80,
+ 0x80, 0x08, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x6b, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x08,
+ 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0a, 0x49, 0x53, 0x49, 0x4e,
+ 0x54, 0x45, 0x47, 0x52, 0x41, 0x4c, 0x10, 0x80, 0x02, 0x12, 0x0f, 0x0a, 0x0a, 0x49, 0x53, 0x55,
+ 0x4e, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x44, 0x10, 0x80, 0x04, 0x12, 0x0c, 0x0a, 0x07, 0x49, 0x53,
+ 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x80, 0x08, 0x12, 0x0d, 0x0a, 0x08, 0x49, 0x53, 0x51, 0x55,
+ 0x4f, 0x54, 0x45, 0x44, 0x10, 0x80, 0x10, 0x12, 0x0b, 0x0a, 0x06, 0x49, 0x53, 0x54, 0x45, 0x58,
+ 0x54, 0x10, 0x80, 0x20, 0x12, 0x0d, 0x0a, 0x08, 0x49, 0x53, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59,
+ 0x10, 0x80, 0x40, 0x2a, 0xd7, 0x03, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09,
+ 0x4e, 0x55, 0x4c, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x04, 0x49,
+ 0x4e, 0x54, 0x38, 0x10, 0x81, 0x02, 0x12, 0x0a, 0x0a, 0x05, 0x55, 0x49, 0x4e, 0x54, 0x38, 0x10,
+ 0x82, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x83, 0x02, 0x12, 0x0b,
+ 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x84, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49,
+ 0x4e, 0x54, 0x32, 0x34, 0x10, 0x85, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x32,
+ 0x34, 0x10, 0x86, 0x06, 0x12, 0x0a, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x87, 0x02,
+ 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x88, 0x06, 0x12, 0x0a, 0x0a,
+ 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x89, 0x02, 0x12, 0x0b, 0x0a, 0x06, 0x55, 0x49, 0x4e,
+ 0x54, 0x36, 0x34, 0x10, 0x8a, 0x06, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x33,
+ 0x32, 0x10, 0x8b, 0x08, 0x12, 0x0c, 0x0a, 0x07, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x36, 0x34, 0x10,
+ 0x8c, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10,
+ 0x8d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x8e, 0x10, 0x12, 0x09, 0x0a,
+ 0x04, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x8f, 0x10, 0x12, 0x0d, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x45,
+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x90, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 0x10,
+ 0x91, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43, 0x49, 0x4d, 0x41, 0x4c, 0x10, 0x12, 0x12,
+ 0x09, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x93, 0x30, 0x12, 0x09, 0x0a, 0x04, 0x42, 0x4c,
+ 0x4f, 0x42, 0x10, 0x94, 0x50, 0x12, 0x0c, 0x0a, 0x07, 0x56, 0x41, 0x52, 0x43, 0x48, 0x41, 0x52,
+ 0x10, 0x95, 0x30, 0x12, 0x0e, 0x0a, 0x09, 0x56, 0x41, 0x52, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59,
+ 0x10, 0x96, 0x50, 0x12, 0x09, 0x0a, 0x04, 0x43, 0x48, 0x41, 0x52, 0x10, 0x97, 0x30, 0x12, 0x0b,
+ 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x98, 0x50, 0x12, 0x08, 0x0a, 0x03, 0x42,
+ 0x49, 0x54, 0x10, 0x99, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x9a, 0x10,
+ 0x12, 0x08, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x9b, 0x10, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x55,
+ 0x50, 0x4c, 0x45, 0x10, 0x1c, 0x12, 0x0d, 0x0a, 0x08, 0x47, 0x45, 0x4f, 0x4d, 0x45, 0x54, 0x52,
+ 0x59, 0x10, 0x9d, 0x10, 0x12, 0x09, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x9e, 0x10, 0x12,
+ 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x1f, 0x12,
+ 0x0b, 0x0a, 0x06, 0x48, 0x45, 0x58, 0x4e, 0x55, 0x4d, 0x10, 0xa0, 0x20, 0x12, 0x0b, 0x0a, 0x06,
+ 0x48, 0x45, 0x58, 0x56, 0x41, 0x4c, 0x10, 0xa1, 0x20, 0x12, 0x0b, 0x0a, 0x06, 0x42, 0x49, 0x54,
+ 0x4e, 0x55, 0x4d, 0x10, 0xa2, 0x20, 0x12, 0x0b, 0x0a, 0x06, 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52,
+ 0x10, 0xa3, 0x10, 0x12, 0x08, 0x0a, 0x03, 0x52, 0x41, 0x57, 0x10, 0xa4, 0x10, 0x2a, 0x36, 0x0a,
+ 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x08,
+ 0x0a, 0x04, 0x46, 0x61, 0x69, 0x6c, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63,
+ 0x65, 0x73, 0x73, 0x10, 0x02, 0x2a, 0x46, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52,
+ 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x4f, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10,
+ 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x03, 0x2a, 0x3b, 0x0a,
+ 0x0f, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x45, 0x57, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54,
+ 0x41, 0x42, 0x4c, 0x45, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02,
+ 0x12, 0x08, 0x0a, 0x04, 0x55, 0x44, 0x46, 0x53, 0x10, 0x03, 0x42, 0x35, 0x0a, 0x0f, 0x69, 0x6f,
+ 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x22, 0x76,
+ 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f,
+ 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -6857,247 +6921,249 @@ func file_query_proto_rawDescGZIP() []byte {
return file_query_proto_rawDescData
}
-var file_query_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
+var file_query_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
var file_query_proto_msgTypes = make([]protoimpl.MessageInfo, 70)
var file_query_proto_goTypes = []any{
(MySqlFlag)(0), // 0: query.MySqlFlag
(Flag)(0), // 1: query.Flag
(Type)(0), // 2: query.Type
- (TransactionState)(0), // 3: query.TransactionState
- (SchemaTableType)(0), // 4: query.SchemaTableType
- (ExecuteOptions_IncludedFields)(0), // 5: query.ExecuteOptions.IncludedFields
- (ExecuteOptions_Workload)(0), // 6: query.ExecuteOptions.Workload
- (ExecuteOptions_TransactionIsolation)(0), // 7: query.ExecuteOptions.TransactionIsolation
- (ExecuteOptions_PlannerVersion)(0), // 8: query.ExecuteOptions.PlannerVersion
- (ExecuteOptions_Consolidator)(0), // 9: query.ExecuteOptions.Consolidator
- (ExecuteOptions_TransactionAccessMode)(0), // 10: query.ExecuteOptions.TransactionAccessMode
- (StreamEvent_Statement_Category)(0), // 11: query.StreamEvent.Statement.Category
- (*Target)(nil), // 12: query.Target
- (*VTGateCallerID)(nil), // 13: query.VTGateCallerID
- (*EventToken)(nil), // 14: query.EventToken
- (*Value)(nil), // 15: query.Value
- (*BindVariable)(nil), // 16: query.BindVariable
- (*BoundQuery)(nil), // 17: query.BoundQuery
- (*ExecuteOptions)(nil), // 18: query.ExecuteOptions
- (*Field)(nil), // 19: query.Field
- (*Row)(nil), // 20: query.Row
- (*QueryResult)(nil), // 21: query.QueryResult
- (*QueryWarning)(nil), // 22: query.QueryWarning
- (*StreamEvent)(nil), // 23: query.StreamEvent
- (*ExecuteRequest)(nil), // 24: query.ExecuteRequest
- (*ExecuteResponse)(nil), // 25: query.ExecuteResponse
- (*ResultWithError)(nil), // 26: query.ResultWithError
- (*StreamExecuteRequest)(nil), // 27: query.StreamExecuteRequest
- (*StreamExecuteResponse)(nil), // 28: query.StreamExecuteResponse
- (*BeginRequest)(nil), // 29: query.BeginRequest
- (*BeginResponse)(nil), // 30: query.BeginResponse
- (*CommitRequest)(nil), // 31: query.CommitRequest
- (*CommitResponse)(nil), // 32: query.CommitResponse
- (*RollbackRequest)(nil), // 33: query.RollbackRequest
- (*RollbackResponse)(nil), // 34: query.RollbackResponse
- (*PrepareRequest)(nil), // 35: query.PrepareRequest
- (*PrepareResponse)(nil), // 36: query.PrepareResponse
- (*CommitPreparedRequest)(nil), // 37: query.CommitPreparedRequest
- (*CommitPreparedResponse)(nil), // 38: query.CommitPreparedResponse
- (*RollbackPreparedRequest)(nil), // 39: query.RollbackPreparedRequest
- (*RollbackPreparedResponse)(nil), // 40: query.RollbackPreparedResponse
- (*CreateTransactionRequest)(nil), // 41: query.CreateTransactionRequest
- (*CreateTransactionResponse)(nil), // 42: query.CreateTransactionResponse
- (*StartCommitRequest)(nil), // 43: query.StartCommitRequest
- (*StartCommitResponse)(nil), // 44: query.StartCommitResponse
- (*SetRollbackRequest)(nil), // 45: query.SetRollbackRequest
- (*SetRollbackResponse)(nil), // 46: query.SetRollbackResponse
- (*ConcludeTransactionRequest)(nil), // 47: query.ConcludeTransactionRequest
- (*ConcludeTransactionResponse)(nil), // 48: query.ConcludeTransactionResponse
- (*ReadTransactionRequest)(nil), // 49: query.ReadTransactionRequest
- (*ReadTransactionResponse)(nil), // 50: query.ReadTransactionResponse
- (*UnresolvedTransactionsRequest)(nil), // 51: query.UnresolvedTransactionsRequest
- (*UnresolvedTransactionsResponse)(nil), // 52: query.UnresolvedTransactionsResponse
- (*BeginExecuteRequest)(nil), // 53: query.BeginExecuteRequest
- (*BeginExecuteResponse)(nil), // 54: query.BeginExecuteResponse
- (*BeginStreamExecuteRequest)(nil), // 55: query.BeginStreamExecuteRequest
- (*BeginStreamExecuteResponse)(nil), // 56: query.BeginStreamExecuteResponse
- (*MessageStreamRequest)(nil), // 57: query.MessageStreamRequest
- (*MessageStreamResponse)(nil), // 58: query.MessageStreamResponse
- (*MessageAckRequest)(nil), // 59: query.MessageAckRequest
- (*MessageAckResponse)(nil), // 60: query.MessageAckResponse
- (*ReserveExecuteRequest)(nil), // 61: query.ReserveExecuteRequest
- (*ReserveExecuteResponse)(nil), // 62: query.ReserveExecuteResponse
- (*ReserveStreamExecuteRequest)(nil), // 63: query.ReserveStreamExecuteRequest
- (*ReserveStreamExecuteResponse)(nil), // 64: query.ReserveStreamExecuteResponse
- (*ReserveBeginExecuteRequest)(nil), // 65: query.ReserveBeginExecuteRequest
- (*ReserveBeginExecuteResponse)(nil), // 66: query.ReserveBeginExecuteResponse
- (*ReserveBeginStreamExecuteRequest)(nil), // 67: query.ReserveBeginStreamExecuteRequest
- (*ReserveBeginStreamExecuteResponse)(nil), // 68: query.ReserveBeginStreamExecuteResponse
- (*ReleaseRequest)(nil), // 69: query.ReleaseRequest
- (*ReleaseResponse)(nil), // 70: query.ReleaseResponse
- (*StreamHealthRequest)(nil), // 71: query.StreamHealthRequest
- (*RealtimeStats)(nil), // 72: query.RealtimeStats
- (*AggregateStats)(nil), // 73: query.AggregateStats
- (*StreamHealthResponse)(nil), // 74: query.StreamHealthResponse
- (*TransactionMetadata)(nil), // 75: query.TransactionMetadata
- (*GetSchemaRequest)(nil), // 76: query.GetSchemaRequest
- (*UDFInfo)(nil), // 77: query.UDFInfo
- (*GetSchemaResponse)(nil), // 78: query.GetSchemaResponse
- nil, // 79: query.BoundQuery.BindVariablesEntry
- (*StreamEvent_Statement)(nil), // 80: query.StreamEvent.Statement
- nil, // 81: query.GetSchemaResponse.TableDefinitionEntry
- (topodata.TabletType)(0), // 82: topodata.TabletType
- (*vtrpc.CallerID)(nil), // 83: vtrpc.CallerID
- (*vtrpc.RPCError)(nil), // 84: vtrpc.RPCError
- (*topodata.TabletAlias)(nil), // 85: topodata.TabletAlias
+ (StartCommitState)(0), // 3: query.StartCommitState
+ (TransactionState)(0), // 4: query.TransactionState
+ (SchemaTableType)(0), // 5: query.SchemaTableType
+ (ExecuteOptions_IncludedFields)(0), // 6: query.ExecuteOptions.IncludedFields
+ (ExecuteOptions_Workload)(0), // 7: query.ExecuteOptions.Workload
+ (ExecuteOptions_TransactionIsolation)(0), // 8: query.ExecuteOptions.TransactionIsolation
+ (ExecuteOptions_PlannerVersion)(0), // 9: query.ExecuteOptions.PlannerVersion
+ (ExecuteOptions_Consolidator)(0), // 10: query.ExecuteOptions.Consolidator
+ (ExecuteOptions_TransactionAccessMode)(0), // 11: query.ExecuteOptions.TransactionAccessMode
+ (StreamEvent_Statement_Category)(0), // 12: query.StreamEvent.Statement.Category
+ (*Target)(nil), // 13: query.Target
+ (*VTGateCallerID)(nil), // 14: query.VTGateCallerID
+ (*EventToken)(nil), // 15: query.EventToken
+ (*Value)(nil), // 16: query.Value
+ (*BindVariable)(nil), // 17: query.BindVariable
+ (*BoundQuery)(nil), // 18: query.BoundQuery
+ (*ExecuteOptions)(nil), // 19: query.ExecuteOptions
+ (*Field)(nil), // 20: query.Field
+ (*Row)(nil), // 21: query.Row
+ (*QueryResult)(nil), // 22: query.QueryResult
+ (*QueryWarning)(nil), // 23: query.QueryWarning
+ (*StreamEvent)(nil), // 24: query.StreamEvent
+ (*ExecuteRequest)(nil), // 25: query.ExecuteRequest
+ (*ExecuteResponse)(nil), // 26: query.ExecuteResponse
+ (*ResultWithError)(nil), // 27: query.ResultWithError
+ (*StreamExecuteRequest)(nil), // 28: query.StreamExecuteRequest
+ (*StreamExecuteResponse)(nil), // 29: query.StreamExecuteResponse
+ (*BeginRequest)(nil), // 30: query.BeginRequest
+ (*BeginResponse)(nil), // 31: query.BeginResponse
+ (*CommitRequest)(nil), // 32: query.CommitRequest
+ (*CommitResponse)(nil), // 33: query.CommitResponse
+ (*RollbackRequest)(nil), // 34: query.RollbackRequest
+ (*RollbackResponse)(nil), // 35: query.RollbackResponse
+ (*PrepareRequest)(nil), // 36: query.PrepareRequest
+ (*PrepareResponse)(nil), // 37: query.PrepareResponse
+ (*CommitPreparedRequest)(nil), // 38: query.CommitPreparedRequest
+ (*CommitPreparedResponse)(nil), // 39: query.CommitPreparedResponse
+ (*RollbackPreparedRequest)(nil), // 40: query.RollbackPreparedRequest
+ (*RollbackPreparedResponse)(nil), // 41: query.RollbackPreparedResponse
+ (*CreateTransactionRequest)(nil), // 42: query.CreateTransactionRequest
+ (*CreateTransactionResponse)(nil), // 43: query.CreateTransactionResponse
+ (*StartCommitRequest)(nil), // 44: query.StartCommitRequest
+ (*StartCommitResponse)(nil), // 45: query.StartCommitResponse
+ (*SetRollbackRequest)(nil), // 46: query.SetRollbackRequest
+ (*SetRollbackResponse)(nil), // 47: query.SetRollbackResponse
+ (*ConcludeTransactionRequest)(nil), // 48: query.ConcludeTransactionRequest
+ (*ConcludeTransactionResponse)(nil), // 49: query.ConcludeTransactionResponse
+ (*ReadTransactionRequest)(nil), // 50: query.ReadTransactionRequest
+ (*ReadTransactionResponse)(nil), // 51: query.ReadTransactionResponse
+ (*UnresolvedTransactionsRequest)(nil), // 52: query.UnresolvedTransactionsRequest
+ (*UnresolvedTransactionsResponse)(nil), // 53: query.UnresolvedTransactionsResponse
+ (*BeginExecuteRequest)(nil), // 54: query.BeginExecuteRequest
+ (*BeginExecuteResponse)(nil), // 55: query.BeginExecuteResponse
+ (*BeginStreamExecuteRequest)(nil), // 56: query.BeginStreamExecuteRequest
+ (*BeginStreamExecuteResponse)(nil), // 57: query.BeginStreamExecuteResponse
+ (*MessageStreamRequest)(nil), // 58: query.MessageStreamRequest
+ (*MessageStreamResponse)(nil), // 59: query.MessageStreamResponse
+ (*MessageAckRequest)(nil), // 60: query.MessageAckRequest
+ (*MessageAckResponse)(nil), // 61: query.MessageAckResponse
+ (*ReserveExecuteRequest)(nil), // 62: query.ReserveExecuteRequest
+ (*ReserveExecuteResponse)(nil), // 63: query.ReserveExecuteResponse
+ (*ReserveStreamExecuteRequest)(nil), // 64: query.ReserveStreamExecuteRequest
+ (*ReserveStreamExecuteResponse)(nil), // 65: query.ReserveStreamExecuteResponse
+ (*ReserveBeginExecuteRequest)(nil), // 66: query.ReserveBeginExecuteRequest
+ (*ReserveBeginExecuteResponse)(nil), // 67: query.ReserveBeginExecuteResponse
+ (*ReserveBeginStreamExecuteRequest)(nil), // 68: query.ReserveBeginStreamExecuteRequest
+ (*ReserveBeginStreamExecuteResponse)(nil), // 69: query.ReserveBeginStreamExecuteResponse
+ (*ReleaseRequest)(nil), // 70: query.ReleaseRequest
+ (*ReleaseResponse)(nil), // 71: query.ReleaseResponse
+ (*StreamHealthRequest)(nil), // 72: query.StreamHealthRequest
+ (*RealtimeStats)(nil), // 73: query.RealtimeStats
+ (*AggregateStats)(nil), // 74: query.AggregateStats
+ (*StreamHealthResponse)(nil), // 75: query.StreamHealthResponse
+ (*TransactionMetadata)(nil), // 76: query.TransactionMetadata
+ (*GetSchemaRequest)(nil), // 77: query.GetSchemaRequest
+ (*UDFInfo)(nil), // 78: query.UDFInfo
+ (*GetSchemaResponse)(nil), // 79: query.GetSchemaResponse
+ nil, // 80: query.BoundQuery.BindVariablesEntry
+ (*StreamEvent_Statement)(nil), // 81: query.StreamEvent.Statement
+ nil, // 82: query.GetSchemaResponse.TableDefinitionEntry
+ (topodata.TabletType)(0), // 83: topodata.TabletType
+ (*vtrpc.CallerID)(nil), // 84: vtrpc.CallerID
+ (*vtrpc.RPCError)(nil), // 85: vtrpc.RPCError
+ (*topodata.TabletAlias)(nil), // 86: topodata.TabletAlias
}
var file_query_proto_depIdxs = []int32{
- 82, // 0: query.Target.tablet_type:type_name -> topodata.TabletType
+ 83, // 0: query.Target.tablet_type:type_name -> topodata.TabletType
2, // 1: query.Value.type:type_name -> query.Type
2, // 2: query.BindVariable.type:type_name -> query.Type
- 15, // 3: query.BindVariable.values:type_name -> query.Value
- 79, // 4: query.BoundQuery.bind_variables:type_name -> query.BoundQuery.BindVariablesEntry
- 5, // 5: query.ExecuteOptions.included_fields:type_name -> query.ExecuteOptions.IncludedFields
- 6, // 6: query.ExecuteOptions.workload:type_name -> query.ExecuteOptions.Workload
- 7, // 7: query.ExecuteOptions.transaction_isolation:type_name -> query.ExecuteOptions.TransactionIsolation
- 8, // 8: query.ExecuteOptions.planner_version:type_name -> query.ExecuteOptions.PlannerVersion
- 9, // 9: query.ExecuteOptions.consolidator:type_name -> query.ExecuteOptions.Consolidator
- 10, // 10: query.ExecuteOptions.transaction_access_mode:type_name -> query.ExecuteOptions.TransactionAccessMode
+ 16, // 3: query.BindVariable.values:type_name -> query.Value
+ 80, // 4: query.BoundQuery.bind_variables:type_name -> query.BoundQuery.BindVariablesEntry
+ 6, // 5: query.ExecuteOptions.included_fields:type_name -> query.ExecuteOptions.IncludedFields
+ 7, // 6: query.ExecuteOptions.workload:type_name -> query.ExecuteOptions.Workload
+ 8, // 7: query.ExecuteOptions.transaction_isolation:type_name -> query.ExecuteOptions.TransactionIsolation
+ 9, // 8: query.ExecuteOptions.planner_version:type_name -> query.ExecuteOptions.PlannerVersion
+ 10, // 9: query.ExecuteOptions.consolidator:type_name -> query.ExecuteOptions.Consolidator
+ 11, // 10: query.ExecuteOptions.transaction_access_mode:type_name -> query.ExecuteOptions.TransactionAccessMode
2, // 11: query.Field.type:type_name -> query.Type
- 19, // 12: query.QueryResult.fields:type_name -> query.Field
- 20, // 13: query.QueryResult.rows:type_name -> query.Row
- 80, // 14: query.StreamEvent.statements:type_name -> query.StreamEvent.Statement
- 14, // 15: query.StreamEvent.event_token:type_name -> query.EventToken
- 83, // 16: query.ExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 17: query.ExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 18: query.ExecuteRequest.target:type_name -> query.Target
- 17, // 19: query.ExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 20: query.ExecuteRequest.options:type_name -> query.ExecuteOptions
- 21, // 21: query.ExecuteResponse.result:type_name -> query.QueryResult
- 84, // 22: query.ResultWithError.error:type_name -> vtrpc.RPCError
- 21, // 23: query.ResultWithError.result:type_name -> query.QueryResult
- 83, // 24: query.StreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 25: query.StreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 26: query.StreamExecuteRequest.target:type_name -> query.Target
- 17, // 27: query.StreamExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 28: query.StreamExecuteRequest.options:type_name -> query.ExecuteOptions
- 21, // 29: query.StreamExecuteResponse.result:type_name -> query.QueryResult
- 83, // 30: query.BeginRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 31: query.BeginRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 32: query.BeginRequest.target:type_name -> query.Target
- 18, // 33: query.BeginRequest.options:type_name -> query.ExecuteOptions
- 85, // 34: query.BeginResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 35: query.CommitRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 36: query.CommitRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 37: query.CommitRequest.target:type_name -> query.Target
- 83, // 38: query.RollbackRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 39: query.RollbackRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 40: query.RollbackRequest.target:type_name -> query.Target
- 83, // 41: query.PrepareRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 42: query.PrepareRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 43: query.PrepareRequest.target:type_name -> query.Target
- 83, // 44: query.CommitPreparedRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 45: query.CommitPreparedRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 46: query.CommitPreparedRequest.target:type_name -> query.Target
- 83, // 47: query.RollbackPreparedRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 48: query.RollbackPreparedRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 49: query.RollbackPreparedRequest.target:type_name -> query.Target
- 83, // 50: query.CreateTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 51: query.CreateTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 52: query.CreateTransactionRequest.target:type_name -> query.Target
- 12, // 53: query.CreateTransactionRequest.participants:type_name -> query.Target
- 83, // 54: query.StartCommitRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 55: query.StartCommitRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 56: query.StartCommitRequest.target:type_name -> query.Target
- 83, // 57: query.SetRollbackRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 58: query.SetRollbackRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 59: query.SetRollbackRequest.target:type_name -> query.Target
- 83, // 60: query.ConcludeTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 61: query.ConcludeTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 62: query.ConcludeTransactionRequest.target:type_name -> query.Target
- 83, // 63: query.ReadTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 64: query.ReadTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 65: query.ReadTransactionRequest.target:type_name -> query.Target
- 75, // 66: query.ReadTransactionResponse.metadata:type_name -> query.TransactionMetadata
- 83, // 67: query.UnresolvedTransactionsRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 68: query.UnresolvedTransactionsRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 69: query.UnresolvedTransactionsRequest.target:type_name -> query.Target
- 75, // 70: query.UnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
- 83, // 71: query.BeginExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 72: query.BeginExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 73: query.BeginExecuteRequest.target:type_name -> query.Target
- 17, // 74: query.BeginExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 75: query.BeginExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 76: query.BeginExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 77: query.BeginExecuteResponse.result:type_name -> query.QueryResult
- 85, // 78: query.BeginExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 79: query.BeginStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 80: query.BeginStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 81: query.BeginStreamExecuteRequest.target:type_name -> query.Target
- 17, // 82: query.BeginStreamExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 83: query.BeginStreamExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 84: query.BeginStreamExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 85: query.BeginStreamExecuteResponse.result:type_name -> query.QueryResult
- 85, // 86: query.BeginStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 87: query.MessageStreamRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 88: query.MessageStreamRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 89: query.MessageStreamRequest.target:type_name -> query.Target
- 21, // 90: query.MessageStreamResponse.result:type_name -> query.QueryResult
- 83, // 91: query.MessageAckRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 92: query.MessageAckRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 93: query.MessageAckRequest.target:type_name -> query.Target
- 15, // 94: query.MessageAckRequest.ids:type_name -> query.Value
- 21, // 95: query.MessageAckResponse.result:type_name -> query.QueryResult
- 83, // 96: query.ReserveExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 97: query.ReserveExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 98: query.ReserveExecuteRequest.target:type_name -> query.Target
- 17, // 99: query.ReserveExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 100: query.ReserveExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 101: query.ReserveExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 102: query.ReserveExecuteResponse.result:type_name -> query.QueryResult
- 85, // 103: query.ReserveExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 104: query.ReserveStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 105: query.ReserveStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 106: query.ReserveStreamExecuteRequest.target:type_name -> query.Target
- 17, // 107: query.ReserveStreamExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 108: query.ReserveStreamExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 109: query.ReserveStreamExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 110: query.ReserveStreamExecuteResponse.result:type_name -> query.QueryResult
- 85, // 111: query.ReserveStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 112: query.ReserveBeginExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 113: query.ReserveBeginExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 114: query.ReserveBeginExecuteRequest.target:type_name -> query.Target
- 17, // 115: query.ReserveBeginExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 116: query.ReserveBeginExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 117: query.ReserveBeginExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 118: query.ReserveBeginExecuteResponse.result:type_name -> query.QueryResult
- 85, // 119: query.ReserveBeginExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 120: query.ReserveBeginStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 121: query.ReserveBeginStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 122: query.ReserveBeginStreamExecuteRequest.target:type_name -> query.Target
- 17, // 123: query.ReserveBeginStreamExecuteRequest.query:type_name -> query.BoundQuery
- 18, // 124: query.ReserveBeginStreamExecuteRequest.options:type_name -> query.ExecuteOptions
- 84, // 125: query.ReserveBeginStreamExecuteResponse.error:type_name -> vtrpc.RPCError
- 21, // 126: query.ReserveBeginStreamExecuteResponse.result:type_name -> query.QueryResult
- 85, // 127: query.ReserveBeginStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
- 83, // 128: query.ReleaseRequest.effective_caller_id:type_name -> vtrpc.CallerID
- 13, // 129: query.ReleaseRequest.immediate_caller_id:type_name -> query.VTGateCallerID
- 12, // 130: query.ReleaseRequest.target:type_name -> query.Target
- 12, // 131: query.StreamHealthResponse.target:type_name -> query.Target
- 72, // 132: query.StreamHealthResponse.realtime_stats:type_name -> query.RealtimeStats
- 85, // 133: query.StreamHealthResponse.tablet_alias:type_name -> topodata.TabletAlias
- 3, // 134: query.TransactionMetadata.state:type_name -> query.TransactionState
- 12, // 135: query.TransactionMetadata.participants:type_name -> query.Target
- 12, // 136: query.GetSchemaRequest.target:type_name -> query.Target
- 4, // 137: query.GetSchemaRequest.table_type:type_name -> query.SchemaTableType
- 2, // 138: query.UDFInfo.return_type:type_name -> query.Type
- 77, // 139: query.GetSchemaResponse.udfs:type_name -> query.UDFInfo
- 81, // 140: query.GetSchemaResponse.table_definition:type_name -> query.GetSchemaResponse.TableDefinitionEntry
- 16, // 141: query.BoundQuery.BindVariablesEntry.value:type_name -> query.BindVariable
- 11, // 142: query.StreamEvent.Statement.category:type_name -> query.StreamEvent.Statement.Category
- 19, // 143: query.StreamEvent.Statement.primary_key_fields:type_name -> query.Field
- 20, // 144: query.StreamEvent.Statement.primary_key_values:type_name -> query.Row
- 145, // [145:145] is the sub-list for method output_type
- 145, // [145:145] is the sub-list for method input_type
- 145, // [145:145] is the sub-list for extension type_name
- 145, // [145:145] is the sub-list for extension extendee
- 0, // [0:145] is the sub-list for field type_name
+ 20, // 12: query.QueryResult.fields:type_name -> query.Field
+ 21, // 13: query.QueryResult.rows:type_name -> query.Row
+ 81, // 14: query.StreamEvent.statements:type_name -> query.StreamEvent.Statement
+ 15, // 15: query.StreamEvent.event_token:type_name -> query.EventToken
+ 84, // 16: query.ExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 17: query.ExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 18: query.ExecuteRequest.target:type_name -> query.Target
+ 18, // 19: query.ExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 20: query.ExecuteRequest.options:type_name -> query.ExecuteOptions
+ 22, // 21: query.ExecuteResponse.result:type_name -> query.QueryResult
+ 85, // 22: query.ResultWithError.error:type_name -> vtrpc.RPCError
+ 22, // 23: query.ResultWithError.result:type_name -> query.QueryResult
+ 84, // 24: query.StreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 25: query.StreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 26: query.StreamExecuteRequest.target:type_name -> query.Target
+ 18, // 27: query.StreamExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 28: query.StreamExecuteRequest.options:type_name -> query.ExecuteOptions
+ 22, // 29: query.StreamExecuteResponse.result:type_name -> query.QueryResult
+ 84, // 30: query.BeginRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 31: query.BeginRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 32: query.BeginRequest.target:type_name -> query.Target
+ 19, // 33: query.BeginRequest.options:type_name -> query.ExecuteOptions
+ 86, // 34: query.BeginResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 35: query.CommitRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 36: query.CommitRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 37: query.CommitRequest.target:type_name -> query.Target
+ 84, // 38: query.RollbackRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 39: query.RollbackRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 40: query.RollbackRequest.target:type_name -> query.Target
+ 84, // 41: query.PrepareRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 42: query.PrepareRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 43: query.PrepareRequest.target:type_name -> query.Target
+ 84, // 44: query.CommitPreparedRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 45: query.CommitPreparedRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 46: query.CommitPreparedRequest.target:type_name -> query.Target
+ 84, // 47: query.RollbackPreparedRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 48: query.RollbackPreparedRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 49: query.RollbackPreparedRequest.target:type_name -> query.Target
+ 84, // 50: query.CreateTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 51: query.CreateTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 52: query.CreateTransactionRequest.target:type_name -> query.Target
+ 13, // 53: query.CreateTransactionRequest.participants:type_name -> query.Target
+ 84, // 54: query.StartCommitRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 55: query.StartCommitRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 56: query.StartCommitRequest.target:type_name -> query.Target
+ 3, // 57: query.StartCommitResponse.state:type_name -> query.StartCommitState
+ 84, // 58: query.SetRollbackRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 59: query.SetRollbackRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 60: query.SetRollbackRequest.target:type_name -> query.Target
+ 84, // 61: query.ConcludeTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 62: query.ConcludeTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 63: query.ConcludeTransactionRequest.target:type_name -> query.Target
+ 84, // 64: query.ReadTransactionRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 65: query.ReadTransactionRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 66: query.ReadTransactionRequest.target:type_name -> query.Target
+ 76, // 67: query.ReadTransactionResponse.metadata:type_name -> query.TransactionMetadata
+ 84, // 68: query.UnresolvedTransactionsRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 69: query.UnresolvedTransactionsRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 70: query.UnresolvedTransactionsRequest.target:type_name -> query.Target
+ 76, // 71: query.UnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata
+ 84, // 72: query.BeginExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 73: query.BeginExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 74: query.BeginExecuteRequest.target:type_name -> query.Target
+ 18, // 75: query.BeginExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 76: query.BeginExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 77: query.BeginExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 78: query.BeginExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 79: query.BeginExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 80: query.BeginStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 81: query.BeginStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 82: query.BeginStreamExecuteRequest.target:type_name -> query.Target
+ 18, // 83: query.BeginStreamExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 84: query.BeginStreamExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 85: query.BeginStreamExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 86: query.BeginStreamExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 87: query.BeginStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 88: query.MessageStreamRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 89: query.MessageStreamRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 90: query.MessageStreamRequest.target:type_name -> query.Target
+ 22, // 91: query.MessageStreamResponse.result:type_name -> query.QueryResult
+ 84, // 92: query.MessageAckRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 93: query.MessageAckRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 94: query.MessageAckRequest.target:type_name -> query.Target
+ 16, // 95: query.MessageAckRequest.ids:type_name -> query.Value
+ 22, // 96: query.MessageAckResponse.result:type_name -> query.QueryResult
+ 84, // 97: query.ReserveExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 98: query.ReserveExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 99: query.ReserveExecuteRequest.target:type_name -> query.Target
+ 18, // 100: query.ReserveExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 101: query.ReserveExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 102: query.ReserveExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 103: query.ReserveExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 104: query.ReserveExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 105: query.ReserveStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 106: query.ReserveStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 107: query.ReserveStreamExecuteRequest.target:type_name -> query.Target
+ 18, // 108: query.ReserveStreamExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 109: query.ReserveStreamExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 110: query.ReserveStreamExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 111: query.ReserveStreamExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 112: query.ReserveStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 113: query.ReserveBeginExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 114: query.ReserveBeginExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 115: query.ReserveBeginExecuteRequest.target:type_name -> query.Target
+ 18, // 116: query.ReserveBeginExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 117: query.ReserveBeginExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 118: query.ReserveBeginExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 119: query.ReserveBeginExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 120: query.ReserveBeginExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 121: query.ReserveBeginStreamExecuteRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 122: query.ReserveBeginStreamExecuteRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 123: query.ReserveBeginStreamExecuteRequest.target:type_name -> query.Target
+ 18, // 124: query.ReserveBeginStreamExecuteRequest.query:type_name -> query.BoundQuery
+ 19, // 125: query.ReserveBeginStreamExecuteRequest.options:type_name -> query.ExecuteOptions
+ 85, // 126: query.ReserveBeginStreamExecuteResponse.error:type_name -> vtrpc.RPCError
+ 22, // 127: query.ReserveBeginStreamExecuteResponse.result:type_name -> query.QueryResult
+ 86, // 128: query.ReserveBeginStreamExecuteResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 84, // 129: query.ReleaseRequest.effective_caller_id:type_name -> vtrpc.CallerID
+ 14, // 130: query.ReleaseRequest.immediate_caller_id:type_name -> query.VTGateCallerID
+ 13, // 131: query.ReleaseRequest.target:type_name -> query.Target
+ 13, // 132: query.StreamHealthResponse.target:type_name -> query.Target
+ 73, // 133: query.StreamHealthResponse.realtime_stats:type_name -> query.RealtimeStats
+ 86, // 134: query.StreamHealthResponse.tablet_alias:type_name -> topodata.TabletAlias
+ 4, // 135: query.TransactionMetadata.state:type_name -> query.TransactionState
+ 13, // 136: query.TransactionMetadata.participants:type_name -> query.Target
+ 13, // 137: query.GetSchemaRequest.target:type_name -> query.Target
+ 5, // 138: query.GetSchemaRequest.table_type:type_name -> query.SchemaTableType
+ 2, // 139: query.UDFInfo.return_type:type_name -> query.Type
+ 78, // 140: query.GetSchemaResponse.udfs:type_name -> query.UDFInfo
+ 82, // 141: query.GetSchemaResponse.table_definition:type_name -> query.GetSchemaResponse.TableDefinitionEntry
+ 17, // 142: query.BoundQuery.BindVariablesEntry.value:type_name -> query.BindVariable
+ 12, // 143: query.StreamEvent.Statement.category:type_name -> query.StreamEvent.Statement.Category
+ 20, // 144: query.StreamEvent.Statement.primary_key_fields:type_name -> query.Field
+ 21, // 145: query.StreamEvent.Statement.primary_key_values:type_name -> query.Row
+ 146, // [146:146] is the sub-list for method output_type
+ 146, // [146:146] is the sub-list for method input_type
+ 146, // [146:146] is the sub-list for extension type_name
+ 146, // [146:146] is the sub-list for extension extendee
+ 0, // [0:146] is the sub-list for field type_name
}
func init() { file_query_proto_init() }
@@ -7931,7 +7997,7 @@ func file_query_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_query_proto_rawDesc,
- NumEnums: 12,
+ NumEnums: 13,
NumMessages: 70,
NumExtensions: 0,
NumServices: 0,
diff --git a/go/vt/proto/query/query_vtproto.pb.go b/go/vt/proto/query/query_vtproto.pb.go
index e4118ca8b65..7de7afc320b 100644
--- a/go/vt/proto/query/query_vtproto.pb.go
+++ b/go/vt/proto/query/query_vtproto.pb.go
@@ -762,6 +762,7 @@ func (m *StartCommitResponse) CloneVT() *StartCommitResponse {
return (*StartCommitResponse)(nil)
}
r := new(StartCommitResponse)
+ r.State = m.State
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -3628,6 +3629,11 @@ func (m *StartCommitResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.State != 0 {
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.State))
+ i--
+ dAtA[i] = 0x8
+ }
return len(dAtA) - i, nil
}
@@ -6784,6 +6790,9 @@ func (m *StartCommitResponse) SizeVT() (n int) {
}
var l int
_ = l
+ if m.State != 0 {
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.State))
+ }
n += len(m.unknownFields)
return n
}
@@ -13019,6 +13028,25 @@ func (m *StartCommitResponse) UnmarshalVT(dAtA []byte) error {
return fmt.Errorf("proto: StartCommitResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field State", wireType)
+ }
+ m.State = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.State |= StartCommitState(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/go/vt/vtcombo/tablet_map.go b/go/vt/vtcombo/tablet_map.go
index f12ba613866..fc02409bd5f 100644
--- a/go/vt/vtcombo/tablet_map.go
+++ b/go/vt/vtcombo/tablet_map.go
@@ -539,9 +539,9 @@ func (itc *internalTabletConn) CreateTransaction(
}
// StartCommit is part of queryservice.QueryService
-func (itc *internalTabletConn) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) error {
- err := itc.tablet.qsc.QueryService().StartCommit(ctx, target, transactionID, dtid)
- return tabletconn.ErrorFromGRPC(vterrors.ToGRPC(err))
+func (itc *internalTabletConn) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (querypb.StartCommitState, error) {
+ state, err := itc.tablet.qsc.QueryService().StartCommit(ctx, target, transactionID, dtid)
+ return state, tabletconn.ErrorFromGRPC(vterrors.ToGRPC(err))
}
// SetRollback is part of queryservice.QueryService
diff --git a/go/vt/vtexplain/vtexplain_vttablet.go b/go/vt/vtexplain/vtexplain_vttablet.go
index ed977e7bcb0..644135f1e3b 100644
--- a/go/vt/vtexplain/vtexplain_vttablet.go
+++ b/go/vt/vtexplain/vtexplain_vttablet.go
@@ -232,7 +232,7 @@ func (t *explainTablet) CreateTransaction(ctx context.Context, target *querypb.T
}
// StartCommit is part of the QueryService interface.
-func (t *explainTablet) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
+func (t *explainTablet) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error) {
t.mu.Lock()
t.currentTime = t.vte.batchTime.Wait()
t.mu.Unlock()
diff --git a/go/vt/vtgate/tx_conn.go b/go/vt/vtgate/tx_conn.go
index 968b41d38d3..315484ea499 100644
--- a/go/vt/vtgate/tx_conn.go
+++ b/go/vt/vtgate/tx_conn.go
@@ -70,6 +70,14 @@ const (
Commit2pcConclude
)
+var phaseMessage = map[commitPhase]string{
+ Commit2pcCreateTransaction: "Create Transaction",
+ Commit2pcPrepare: "Prepare",
+ Commit2pcStartCommit: "Start Commit",
+ Commit2pcPrepareCommit: "Prepare Commit",
+ Commit2pcConclude: "Conclude",
+}
+
// Begin begins a new transaction. If one is already in progress, it commits it
// and starts a new one.
func (txc *TxConn) Begin(ctx context.Context, session *SafeSession, txAccessModes []sqlparser.TxAccessMode) error {
@@ -221,11 +229,12 @@ func (txc *TxConn) commit2PC(ctx context.Context, session *SafeSession) (err err
}
var txPhase commitPhase
+ var startCommitState querypb.StartCommitState
defer func() {
if err == nil {
return
}
- txc.errActionAndLogWarn(ctx, session, txPhase, dtid, mmShard, rmShards)
+ txc.errActionAndLogWarn(ctx, session, txPhase, startCommitState, dtid, mmShard, rmShards)
}()
txPhase = Commit2pcCreateTransaction
@@ -259,7 +268,7 @@ func (txc *TxConn) commit2PC(ctx context.Context, session *SafeSession) (err err
}
txPhase = Commit2pcStartCommit
- err = txc.tabletGateway.StartCommit(ctx, mmShard.Target, mmShard.TransactionId, dtid)
+ startCommitState, err = txc.tabletGateway.StartCommit(ctx, mmShard.Target, mmShard.TransactionId, dtid)
if err != nil {
return err
}
@@ -298,21 +307,38 @@ func (txc *TxConn) checkValidCondition(session *SafeSession) error {
return nil
}
-func (txc *TxConn) errActionAndLogWarn(ctx context.Context, session *SafeSession, txPhase commitPhase, dtid string, mmShard *vtgatepb.Session_ShardSession, rmShards []*vtgatepb.Session_ShardSession) {
+func (txc *TxConn) errActionAndLogWarn(
+ ctx context.Context,
+ session *SafeSession,
+ txPhase commitPhase,
+ startCommitState querypb.StartCommitState,
+ dtid string,
+ mmShard *vtgatepb.Session_ShardSession,
+ rmShards []*vtgatepb.Session_ShardSession,
+) {
+ var rollbackErr error
switch txPhase {
case Commit2pcCreateTransaction:
// Normal rollback is safe because nothing was prepared yet.
- if rollbackErr := txc.Rollback(ctx, session); rollbackErr != nil {
- log.Warningf("Rollback failed after Create Transaction failure: %v", rollbackErr)
- }
+ rollbackErr = txc.Rollback(ctx, session)
case Commit2pcPrepare:
// Rollback the prepared and unprepared transactions.
- if resumeErr := txc.rollbackTx(ctx, dtid, mmShard, rmShards, session.logging); resumeErr != nil {
- log.Warningf("Rollback failed after Prepare failure: %v", resumeErr)
+ rollbackErr = txc.rollbackTx(ctx, dtid, mmShard, rmShards, session.logging)
+ case Commit2pcStartCommit:
+ // Failed to store the commit decision on MM.
+ // If the failure state is certain, then the only option is to rollback the prepared transactions on the RMs.
+ if startCommitState == querypb.StartCommitState_Fail {
+ rollbackErr = txc.rollbackTx(ctx, dtid, mmShard, rmShards, session.logging)
}
- case Commit2pcStartCommit, Commit2pcPrepareCommit:
+ fallthrough
+ case Commit2pcPrepareCommit:
+ commitUnresolved.Add(1)
+ }
+ if rollbackErr != nil {
+ log.Warningf("Rollback failed after %s failure: %v", phaseMessage[txPhase], rollbackErr)
commitUnresolved.Add(1)
}
+
session.RecordWarning(&querypb.QueryWarning{
Code: uint32(sqlerror.ERInAtomicRecovery),
Message: createWarningMessage(dtid, txPhase)})
diff --git a/go/vt/vtgate/tx_conn_test.go b/go/vt/vtgate/tx_conn_test.go
index dd1415bce87..9d49626f6f1 100644
--- a/go/vt/vtgate/tx_conn_test.go
+++ b/go/vt/vtgate/tx_conn_test.go
@@ -994,9 +994,7 @@ func TestTxConnCommit2PCCreateTransactionFail(t *testing.T) {
sbc0.MustFailCreateTransaction = 1
session.TransactionMode = vtgatepb.TransactionMode_TWOPC
err := sc.txConn.Commit(ctx, session)
- want := "error: err"
- require.Error(t, err)
- assert.Contains(t, err.Error(), want, "Commit")
+ require.ErrorContains(t, err, "target: TestTxConnCommit2PCCreateTransactionFail.0.primary: error: err")
assert.EqualValues(t, 1, sbc0.CreateTransactionCount.Load(), "sbc0.CreateTransactionCount")
assert.EqualValues(t, 1, sbc0.RollbackCount.Load(), "sbc0.RollbackCount")
assert.EqualValues(t, 1, sbc1.RollbackCount.Load(), "sbc1.RollbackCount")
@@ -1018,9 +1016,7 @@ func TestTxConnCommit2PCPrepareFail(t *testing.T) {
sbc1.MustFailPrepare = 1
session.TransactionMode = vtgatepb.TransactionMode_TWOPC
err := sc.txConn.Commit(ctx, session)
- want := "error: err"
- require.Error(t, err)
- assert.Contains(t, err.Error(), want, "Commit")
+ require.ErrorContains(t, err, "target: TestTxConnCommit2PCPrepareFail.1.primary: error: err")
assert.EqualValues(t, 1, sbc0.CreateTransactionCount.Load(), "sbc0.CreateTransactionCount")
assert.EqualValues(t, 1, sbc1.PrepareCount.Load(), "sbc1.PrepareCount")
// Prepared failed on RM, so no commit on MM or RMs.
@@ -1046,13 +1042,33 @@ func TestTxConnCommit2PCStartCommitFail(t *testing.T) {
sbc0.MustFailStartCommit = 1
session.TransactionMode = vtgatepb.TransactionMode_TWOPC
err := sc.txConn.Commit(ctx, session)
- want := "error: err"
- require.Error(t, err)
- assert.Contains(t, err.Error(), want, "Commit")
+ require.ErrorContains(t, err, "target: TestTxConnCommit2PCStartCommitFail.0.primary: error: err")
assert.EqualValues(t, 1, sbc0.CreateTransactionCount.Load(), "sbc0.CreateTransactionCount")
assert.EqualValues(t, 1, sbc1.PrepareCount.Load(), "sbc1.PrepareCount")
assert.EqualValues(t, 1, sbc0.StartCommitCount.Load(), "sbc0.StartCommitCount")
assert.EqualValues(t, 0, sbc1.CommitPreparedCount.Load(), "sbc1.CommitPreparedCount")
+ assert.EqualValues(t, 1, sbc0.SetRollbackCount.Load(), "MM")
+ assert.EqualValues(t, 1, sbc1.RollbackPreparedCount.Load(), "RM")
+ assert.EqualValues(t, 1, sbc0.ConcludeTransactionCount.Load(), "sbc0.ConcludeTransactionCount")
+
+ sbc0.ResetCounter()
+ sbc1.ResetCounter()
+
+ session = NewSafeSession(&vtgatepb.Session{InTransaction: true})
+ sc.ExecuteMultiShard(ctx, nil, rss0, queries, session, false, false, nullResultsObserver{})
+ sc.ExecuteMultiShard(ctx, nil, rss01, twoQueries, session, false, false, nullResultsObserver{})
+
+ // Here the StartCommit failure is in uncertain state so rollback is not called and neither conclude.
+ sbc0.MustFailStartCommitUncertain = 1
+ session.TransactionMode = vtgatepb.TransactionMode_TWOPC
+ err = sc.txConn.Commit(ctx, session)
+ require.ErrorContains(t, err, "target: TestTxConnCommit2PCStartCommitFail.0.primary: uncertain error")
+ assert.EqualValues(t, 1, sbc0.CreateTransactionCount.Load(), "sbc0.CreateTransactionCount")
+ assert.EqualValues(t, 1, sbc1.PrepareCount.Load(), "sbc1.PrepareCount")
+ assert.EqualValues(t, 1, sbc0.StartCommitCount.Load(), "sbc0.StartCommitCount")
+ assert.EqualValues(t, 0, sbc1.CommitPreparedCount.Load(), "sbc1.CommitPreparedCount")
+ assert.EqualValues(t, 0, sbc0.SetRollbackCount.Load(), "MM")
+ assert.EqualValues(t, 0, sbc1.RollbackPreparedCount.Load(), "RM")
assert.EqualValues(t, 0, sbc0.ConcludeTransactionCount.Load(), "sbc0.ConcludeTransactionCount")
}
@@ -1068,9 +1084,7 @@ func TestTxConnCommit2PCCommitPreparedFail(t *testing.T) {
sbc1.MustFailCommitPrepared = 1
session.TransactionMode = vtgatepb.TransactionMode_TWOPC
err := sc.txConn.Commit(ctx, session)
- want := "error: err"
- require.Error(t, err)
- assert.Contains(t, err.Error(), want, "Commit")
+ require.ErrorContains(t, err, "target: TestTxConnCommit2PCCommitPreparedFail.1.primary: error: err")
assert.EqualValues(t, 1, sbc0.CreateTransactionCount.Load(), "sbc0.CreateTransactionCount")
assert.EqualValues(t, 1, sbc1.PrepareCount.Load(), "sbc1.PrepareCount")
assert.EqualValues(t, 1, sbc0.StartCommitCount.Load(), "sbc0.StartCommitCount")
diff --git a/go/vt/vttablet/endtoend/framework/client.go b/go/vt/vttablet/endtoend/framework/client.go
index 04342d57aa4..59def25ab61 100644
--- a/go/vt/vttablet/endtoend/framework/client.go
+++ b/go/vt/vttablet/endtoend/framework/client.go
@@ -158,7 +158,7 @@ func (client *QueryClient) CreateTransaction(dtid string, participants []*queryp
}
// StartCommit issues a StartCommit to TabletServer for the current transaction.
-func (client *QueryClient) StartCommit(dtid string) error {
+func (client *QueryClient) StartCommit(dtid string) (querypb.StartCommitState, error) {
defer func() { client.transactionID = 0 }()
return client.server.StartCommit(client.ctx, client.target, client.transactionID, dtid)
}
diff --git a/go/vt/vttablet/endtoend/transaction_test.go b/go/vt/vttablet/endtoend/transaction_test.go
index 4d46e134a7b..5e5889ad671 100644
--- a/go/vt/vttablet/endtoend/transaction_test.go
+++ b/go/vt/vttablet/endtoend/transaction_test.go
@@ -501,8 +501,9 @@ func TestMMCommitFlow(t *testing.T) {
require.Error(t, err)
require.Contains(t, err.Error(), "Duplicate entry")
- err = client.StartCommit("aa")
+ state, err := client.StartCommit("aa")
require.NoError(t, err)
+ assert.Equal(t, querypb.StartCommitState_Success, state)
err = client.SetRollback("aa", 0)
require.EqualError(t, err, "could not transition to ROLLBACK: aa (CallerID: dev)")
diff --git a/go/vt/vttablet/grpcqueryservice/server.go b/go/vt/vttablet/grpcqueryservice/server.go
index a1a1283b4ad..e3c179ce856 100644
--- a/go/vt/vttablet/grpcqueryservice/server.go
+++ b/go/vt/vttablet/grpcqueryservice/server.go
@@ -183,11 +183,8 @@ func (q *query) StartCommit(ctx context.Context, request *querypb.StartCommitReq
request.EffectiveCallerId,
request.ImmediateCallerId,
)
- if err := q.server.StartCommit(ctx, request.Target, request.TransactionId, request.Dtid); err != nil {
- return nil, vterrors.ToGRPC(err)
- }
-
- return &querypb.StartCommitResponse{}, nil
+ state, err := q.server.StartCommit(ctx, request.Target, request.TransactionId, request.Dtid)
+ return &querypb.StartCommitResponse{State: state}, vterrors.ToGRPC(err)
}
// SetRollback is part of the queryservice.QueryServer interface
diff --git a/go/vt/vttablet/grpctabletconn/conn.go b/go/vt/vttablet/grpctabletconn/conn.go
index 16f93a44372..d2d5604d808 100644
--- a/go/vt/vttablet/grpctabletconn/conn.go
+++ b/go/vt/vttablet/grpctabletconn/conn.go
@@ -351,11 +351,12 @@ func (conn *gRPCQueryClient) CreateTransaction(ctx context.Context, target *quer
// StartCommit atomically commits the transaction along with the
// decision to commit the associated 2pc transaction.
-func (conn *gRPCQueryClient) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) error {
+func (conn *gRPCQueryClient) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (querypb.StartCommitState, error) {
conn.mu.RLock()
defer conn.mu.RUnlock()
if conn.cc == nil {
- return tabletconn.ConnClosed
+ // This can be marked as fail as not other process will try to commit this transaction.
+ return querypb.StartCommitState_Fail, tabletconn.ConnClosed
}
req := &querypb.StartCommitRequest{
@@ -365,11 +366,12 @@ func (conn *gRPCQueryClient) StartCommit(ctx context.Context, target *querypb.Ta
TransactionId: transactionID,
Dtid: dtid,
}
- _, err := conn.c.StartCommit(ctx, req)
- if err != nil {
- return tabletconn.ErrorFromGRPC(err)
+ resp, err := conn.c.StartCommit(ctx, req)
+ err = tabletconn.ErrorFromGRPC(err)
+ if resp != nil {
+ return resp.State, err
}
- return nil
+ return querypb.StartCommitState_Unknown, err
}
// SetRollback transitions the 2pc transaction to the Rollback state.
diff --git a/go/vt/vttablet/queryservice/queryservice.go b/go/vt/vttablet/queryservice/queryservice.go
index 1e48c9b7b1d..d6972bfb6a3 100644
--- a/go/vt/vttablet/queryservice/queryservice.go
+++ b/go/vt/vttablet/queryservice/queryservice.go
@@ -63,7 +63,7 @@ type QueryService interface {
// StartCommit atomically commits the transaction along with the
// decision to commit the associated 2pc transaction.
- StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error)
+ StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error)
// SetRollback transitions the 2pc transaction to the Rollback state.
// If a transaction id is provided, that transaction is also rolled back.
diff --git a/go/vt/vttablet/queryservice/wrapped.go b/go/vt/vttablet/queryservice/wrapped.go
index 2bc8346dac2..c72a472a5cb 100644
--- a/go/vt/vttablet/queryservice/wrapped.go
+++ b/go/vt/vttablet/queryservice/wrapped.go
@@ -146,11 +146,13 @@ func (ws *wrappedService) CreateTransaction(ctx context.Context, target *querypb
})
}
-func (ws *wrappedService) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
- return ws.wrapper(ctx, target, ws.impl, "StartCommit", true, func(ctx context.Context, target *querypb.Target, conn QueryService) (bool, error) {
- innerErr := conn.StartCommit(ctx, target, transactionID, dtid)
+func (ws *wrappedService) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error) {
+ err = ws.wrapper(ctx, target, ws.impl, "StartCommit", true, func(ctx context.Context, target *querypb.Target, conn QueryService) (bool, error) {
+ var innerErr error
+ state, innerErr = conn.StartCommit(ctx, target, transactionID, dtid)
return canRetry(ctx, innerErr), innerErr
})
+ return state, err
}
func (ws *wrappedService) SetRollback(ctx context.Context, target *querypb.Target, dtid string, transactionID int64) (err error) {
diff --git a/go/vt/vttablet/sandboxconn/sandboxconn.go b/go/vt/vttablet/sandboxconn/sandboxconn.go
index 6fbf0032b2a..a34baef1238 100644
--- a/go/vt/vttablet/sandboxconn/sandboxconn.go
+++ b/go/vt/vttablet/sandboxconn/sandboxconn.go
@@ -49,13 +49,14 @@ type SandboxConn struct {
// These errors are triggered only for specific functions.
// For now these are just for the 2PC functions.
- MustFailPrepare int
- MustFailCommitPrepared int
- MustFailRollbackPrepared int
- MustFailCreateTransaction int
- MustFailStartCommit int
- MustFailSetRollback int
- MustFailConcludeTransaction int
+ MustFailPrepare int
+ MustFailCommitPrepared int
+ MustFailRollbackPrepared int
+ MustFailCreateTransaction int
+ MustFailStartCommit int
+ MustFailStartCommitUncertain int
+ MustFailSetRollback int
+ MustFailConcludeTransaction int
// MustFailExecute is keyed by the statement type and stores the number
// of times to fail when it sees that statement type.
// Once, exhausted it will start returning non-error response.
@@ -157,6 +158,27 @@ func NewSandboxConn(t *topodatapb.Tablet) *SandboxConn {
}
}
+// ResetCounter resets the counters in the sandboxconn.
+func (sbc *SandboxConn) ResetCounter() {
+ sbc.ExecCount.Store(0)
+ sbc.BeginCount.Store(0)
+ sbc.CommitCount.Store(0)
+ sbc.RollbackCount.Store(0)
+ sbc.AsTransactionCount.Store(0)
+ sbc.PrepareCount.Store(0)
+ sbc.CommitPreparedCount.Store(0)
+ sbc.RollbackPreparedCount.Store(0)
+ sbc.CreateTransactionCount.Store(0)
+ sbc.StartCommitCount.Store(0)
+ sbc.SetRollbackCount.Store(0)
+ sbc.ConcludeTransactionCount.Store(0)
+ sbc.ReadTransactionCount.Store(0)
+ sbc.UnresolvedTransactionsCount.Store(0)
+ sbc.ReserveCount.Store(0)
+ sbc.ReleaseCount.Store(0)
+ sbc.GetSchemaCount.Store(0)
+}
+
// RequireQueriesLocking sets the sandboxconn to require locking the access of Queries field.
func (sbc *SandboxConn) RequireQueriesLocking() {
sbc.queriesRequireLocking = true
@@ -404,14 +426,22 @@ func (sbc *SandboxConn) CreateTransaction(ctx context.Context, target *querypb.T
// StartCommit atomically commits the transaction along with the
// decision to commit the associated 2pc transaction.
-func (sbc *SandboxConn) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
+func (sbc *SandboxConn) StartCommit(context.Context, *querypb.Target, int64, string) (state querypb.StartCommitState, err error) {
sbc.panicIfNeeded()
sbc.StartCommitCount.Add(1)
if sbc.MustFailStartCommit > 0 {
sbc.MustFailStartCommit--
- return vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, "error: err")
+ return querypb.StartCommitState_Fail, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, "error: err")
}
- return sbc.getError()
+ if sbc.MustFailStartCommitUncertain > 0 {
+ sbc.MustFailStartCommitUncertain--
+ return querypb.StartCommitState_Unknown, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, "uncertain error")
+ }
+ err = sbc.getError()
+ if err != nil {
+ return querypb.StartCommitState_Unknown, err
+ }
+ return querypb.StartCommitState_Success, nil
}
// SetRollback transitions the 2pc transaction to the Rollback state.
diff --git a/go/vt/vttablet/tabletconntest/fakequeryservice.go b/go/vt/vttablet/tabletconntest/fakequeryservice.go
index ac08e095f4d..2d62b017433 100644
--- a/go/vt/vttablet/tabletconntest/fakequeryservice.go
+++ b/go/vt/vttablet/tabletconntest/fakequeryservice.go
@@ -286,9 +286,9 @@ func (f *FakeQueryService) CreateTransaction(ctx context.Context, target *queryp
}
// StartCommit is part of the queryservice.QueryService interface
-func (f *FakeQueryService) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
+func (f *FakeQueryService) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error) {
if f.HasError {
- return f.TabletError
+ return querypb.StartCommitState_Fail, f.TabletError
}
if f.Panics {
panic(fmt.Errorf("test-triggered panic"))
@@ -300,7 +300,7 @@ func (f *FakeQueryService) StartCommit(ctx context.Context, target *querypb.Targ
if dtid != Dtid {
f.t.Errorf("StartCommit: invalid dtid: got %s expected %s", dtid, Dtid)
}
- return nil
+ return querypb.StartCommitState_Success, nil
}
// SetRollback is part of the queryservice.QueryService interface
diff --git a/go/vt/vttablet/tabletconntest/tabletconntest.go b/go/vt/vttablet/tabletconntest/tabletconntest.go
index 0674de3f663..416d4de9d00 100644
--- a/go/vt/vttablet/tabletconntest/tabletconntest.go
+++ b/go/vt/vttablet/tabletconntest/tabletconntest.go
@@ -294,26 +294,31 @@ func testStartCommit(t *testing.T, conn queryservice.QueryService, f *FakeQueryS
t.Log("testStartCommit")
ctx := context.Background()
ctx = callerid.NewContext(ctx, TestCallerID, TestVTGateCallerID)
- err := conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
- if err != nil {
- t.Fatalf("StartCommit failed: %v", err)
- }
+ state, err := conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
+ assert.Equal(t, querypb.StartCommitState_Success, state, "Unexpected state from StartCommit")
+ assert.NoError(t, err, "StartCommit failed")
}
func testStartCommitError(t *testing.T, conn queryservice.QueryService, f *FakeQueryService) {
t.Log("testStartCommitError")
f.HasError = true
- testErrorHelper(t, f, "StartCommit", func(ctx context.Context) error {
- return conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
+ var state querypb.StartCommitState
+ testErrorHelper(t, f, "StartCommit", func(ctx context.Context) (err error) {
+ state, err = conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
+ return err
})
f.HasError = false
+ assert.Equal(t, querypb.StartCommitState_Unknown, state, "Unexpected state from StartCommit")
}
func testStartCommitPanics(t *testing.T, conn queryservice.QueryService, f *FakeQueryService) {
t.Log("testStartCommitPanics")
- testPanicHelper(t, f, "StartCommit", func(ctx context.Context) error {
- return conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
+ var state querypb.StartCommitState
+ testPanicHelper(t, f, "StartCommit", func(ctx context.Context) (err error) {
+ state, err = conn.StartCommit(ctx, TestTarget, commitTransactionID, Dtid)
+ return err
})
+ assert.Equal(t, querypb.StartCommitState_Unknown, state, "Unexpected state from StartCommit")
}
func testSetRollback(t *testing.T, conn queryservice.QueryService, f *FakeQueryService) {
diff --git a/go/vt/vttablet/tabletmanager/framework_test.go b/go/vt/vttablet/tabletmanager/framework_test.go
index 628b79d55f2..35aa7a08b46 100644
--- a/go/vt/vttablet/tabletmanager/framework_test.go
+++ b/go/vt/vttablet/tabletmanager/framework_test.go
@@ -254,8 +254,8 @@ func (ftc *fakeTabletConn) CreateTransaction(ctx context.Context, target *queryp
}
// fakeTabletConn implements the QueryService interface.
-func (ftc *fakeTabletConn) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
- return nil
+func (ftc *fakeTabletConn) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error) {
+ return querypb.StartCommitState_Unknown, nil
}
// fakeTabletConn implements the QueryService interface.
diff --git a/go/vt/vttablet/tabletserver/dt_executor.go b/go/vt/vttablet/tabletserver/dt_executor.go
index be72037c4a2..1789632c2d0 100644
--- a/go/vt/vttablet/tabletserver/dt_executor.go
+++ b/go/vt/vttablet/tabletserver/dt_executor.go
@@ -236,16 +236,16 @@ func (dte *DTExecutor) CreateTransaction(dtid string, participants []*querypb.Ta
// StartCommit atomically commits the transaction along with the
// decision to commit the associated 2pc transaction.
-func (dte *DTExecutor) StartCommit(transactionID int64, dtid string) error {
+func (dte *DTExecutor) StartCommit(transactionID int64, dtid string) (querypb.StartCommitState, error) {
if !dte.te.twopcEnabled {
- return vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "2pc is not enabled")
+ return querypb.StartCommitState_Fail, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "2pc is not enabled")
}
defer dte.te.env.Stats().QueryTimings.Record("START_COMMIT", time.Now())
dte.logStats.TransactionID = transactionID
conn, err := dte.te.txPool.GetAndLock(transactionID, "for 2pc commit")
if err != nil {
- return err
+ return querypb.StartCommitState_Fail, err
}
defer dte.te.txPool.RollbackAndRelease(dte.ctx, conn)
@@ -255,15 +255,17 @@ func (dte *DTExecutor) StartCommit(transactionID int64, dtid string) error {
return dte.te.twoPC.Transition(dte.ctx, conn, dtid, DTStateRollback)
})
// return the error, defer call above will roll back the transaction.
- return vterrors.VT10002("cannot commit the transaction on a reserved connection")
+ return querypb.StartCommitState_Fail, vterrors.VT10002("cannot commit the transaction on a reserved connection")
}
err = dte.te.twoPC.Transition(dte.ctx, conn, dtid, DTStateCommit)
if err != nil {
- return err
+ return querypb.StartCommitState_Fail, err
}
- _, err = dte.te.txPool.Commit(dte.ctx, conn)
- return err
+ if _, err = dte.te.txPool.Commit(dte.ctx, conn); err != nil {
+ return querypb.StartCommitState_Unknown, err
+ }
+ return querypb.StartCommitState_Success, nil
}
// SetRollback transitions the 2pc transaction to the Rollback state.
diff --git a/go/vt/vttablet/tabletserver/dt_executor_test.go b/go/vt/vttablet/tabletserver/dt_executor_test.go
index 103112bd7c7..d5322f352f9 100644
--- a/go/vt/vttablet/tabletserver/dt_executor_test.go
+++ b/go/vt/vttablet/tabletserver/dt_executor_test.go
@@ -27,22 +27,21 @@ import (
"testing"
"time"
- "vitess.io/vitess/go/event/syslogger"
- "vitess.io/vitess/go/mysql/sqlerror"
- "vitess.io/vitess/go/vt/vtenv"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/rules"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/schema"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/tx"
-
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"
+ "vitess.io/vitess/go/event/syslogger"
"vitess.io/vitess/go/mysql/fakesqldb"
+ "vitess.io/vitess/go/mysql/sqlerror"
"vitess.io/vitess/go/sqltypes"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
-
querypb "vitess.io/vitess/go/vt/proto/query"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
+ "vitess.io/vitess/go/vt/vtenv"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/rules"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/schema"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/tx"
)
func TestTxExecutorEmptyPrepare(t *testing.T) {
@@ -349,14 +348,16 @@ func TestExecutorStartCommit(t *testing.T) {
commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
db.AddQuery(commitTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
- err := txe.StartCommit(txid, "aa")
+ state, err := txe.StartCommit(txid, "aa")
require.NoError(t, err)
+ assert.Equal(t, querypb.StartCommitState_Success, state)
db.AddQuery(commitTransition, &sqltypes.Result{})
txid = newTxForPrep(ctx, tsv)
- err = txe.StartCommit(txid, "aa")
+ state, err = txe.StartCommit(txid, "aa")
require.Error(t, err)
require.Contains(t, err.Error(), "could not transition to COMMIT: aa")
+ assert.Equal(t, querypb.StartCommitState_Fail, state)
}
func TestExecutorStartCommitFailure(t *testing.T) {
@@ -379,8 +380,9 @@ func TestExecutorStartCommitFailure(t *testing.T) {
db.AddQuery(rollbackTransition, sqltypes.MakeTestResult(nil))
// try 2pc commit of Metadata Manager.
- err = txe.StartCommit(txid, "aa")
+ state, err := txe.StartCommit(txid, "aa")
require.EqualError(t, err, "VT10002: atomic distributed transaction not allowed: cannot commit the transaction on a reserved connection")
+ assert.Equal(t, querypb.StartCommitState_Fail, state)
}
func TestExecutorSetRollback(t *testing.T) {
@@ -671,7 +673,10 @@ func TestNoTwopc(t *testing.T) {
fun: func() error { return txe.CreateTransaction("aa", nil) },
}, {
desc: "StartCommit",
- fun: func() error { return txe.StartCommit(1, "aa") },
+ fun: func() error {
+ _, err := txe.StartCommit(1, "aa")
+ return err
+ },
}, {
desc: "SetRollback",
fun: func() error { return txe.SetRollback("aa", 1) },
diff --git a/go/vt/vttablet/tabletserver/tabletserver.go b/go/vt/vttablet/tabletserver/tabletserver.go
index d2c33c2a929..847de25eb02 100644
--- a/go/vt/vttablet/tabletserver/tabletserver.go
+++ b/go/vt/vttablet/tabletserver/tabletserver.go
@@ -773,16 +773,18 @@ func (tsv *TabletServer) CreateTransaction(ctx context.Context, target *querypb.
// StartCommit atomically commits the transaction along with the
// decision to commit the associated 2pc transaction.
-func (tsv *TabletServer) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (err error) {
- return tsv.execRequest(
+func (tsv *TabletServer) StartCommit(ctx context.Context, target *querypb.Target, transactionID int64, dtid string) (state querypb.StartCommitState, err error) {
+ err = tsv.execRequest(
ctx, tsv.loadQueryTimeout(),
"StartCommit", "start_commit", nil,
target, nil, true, /* allowOnShutdown */
func(ctx context.Context, logStats *tabletenv.LogStats) error {
txe := NewDTExecutor(ctx, logStats, tsv.te, tsv.qe, tsv.getShard)
- return txe.StartCommit(transactionID, dtid)
+ state, err = txe.StartCommit(transactionID, dtid)
+ return err
},
)
+ return state, err
}
// SetRollback transitions the 2pc transaction to the Rollback state.
diff --git a/go/vt/vttablet/tabletserver/tabletserver_test.go b/go/vt/vttablet/tabletserver/tabletserver_test.go
index be842e8e76e..621941224a9 100644
--- a/go/vt/vttablet/tabletserver/tabletserver_test.go
+++ b/go/vt/vttablet/tabletserver/tabletserver_test.go
@@ -323,13 +323,15 @@ func TestTabletServerStartCommit(t *testing.T) {
commitTransition := fmt.Sprintf("update _vt.dt_state set state = %d where dtid = _binary'aa' and state = %d", int(querypb.TransactionState_COMMIT), int(querypb.TransactionState_PREPARE))
db.AddQuery(commitTransition, &sqltypes.Result{RowsAffected: 1})
txid := newTxForPrep(ctx, tsv)
- err := tsv.StartCommit(ctx, &target, txid, "aa")
+ state, err := tsv.StartCommit(ctx, &target, txid, "aa")
require.NoError(t, err)
+ assert.Equal(t, querypb.StartCommitState_Success, state, "StartCommit state")
db.AddQuery(commitTransition, &sqltypes.Result{})
txid = newTxForPrep(ctx, tsv)
- err = tsv.StartCommit(ctx, &target, txid, "aa")
+ state, err = tsv.StartCommit(ctx, &target, txid, "aa")
assert.EqualError(t, err, "could not transition to COMMIT: aa", "Prepare err")
+ assert.Equal(t, querypb.StartCommitState_Fail, state, "StartCommit state")
}
func TestTabletserverSetRollback(t *testing.T) {
diff --git a/proto/query.proto b/proto/query.proto
index 91c1f28ef09..c5f53ea6e5d 100644
--- a/proto/query.proto
+++ b/proto/query.proto
@@ -609,8 +609,16 @@ message StartCommitRequest {
string dtid = 5;
}
+enum StartCommitState {
+ Unknown = 0;
+ Fail = 1;
+ Success = 2;
+}
+
// StartCommitResponse is the returned value from StartCommit
-message StartCommitResponse {}
+message StartCommitResponse {
+ StartCommitState state = 1;
+}
// SetRollbackRequest is the payload to SetRollback
message SetRollbackRequest {
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index 3a11b44b28b..9e11f5f37d9 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -43809,8 +43809,18 @@ export namespace query {
public static getTypeUrl(typeUrlPrefix?: string): string;
}
+ /** StartCommitState enum. */
+ enum StartCommitState {
+ Unknown = 0,
+ Fail = 1,
+ Success = 2
+ }
+
/** Properties of a StartCommitResponse. */
interface IStartCommitResponse {
+
+ /** StartCommitResponse state */
+ state?: (query.StartCommitState|null);
}
/** Represents a StartCommitResponse. */
@@ -43822,6 +43832,9 @@ export namespace query {
*/
constructor(properties?: query.IStartCommitResponse);
+ /** StartCommitResponse state. */
+ public state: query.StartCommitState;
+
/**
* Creates a new StartCommitResponse instance using the specified properties.
* @param [properties] Properties to set
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index fbdfac0512a..d0ce20ccfc2 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -105420,12 +105420,29 @@ export const query = $root.query = (() => {
return StartCommitRequest;
})();
+ /**
+ * StartCommitState enum.
+ * @name query.StartCommitState
+ * @enum {number}
+ * @property {number} Unknown=0 Unknown value
+ * @property {number} Fail=1 Fail value
+ * @property {number} Success=2 Success value
+ */
+ query.StartCommitState = (function() {
+ const valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "Unknown"] = 0;
+ values[valuesById[1] = "Fail"] = 1;
+ values[valuesById[2] = "Success"] = 2;
+ return values;
+ })();
+
query.StartCommitResponse = (function() {
/**
* Properties of a StartCommitResponse.
* @memberof query
* @interface IStartCommitResponse
+ * @property {query.StartCommitState|null} [state] StartCommitResponse state
*/
/**
@@ -105443,6 +105460,14 @@ export const query = $root.query = (() => {
this[keys[i]] = properties[keys[i]];
}
+ /**
+ * StartCommitResponse state.
+ * @member {query.StartCommitState} state
+ * @memberof query.StartCommitResponse
+ * @instance
+ */
+ StartCommitResponse.prototype.state = 0;
+
/**
* Creates a new StartCommitResponse instance using the specified properties.
* @function create
@@ -105467,6 +105492,8 @@ export const query = $root.query = (() => {
StartCommitResponse.encode = function encode(message, writer) {
if (!writer)
writer = $Writer.create();
+ if (message.state != null && Object.hasOwnProperty.call(message, "state"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.state);
return writer;
};
@@ -105501,6 +105528,10 @@ export const query = $root.query = (() => {
while (reader.pos < end) {
let tag = reader.uint32();
switch (tag >>> 3) {
+ case 1: {
+ message.state = reader.int32();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -105536,6 +105567,15 @@ export const query = $root.query = (() => {
StartCommitResponse.verify = function verify(message) {
if (typeof message !== "object" || message === null)
return "object expected";
+ if (message.state != null && message.hasOwnProperty("state"))
+ switch (message.state) {
+ default:
+ return "state: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
return null;
};
@@ -105550,7 +105590,28 @@ export const query = $root.query = (() => {
StartCommitResponse.fromObject = function fromObject(object) {
if (object instanceof $root.query.StartCommitResponse)
return object;
- return new $root.query.StartCommitResponse();
+ let message = new $root.query.StartCommitResponse();
+ switch (object.state) {
+ default:
+ if (typeof object.state === "number") {
+ message.state = object.state;
+ break;
+ }
+ break;
+ case "Unknown":
+ case 0:
+ message.state = 0;
+ break;
+ case "Fail":
+ case 1:
+ message.state = 1;
+ break;
+ case "Success":
+ case 2:
+ message.state = 2;
+ break;
+ }
+ return message;
};
/**
@@ -105562,8 +105623,15 @@ export const query = $root.query = (() => {
* @param {$protobuf.IConversionOptions} [options] Conversion options
* @returns {Object.} Plain object
*/
- StartCommitResponse.toObject = function toObject() {
- return {};
+ StartCommitResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ let object = {};
+ if (options.defaults)
+ object.state = options.enums === String ? "Unknown" : 0;
+ if (message.state != null && message.hasOwnProperty("state"))
+ object.state = options.enums === String ? $root.query.StartCommitState[message.state] === undefined ? message.state : $root.query.StartCommitState[message.state] : message.state;
+ return object;
};
/**
From 0eb27b28435ebdcda3f1d39b0c26ba2efda668a2 Mon Sep 17 00:00:00 2001
From: Noble Mittal <62551163+beingnoble03@users.noreply.github.com>
Date: Fri, 8 Nov 2024 22:02:44 +0530
Subject: [PATCH 43/78] VTAdmin: Support for multiple DataTable accessing same
URL (#17036)
Signed-off-by: Noble Mittal
---
web/vtadmin/src/components/dataTable/DataTable.tsx | 11 +++++++++--
.../components/routes/workflow/WorkflowDetails.tsx | 4 ++++
.../src/components/routes/workflow/WorkflowVDiff.tsx | 2 +-
web/vtadmin/src/hooks/useURLPagination.ts | 9 +++++----
4 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/web/vtadmin/src/components/dataTable/DataTable.tsx b/web/vtadmin/src/components/dataTable/DataTable.tsx
index ed14067bd34..9e863a6aa54 100644
--- a/web/vtadmin/src/components/dataTable/DataTable.tsx
+++ b/web/vtadmin/src/components/dataTable/DataTable.tsx
@@ -31,6 +31,10 @@ interface Props {
pageSize?: number;
renderRows: (rows: T[]) => JSX.Element[];
title?: string;
+ // Pass a unique `pageKey` for each DataTable, in case multiple
+ // DataTables access the same URL. This will be used to
+ // access page number from the URL.
+ pageKey?: string;
}
// Generally, page sizes of ~100 rows are fine in terms of performance,
@@ -43,12 +47,15 @@ export const DataTable = ({
pageSize = DEFAULT_PAGE_SIZE,
renderRows,
title,
+ pageKey = '',
}: Props) => {
const { pathname } = useLocation();
const urlQuery = useURLQuery();
+ const pageQueryKey = `${pageKey}page`;
+
const totalPages = Math.ceil(data.length / pageSize);
- const { page } = useURLPagination({ totalPages });
+ const { page } = useURLPagination({ totalPages, pageQueryKey });
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
@@ -59,7 +66,7 @@ export const DataTable = ({
const formatPageLink = (p: number) => ({
pathname,
- search: stringify({ ...urlQuery.query, page: p === 1 ? undefined : p }),
+ search: stringify({ ...urlQuery.query, [pageQueryKey]: p === 1 ? undefined : p }),
});
return (
diff --git a/web/vtadmin/src/components/routes/workflow/WorkflowDetails.tsx b/web/vtadmin/src/components/routes/workflow/WorkflowDetails.tsx
index c45fb86c053..10257aa7265 100644
--- a/web/vtadmin/src/components/routes/workflow/WorkflowDetails.tsx
+++ b/web/vtadmin/src/components/routes/workflow/WorkflowDetails.tsx
@@ -276,6 +276,7 @@ export const WorkflowDetails = ({ clusterID, keyspace, name, refetchInterval }:
renderRows={renderSummaryRows}
pageSize={1}
title="Summary"
+ pageKey="summary"
/>
{tableCopyStates && (
)}
Recent Logs
@@ -304,6 +307,7 @@ export const WorkflowDetails = ({ clusterID, keyspace, name, refetchInterval }:
renderRows={renderLogRows}
pageSize={10}
title={stream.key!}
+ pageKey={`${formatAlias(stream.tablet)}${stream.id}`}
/>
))
diff --git a/web/vtadmin/src/components/routes/workflow/WorkflowVDiff.tsx b/web/vtadmin/src/components/routes/workflow/WorkflowVDiff.tsx
index f3ec33488b6..f23fb2290d7 100644
--- a/web/vtadmin/src/components/routes/workflow/WorkflowVDiff.tsx
+++ b/web/vtadmin/src/components/routes/workflow/WorkflowVDiff.tsx
@@ -83,7 +83,7 @@ export const WorkflowVDiff = ({ clusterID, keyspace, name }: Props) => {
const isStatusEmpty =
!lastVDiffStatus ||
- (Object.keys(lastVDiffStatus.shard_report).length === 1 &&
+ (Object.keys(lastVDiffStatus.shard_report).length > 0 &&
!lastVDiffStatus.shard_report[Object.keys(lastVDiffStatus.shard_report)[0]].state);
const renderRows = (rows: typeof shardReports) => {
diff --git a/web/vtadmin/src/hooks/useURLPagination.ts b/web/vtadmin/src/hooks/useURLPagination.ts
index ddccdc43b07..b6681e1fd41 100644
--- a/web/vtadmin/src/hooks/useURLPagination.ts
+++ b/web/vtadmin/src/hooks/useURLPagination.ts
@@ -20,6 +20,7 @@ import { useURLQuery } from './useURLQuery';
export interface PaginationOpts {
totalPages: number;
+ pageQueryKey?: string;
}
export interface PaginationParams {
@@ -35,7 +36,7 @@ const FIRST_PAGE = 1;
* - use pagination in some way
* - encode pagination state in the URL (e.g., /some/route?page=123)
*/
-export const useURLPagination = ({ totalPages }: PaginationOpts): PaginationParams => {
+export const useURLPagination = ({ totalPages, pageQueryKey = 'page' }: PaginationOpts): PaginationParams => {
const history = useHistory();
const location = useLocation();
const { query, replaceQuery } = useURLQuery({ parseNumbers: true });
@@ -43,7 +44,7 @@ export const useURLPagination = ({ totalPages }: PaginationOpts): PaginationPara
// A slight nuance here -- if `page` is not in the URL at all, then we can assume
// it's the first page. This makes for slightly nicer URLs for the first/default page:
// "/foo" instead of "/foo?page=1". No redirect required.
- const page = !('page' in query) || query.page === null ? FIRST_PAGE : query.page;
+ const page = !(pageQueryKey in query) || query[pageQueryKey] === null ? FIRST_PAGE : query[pageQueryKey];
useEffect(() => {
// If the value in the URL *is* defined but is negative, non-numeric,
@@ -53,9 +54,9 @@ export const useURLPagination = ({ totalPages }: PaginationOpts): PaginationPara
if (isPageTooBig || isPageTooSmall || typeof page !== 'number') {
// Replace history so the invalid value is not persisted in browser history
- replaceQuery({ page: FIRST_PAGE });
+ replaceQuery({ [pageQueryKey]: FIRST_PAGE });
}
- }, [page, totalPages, history, location.pathname, query, replaceQuery]);
+ }, [page, pageQueryKey, totalPages, history, location.pathname, query, replaceQuery]);
return {
page,
From 2d1e96ac46641d660ee65e43ba69a156495e7b19 Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Fri, 8 Nov 2024 13:52:55 -0600
Subject: [PATCH 44/78] Fix flakiness in `TestListenerShutdown` (#17024)
Signed-off-by: Florent Poinsard
---
go/mysql/server_test.go | 22 +++-------------------
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/go/mysql/server_test.go b/go/mysql/server_test.go
index 975bc964633..b301e956ef4 100644
--- a/go/mysql/server_test.go
+++ b/go/mysql/server_test.go
@@ -1414,7 +1414,9 @@ func TestListenerShutdown(t *testing.T) {
l.Shutdown()
- waitForConnRefuse(t, ctx, 1)
+ require.Eventually(t, func() bool {
+ return connRefuse.Get() == 1
+ }, 1*time.Minute, 100*time.Millisecond, "could not reach the desired connRefuse value")
err = conn.Ping()
require.EqualError(t, err, "Server shutdown in progress (errno 1053) (sqlstate 08S01)")
@@ -1426,24 +1428,6 @@ func TestListenerShutdown(t *testing.T) {
require.Equal(t, "Server shutdown in progress", sqlErr.Message)
}
-func waitForConnRefuse(t *testing.T, ctx context.Context, valWanted int64) {
- ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
- defer cancel()
- tick := time.NewTicker(100 * time.Millisecond)
- defer tick.Stop()
-
- for {
- select {
- case <-ctx.Done():
- require.FailNow(t, "connRefuse did not reach %v", valWanted)
- case <-tick.C:
- if connRefuse.Get() == valWanted {
- return
- }
- }
- }
-}
-
func TestParseConnAttrs(t *testing.T) {
expected := map[string]string{
"_client_version": "8.0.11",
From 8af57c0131d93db5ccd1a454b790377a1f5dfa6c Mon Sep 17 00:00:00 2001
From: shanth96
Date: Fri, 8 Nov 2024 17:11:44 -0500
Subject: [PATCH 45/78] Close zookeeper topo connection on disconnect (#17136)
Signed-off-by: shanth96
---
go/vt/topo/zk2topo/zk_conn.go | 12 +++----
go/vt/topo/zk2topo/zk_conn_test.go | 57 ++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 8 deletions(-)
create mode 100644 go/vt/topo/zk2topo/zk_conn_test.go
diff --git a/go/vt/topo/zk2topo/zk_conn.go b/go/vt/topo/zk2topo/zk_conn.go
index 22bd2046b60..aa7ac13d281 100644
--- a/go/vt/topo/zk2topo/zk_conn.go
+++ b/go/vt/topo/zk2topo/zk_conn.go
@@ -272,6 +272,8 @@ func (c *ZkConn) withRetry(ctx context.Context, action func(conn *zk.Conn) error
c.conn = nil
}
c.mu.Unlock()
+ log.Infof("zk conn: got ErrConnectionClosed for addr %v: closing", c.addr)
+ conn.Close()
}
return
}
@@ -322,13 +324,9 @@ func (c *ZkConn) maybeAddAuth(ctx context.Context) {
// clears out the connection record.
func (c *ZkConn) handleSessionEvents(conn *zk.Conn, session <-chan zk.Event) {
for event := range session {
- closeRequired := false
switch event.State {
- case zk.StateExpired, zk.StateConnecting:
- closeRequired = true
- fallthrough
- case zk.StateDisconnected:
+ case zk.StateDisconnected, zk.StateExpired, zk.StateConnecting:
c.mu.Lock()
if c.conn == conn {
// The ZkConn still references this
@@ -336,9 +334,7 @@ func (c *ZkConn) handleSessionEvents(conn *zk.Conn, session <-chan zk.Event) {
c.conn = nil
}
c.mu.Unlock()
- if closeRequired {
- conn.Close()
- }
+ conn.Close()
log.Infof("zk conn: session for addr %v ended: %v", c.addr, event)
return
}
diff --git a/go/vt/topo/zk2topo/zk_conn_test.go b/go/vt/topo/zk2topo/zk_conn_test.go
new file mode 100644
index 00000000000..b0b94c07074
--- /dev/null
+++ b/go/vt/topo/zk2topo/zk_conn_test.go
@@ -0,0 +1,57 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package zk2topo
+
+import (
+ "context"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+ "github.com/z-division/go-zookeeper/zk"
+
+ "vitess.io/vitess/go/testfiles"
+ "vitess.io/vitess/go/vt/zkctl"
+)
+
+func TestZkConnClosedOnDisconnect(t *testing.T) {
+ zkd, serverAddr := zkctl.StartLocalZk(testfiles.GoVtTopoZk2topoZkID, testfiles.GoVtTopoZk2topoPort)
+ defer zkd.Teardown()
+
+ conn := Connect(serverAddr)
+ defer conn.Close()
+
+ _, _, err := conn.Get(context.Background(), "/")
+ require.NoError(t, err, "Get() failed")
+
+ require.True(t, conn.conn.State().IsConnected(), "Connection not connected")
+
+ oldConn := conn.conn
+
+ // force a disconnect
+ zkd.Shutdown()
+ zkd.Start()
+
+ // do another get to trigger a new connection
+ _, _, err = conn.Get(context.Background(), "/")
+ require.NoError(t, err, "Get() failed")
+
+ // Check that old connection is closed
+ _, _, err = oldConn.Get("/")
+ require.ErrorContains(t, err, "zookeeper is closing")
+
+ require.Equal(t, zk.StateDisconnected, oldConn.State(), "Connection is not in disconnected state")
+}
From 655f7fa15b097ca591b0534ff0abd11cedb13ec3 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Sat, 9 Nov 2024 09:34:45 -0500
Subject: [PATCH 46/78] Flakes: Address flakiness in
TestZkConnClosedOnDisconnect (#17194)
Signed-off-by: Matt Lord
---
go/vt/topo/zk2topo/zk_conn_test.go | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/go/vt/topo/zk2topo/zk_conn_test.go b/go/vt/topo/zk2topo/zk_conn_test.go
index b0b94c07074..e79987b562f 100644
--- a/go/vt/topo/zk2topo/zk_conn_test.go
+++ b/go/vt/topo/zk2topo/zk_conn_test.go
@@ -19,6 +19,7 @@ package zk2topo
import (
"context"
"testing"
+ "time"
"github.com/stretchr/testify/require"
"github.com/z-division/go-zookeeper/zk"
@@ -42,12 +43,16 @@ func TestZkConnClosedOnDisconnect(t *testing.T) {
oldConn := conn.conn
// force a disconnect
- zkd.Shutdown()
- zkd.Start()
+ err = zkd.Shutdown()
+ require.NoError(t, err)
+ err = zkd.Start()
+ require.NoError(t, err)
// do another get to trigger a new connection
- _, _, err = conn.Get(context.Background(), "/")
- require.NoError(t, err, "Get() failed")
+ require.Eventually(t, func() bool {
+ _, _, err = conn.Get(context.Background(), "/")
+ return err == nil
+ }, 10*time.Second, 100*time.Millisecond)
// Check that old connection is closed
_, _, err = oldConn.Get("/")
From 57aed0d5296abca84192debe7a226970bd45542d Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 11 Nov 2024 08:26:29 +0200
Subject: [PATCH 47/78] `engine.Reload()`: read InnoDB tables sizes including
`FULLTEXT` index volume (#17118)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/mysql/collations/charset/filename.go | 375 +++++++
go/mysql/collations/charset/filename_test.go | 62 ++
go/mysql/config/config.go | 1 +
go/mysql/fakesqldb/server.go | 7 +-
go/mysql/flavor.go | 6 +
go/mysql/flavor_filepos.go | 4 +
go/mysql/flavor_mariadb_binlog_playback.go | 4 +
go/mysql/flavor_mysql.go | 115 ++-
go/mysql/flavor_mysql_legacy.go | 7 +-
go/mysql/flavor_mysqlgr.go | 7 +-
go/mysql/schema.go | 31 +
go/vt/vtenv/vtenv.go | 6 +
go/vt/vtexplain/vtexplain_vttablet.go | 7 +-
go/vt/vttablet/endtoend/misc_test.go | 181 +++-
.../vttablet/tabletserver/connpool/dbconn.go | 5 +
.../tabletserver/health_streamer_test.go | 45 +-
go/vt/vttablet/tabletserver/schema/engine.go | 61 ++
.../tabletserver/schema/engine_test.go | 913 ++++++++++++++----
.../vttablet/tabletserver/schema/main_test.go | 4 +-
19 files changed, 1565 insertions(+), 276 deletions(-)
create mode 100644 go/mysql/collations/charset/filename.go
create mode 100644 go/mysql/collations/charset/filename_test.go
diff --git a/go/mysql/collations/charset/filename.go b/go/mysql/collations/charset/filename.go
new file mode 100644
index 00000000000..50395645f98
--- /dev/null
+++ b/go/mysql/collations/charset/filename.go
@@ -0,0 +1,375 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package charset
+
+import (
+ "strings"
+ "unicode"
+)
+
+/*
+*s++ = MY_FILENAME_ESCAPE;
+if ((wc >= 0x00C0 && wc <= 0x05FF && (code = uni_0C00_05FF[wc - 0x00C0])) ||
+ (wc >= 0x1E00 && wc <= 0x1FFF && (code = uni_1E00_1FFF[wc - 0x1E00])) ||
+ (wc >= 0x2160 && wc <= 0x217F && (code = uni_2160_217F[wc - 0x2160])) ||
+ (wc >= 0x24B0 && wc <= 0x24EF && (code = uni_24B0_24EF[wc - 0x24B0])) ||
+ (wc >= 0xFF20 && wc <= 0xFF5F && (code = uni_FF20_FF5F[wc - 0xFF20]))) {
+ *s++ = (code / 80) + 0x30;
+ *s++ = (code % 80) + 0x30;
+ return 3;
+}
+*/
+
+// TablenameToFilename is a rewrite of MySQL's `tablename_to_filename` utility function.
+// InnoDB table names are in the form of schema_name/table_name, except each of the tokens are encoded using this function.
+// For simple characters there is no change, but special characters get encoded. Thus, the table `tbl-fts` in `test` db
+// will be encoded as `test/tbl@002dfts`
+//
+// Original encoding function:
+//
+// https://github.com/mysql/mysql-server/blob/89e1c722476deebc3ddc8675e779869f6da654c0/strings/ctype-utf8.cc#L6961-L6984
+//
+// static int my_wc_mb_filename(const CHARSET_INFO *cs [[maybe_unused]],
+// my_wc_t wc, uchar *s, uchar *e) {
+// int code;
+// char hex[] = "0123456789abcdef";
+//
+// if (s >= e) return MY_CS_TOOSMALL;
+//
+// if (wc < 128 && filename_safe_char[wc]) {
+// *s = (uchar)wc;
+// return 1;
+// }
+//
+// if (s + 3 > e) return MY_CS_TOOSMALL3;
+//
+// *s++ = MY_FILENAME_ESCAPE;
+// if ((wc >= 0x00C0 && wc <= 0x05FF && (code = uni_0C00_05FF[wc - 0x00C0])) ||
+// (wc >= 0x1E00 && wc <= 0x1FFF && (code = uni_1E00_1FFF[wc - 0x1E00])) ||
+// (wc >= 0x2160 && wc <= 0x217F && (code = uni_2160_217F[wc - 0x2160])) ||
+// (wc >= 0x24B0 && wc <= 0x24EF && (code = uni_24B0_24EF[wc - 0x24B0])) ||
+// (wc >= 0xFF20 && wc <= 0xFF5F && (code = uni_FF20_FF5F[wc - 0xFF20]))) {
+// *s++ = (code / 80) + 0x30;
+// *s++ = (code % 80) + 0x30;
+// return 3;
+// }
+//
+// /* Non letter */
+// if (s + 5 > e) return MY_CS_TOOSMALL5;
+//
+// *s++ = hex[(wc >> 12) & 15];
+// *s++ = hex[(wc >> 8) & 15];
+// *s++ = hex[(wc >> 4) & 15];
+// *s++ = hex[(wc)&15];
+// return 5;
+// }
+//
+// See also MySQL docs: https://dev.mysql.com/doc/refman/8.0/en/identifier-mapping.html
+func TablenameToFilename(name string) string {
+ var b strings.Builder
+ for _, wc := range name {
+ if wc < 128 && filename_safe_char[wc] == 1 {
+ b.WriteRune(wc)
+ continue
+ }
+
+ b.WriteRune('@')
+
+ var code uint16
+ switch {
+ case wc >= 0x00C0 && wc <= 0x05FF:
+ code = uni_0C00_05FF[wc-0x00C0]
+ case wc >= 0x1E00 && wc <= 0x1FFF:
+ code = uni_1E00_1FFF[wc-0x1E00]
+ case wc >= 0x2160 && wc <= 0x217F:
+ code = uni_2160_217F[wc-0x2160]
+ case wc >= 0x24B0 && wc <= 0x24EF:
+ code = uni_24B0_24EF[wc-0x24B0]
+ case wc >= 0xFF20 && wc <= 0xFF5F:
+ code = uni_FF20_FF5F[wc-0xFF20]
+ }
+ if code != 0 {
+ // One of specifically addressed character sets
+ b.WriteRune(unicode.ToLower(rune(code/80) + 0x30))
+ b.WriteRune(unicode.ToLower(rune(code%80) + 0x30))
+ continue
+ }
+ // Other characters
+ b.WriteByte(hexSequence[(wc>>12)&15])
+ b.WriteByte(hexSequence[(wc>>8)&15])
+ b.WriteByte(hexSequence[(wc>>4)&15])
+ b.WriteByte(hexSequence[(wc)&15])
+ }
+ return b.String()
+}
+
+var (
+ hexSequence = "0123456789abcdef"
+
+ filename_safe_char = []byte{
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ................ */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* ................ */
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* !"#$%&'()*+,-./ */
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0123456789:;<=>? */
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* @ABCDEFGHIJKLMNO */
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* PQRSTUVWXYZ[\]^_ */
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* `abcdefghijklmno */
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* pqrstuvwxyz{|}~. */
+ }
+
+ /* 00C0-05FF */
+ uni_0C00_05FF = []uint16{
+ 0x0017, 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028,
+ 0x0029, 0x002A, 0x0067, 0x0068, 0x0069, 0x0000, 0x006B, 0x006C, 0x006D,
+ 0x006E, 0x006F, 0x0070, 0x0071, 0x008A, 0x0037, 0x0038, 0x0039, 0x003A,
+ 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, 0x0040, 0x0041, 0x0042, 0x0043,
+ 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x0087, 0x0088,
+ 0x0089, 0x0000, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090, 0x0091,
+ 0x0092, 0x0073, 0x0093, 0x0074, 0x0094, 0x0075, 0x0095, 0x0076, 0x0096,
+ 0x0077, 0x0097, 0x0078, 0x0098, 0x0079, 0x0099, 0x007A, 0x009A, 0x00B7,
+ 0x00D7, 0x00B8, 0x00D8, 0x00B9, 0x00D9, 0x00BA, 0x00DA, 0x00BB, 0x00DB,
+ 0x00BC, 0x00DC, 0x00BD, 0x00DD, 0x00BE, 0x00DE, 0x00BF, 0x00DF, 0x00C0,
+ 0x00E0, 0x00C1, 0x00E1, 0x00C2, 0x00E2, 0x00C3, 0x00E3, 0x00C4, 0x00E4,
+ 0x00C5, 0x00E5, 0x00C6, 0x00E6, 0x0000, 0x00E7, 0x00C8, 0x00E8, 0x00C9,
+ 0x00E9, 0x00CA, 0x00EA, 0x0127, 0x0108, 0x0128, 0x0109, 0x0129, 0x010A,
+ 0x012A, 0x010B, 0x012B, 0x010C, 0x012C, 0x010D, 0x012D, 0x010E, 0x012E,
+ 0x010F, 0x012F, 0x0130, 0x0111, 0x0131, 0x0112, 0x0132, 0x0113, 0x0133,
+ 0x0114, 0x0134, 0x0115, 0x0135, 0x0116, 0x0136, 0x0117, 0x0137, 0x0118,
+ 0x0138, 0x0119, 0x0139, 0x011A, 0x013A, 0x0157, 0x0177, 0x0158, 0x0178,
+ 0x0159, 0x0179, 0x015A, 0x017A, 0x015B, 0x017B, 0x015C, 0x017C, 0x015D,
+ 0x017D, 0x015E, 0x017E, 0x015F, 0x017F, 0x0160, 0x0180, 0x0161, 0x0181,
+ 0x0162, 0x0182, 0x0163, 0x0183, 0x0072, 0x0164, 0x0184, 0x0165, 0x0185,
+ 0x0166, 0x0186, 0x0187, 0x1161, 0x0A86, 0x07B1, 0x11B1, 0x0801, 0x1201,
+ 0x0AD6, 0x0851, 0x1251, 0x0B76, 0x0BC6, 0x08A1, 0x12A1, 0x12F1, 0x0D52,
+ 0x0C66, 0x0D06, 0x0941, 0x1341, 0x0857, 0x0947, 0x1391, 0x0B27, 0x0AD7,
+ 0x09E1, 0x13E1, 0x1431, 0x1481, 0x0D07, 0x07B8, 0x14D1, 0x08A8, 0x0B21,
+ 0x1521, 0x0B71, 0x1571, 0x0BC1, 0x15C1, 0x0C18, 0x0C11, 0x1611, 0x0D08,
+ 0x1661, 0x16B1, 0x0D01, 0x1701, 0x0859, 0x0D51, 0x1751, 0x08F9, 0x0949,
+ 0x0762, 0x1162, 0x07B2, 0x11B2, 0x0B79, 0x0802, 0x1202, 0x1252, 0x12A2,
+ 0x0992, 0x1392, 0x1342, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09E2,
+ 0x0000, 0x13E2, 0x0A32, 0x0000, 0x1432, 0x0A82, 0x0000, 0x1482, 0x0AD2,
+ 0x14D2, 0x0B22, 0x1522, 0x0B72, 0x1572, 0x0BC2, 0x15C2, 0x0C12, 0x1612,
+ 0x0C62, 0x1662, 0x0CB2, 0x16B2, 0x0D02, 0x1702, 0x1752, 0x0763, 0x1163,
+ 0x07B3, 0x11B3, 0x0803, 0x1203, 0x0853, 0x1253, 0x08A3, 0x12A3, 0x08F3,
+ 0x12F3, 0x0943, 0x1343, 0x0993, 0x1393, 0x09E3, 0x13E3, 0x1433, 0x0A83,
+ 0x0000, 0x1483, 0x0AD3, 0x14D3, 0x0991, 0x0000, 0x0B23, 0x1523, 0x0B73,
+ 0x1573, 0x0BC3, 0x15C3, 0x0C13, 0x1613, 0x0C63, 0x1663, 0x0CB3, 0x16B3,
+ 0x0D03, 0x1703, 0x0D53, 0x1753, 0x0764, 0x1164, 0x07B4, 0x11B4, 0x0804,
+ 0x1204, 0x0854, 0x1254, 0x08A4, 0x12A4, 0x08F4, 0x12F4, 0x0944, 0x1344,
+ 0x0994, 0x1394, 0x09E4, 0x13E4, 0x0A34, 0x1434, 0x0A84, 0x1484, 0x0AD4,
+ 0x14D4, 0x0AD1, 0x1524, 0x0B74, 0x1574, 0x0BC4, 0x15C4, 0x0C14, 0x1614,
+ 0x0C64, 0x1664, 0x0CB4, 0x16B4, 0x0D04, 0x1704, 0x0D54, 0x1754, 0x0765,
+ 0x1165, 0x07B5, 0x11B5, 0x1205, 0x1255, 0x12A5, 0x12F5, 0x1345, 0x1395,
+ 0x09E5, 0x0A35, 0x1435, 0x0A31, 0x0A85, 0x14D5, 0x1525, 0x0C19, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x1396, 0x13E6, 0x1436, 0x1486, 0x14D6,
+ 0x1526, 0x1576, 0x15C6, 0x1616, 0x1666, 0x16B6, 0x1706, 0x1756, 0x1167,
+ 0x11B7, 0x1207, 0x1257, 0x12A7, 0x12F7, 0x1347, 0x1397, 0x13E7, 0x1437,
+ 0x1487, 0x14D7, 0x1527, 0x1577, 0x15C7, 0x1617, 0x1667, 0x16B7, 0x1707,
+ 0x1757, 0x1168, 0x11B8, 0x1208, 0x1258, 0x12A8, 0x12F8, 0x1348, 0x1398,
+ 0x13E8, 0x1438, 0x1488, 0x14D8, 0x1528, 0x1578, 0x15C8, 0x1618, 0x1668,
+ 0x16B8, 0x1708, 0x1758, 0x1169, 0x11B9, 0x1209, 0x1259, 0x12A9, 0x12F9,
+ 0x1349, 0x1399, 0x13E9, 0x1439, 0x1489, 0x14D9, 0x1529, 0x1579, 0x15C9,
+ 0x1619, 0x1669, 0x16B9, 0x1709, 0x1759, 0x116A, 0x11BA, 0x120A, 0x125A,
+ 0x12AA, 0x12FA, 0x134A, 0x139A, 0x13EA, 0x143A, 0x148A, 0x14DA, 0x152A,
+ 0x157A, 0x15CA, 0x161A, 0x166A, 0x16BA, 0x170A, 0x175A, 0x116B, 0x11BB,
+ 0x120B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01F7,
+ 0x0000, 0x01F8, 0x01F9, 0x01FA, 0x0000, 0x0253, 0x0000, 0x0254, 0x0255,
+ 0x01D9, 0x01FC, 0x0257, 0x01FE, 0x01FF, 0x0200, 0x0201, 0x0202, 0x0258,
+ 0x0204, 0x02A7, 0x0206, 0x0207, 0x0208, 0x0209, 0x020A, 0x0299, 0x0248,
+ 0x0000, 0x02A9, 0x024B, 0x024C, 0x0298, 0x024E, 0x024F, 0x0250, 0x0251,
+ 0x0252, 0x0217, 0x0218, 0x0219, 0x021A, 0x021B, 0x021C, 0x021D, 0x021E,
+ 0x021F, 0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0226, 0x0227,
+ 0x0228, 0x0229, 0x022A, 0x0267, 0x0268, 0x0269, 0x026A, 0x026B, 0x026C,
+ 0x026D, 0x026E, 0x026F, 0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275,
+ 0x0000, 0x0277, 0x0278, 0x0259, 0x025A, 0x0297, 0x02B8, 0x02B9, 0x02BA,
+ 0x0000, 0x02BB, 0x029C, 0x02BC, 0x029D, 0x02BD, 0x029E, 0x02BE, 0x029F,
+ 0x02BF, 0x02A0, 0x02C0, 0x02A1, 0x02C1, 0x02A2, 0x02C2, 0x02A3, 0x02C3,
+ 0x02A4, 0x02C4, 0x02A5, 0x02C5, 0x02A6, 0x02C6, 0x02C7, 0x02C8, 0x02C9,
+ 0x02CA, 0x0000, 0x0307, 0x0308, 0x0000, 0x0309, 0x0000, 0x0000, 0x030A,
+ 0x030B, 0x02EC, 0x02ED, 0x02EE, 0x0AF1, 0x0B41, 0x0B91, 0x0BE1, 0x0C31,
+ 0x0C81, 0x0CD1, 0x0D21, 0x0732, 0x0782, 0x07D2, 0x0822, 0x0872, 0x08C2,
+ 0x0912, 0x0962, 0x0730, 0x0780, 0x07D0, 0x0820, 0x0870, 0x08C0, 0x0910,
+ 0x0960, 0x09B0, 0x0A00, 0x0A50, 0x0AA0, 0x0AF0, 0x0B40, 0x0B90, 0x0BE0,
+ 0x0C30, 0x0C80, 0x0CD0, 0x0D20, 0x0731, 0x0781, 0x07D1, 0x0821, 0x0871,
+ 0x08C1, 0x0911, 0x0961, 0x09B1, 0x0A01, 0x0A51, 0x0AA1, 0x1130, 0x1180,
+ 0x11D0, 0x1220, 0x1270, 0x12C0, 0x1310, 0x1360, 0x13B0, 0x1400, 0x1450,
+ 0x14A0, 0x14F0, 0x1540, 0x1590, 0x15E0, 0x1630, 0x1680, 0x16D0, 0x1720,
+ 0x1131, 0x1181, 0x11D1, 0x1221, 0x1271, 0x12C1, 0x1311, 0x1361, 0x13B1,
+ 0x1401, 0x1451, 0x14A1, 0x14F1, 0x1541, 0x1591, 0x15E1, 0x1631, 0x1681,
+ 0x16D1, 0x1721, 0x1132, 0x1182, 0x11D2, 0x1222, 0x1272, 0x12C2, 0x1312,
+ 0x1362, 0x09B2, 0x13B2, 0x0A02, 0x1402, 0x0A52, 0x1452, 0x0AA2, 0x14A2,
+ 0x0AF2, 0x14F2, 0x0B42, 0x1542, 0x0B92, 0x1592, 0x0BE2, 0x15E2, 0x0C32,
+ 0x1632, 0x0C82, 0x1682, 0x0CD2, 0x16D2, 0x0D22, 0x1722, 0x0733, 0x1133,
+ 0x0783, 0x1183, 0x07D3, 0x11D3, 0x0823, 0x1223, 0x0873, 0x1273, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0913, 0x1313,
+ 0x0963, 0x1363, 0x09B3, 0x13B3, 0x0A03, 0x1403, 0x0A53, 0x1453, 0x0AA3,
+ 0x14A3, 0x0AF3, 0x14F3, 0x0B43, 0x1543, 0x0B93, 0x1593, 0x0BE3, 0x15E3,
+ 0x0C33, 0x1633, 0x0C83, 0x1683, 0x0CD3, 0x16D3, 0x0D23, 0x1723, 0x0734,
+ 0x1134, 0x0784, 0x1184, 0x07D4, 0x11D4, 0x0824, 0x1224, 0x0874, 0x1274,
+ 0x08C4, 0x12C4, 0x0914, 0x1314, 0x0964, 0x1364, 0x09B4, 0x13B4, 0x0A04,
+ 0x1404, 0x0A54, 0x1454, 0x0AA4, 0x14A4, 0x0AF4, 0x14F4, 0x0B44, 0x0B94,
+ 0x1594, 0x0BE4, 0x15E4, 0x0C34, 0x1634, 0x0C84, 0x1684, 0x0CD4, 0x16D4,
+ 0x0D24, 0x1724, 0x0735, 0x1135, 0x0000, 0x07D5, 0x11D5, 0x0825, 0x1225,
+ 0x0875, 0x1275, 0x08C5, 0x12C5, 0x0915, 0x1315, 0x0965, 0x1365, 0x09B5,
+ 0x13B5, 0x0A05, 0x1405, 0x0A55, 0x1455, 0x0AA5, 0x14A5, 0x0AF5, 0x14F5,
+ 0x0B45, 0x1545, 0x0B95, 0x1595, 0x0BE5, 0x15E5, 0x0C35, 0x1635, 0x0C85,
+ 0x1685, 0x0CD5, 0x16D5, 0x0D25, 0x1725, 0x0736, 0x1136, 0x0786, 0x1186,
+ 0x07D6, 0x11D6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0A06,
+ 0x1406, 0x0A56, 0x1456, 0x0AA6, 0x14A6, 0x0AF6, 0x14F6, 0x0B46, 0x1546,
+ 0x0B96, 0x1596, 0x0BE6, 0x15E6, 0x0C36, 0x1636, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0787, 0x07D7, 0x0827, 0x0877, 0x08C7, 0x0917,
+ 0x0967, 0x09B7, 0x0A07, 0x0A57, 0x0AA7, 0x0AF7, 0x0B47, 0x0B97, 0x0BE7,
+ 0x0C37, 0x0C87, 0x0CD7, 0x0D27, 0x0738, 0x0788, 0x07D8, 0x0828, 0x0878,
+ 0x08C8, 0x0918, 0x0968, 0x09B8, 0x0A08, 0x0A58, 0x0AA8, 0x0AF8, 0x0B48,
+ 0x0B98, 0x0BE8, 0x0C38, 0x0C88, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1187, 0x11D7, 0x1227,
+ 0x1277, 0x12C7, 0x1317, 0x1367, 0x13B7, 0x1407, 0x1457, 0x14A7, 0x14F7,
+ 0x1547, 0x1597, 0x15E7, 0x1637, 0x1687, 0x16D7, 0x1727, 0x1138, 0x1188,
+ 0x11D8, 0x1228, 0x1278, 0x12C8, 0x1318, 0x1368, 0x13B8, 0x1408, 0x1458,
+ 0x14A8, 0x14F8, 0x1548, 0x1598, 0x15E8, 0x1638, 0x1688, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000}
+
+ /* 1E00-1FFF */
+ uni_1E00_1FFF = []uint16{
+ 0x076C, 0x116C, 0x07BC, 0x11BC, 0x080C, 0x120C, 0x085C, 0x125C, 0x08AC,
+ 0x12AC, 0x08FC, 0x12FC, 0x094C, 0x134C, 0x099C, 0x139C, 0x09EC, 0x13EC,
+ 0x0A3C, 0x143C, 0x0A8C, 0x148C, 0x0ADC, 0x14DC, 0x0B2C, 0x152C, 0x0B7C,
+ 0x157C, 0x0BCC, 0x15CC, 0x0C1C, 0x161C, 0x0C6C, 0x166C, 0x0CBC, 0x16BC,
+ 0x0D0C, 0x170C, 0x0D5C, 0x175C, 0x076D, 0x116D, 0x07BD, 0x11BD, 0x080D,
+ 0x120D, 0x085D, 0x125D, 0x08AD, 0x12AD, 0x08FD, 0x12FD, 0x094D, 0x134D,
+ 0x099D, 0x139D, 0x09ED, 0x13ED, 0x0A3D, 0x143D, 0x0A8D, 0x148D, 0x0ADD,
+ 0x14DD, 0x0B2D, 0x152D, 0x0B7D, 0x157D, 0x0BCD, 0x15CD, 0x0C1D, 0x161D,
+ 0x0C6D, 0x166D, 0x0CBD, 0x16BD, 0x0D0D, 0x170D, 0x0D5D, 0x175D, 0x076E,
+ 0x116E, 0x07BE, 0x11BE, 0x080E, 0x120E, 0x085E, 0x125E, 0x08AE, 0x12AE,
+ 0x08FE, 0x12FE, 0x094E, 0x134E, 0x099E, 0x139E, 0x0770, 0x13EE, 0x0A3E,
+ 0x143E, 0x0A8E, 0x148E, 0x0ADE, 0x14DE, 0x0B2E, 0x152E, 0x0B7E, 0x157E,
+ 0x0BCE, 0x15CE, 0x0C1E, 0x161E, 0x0C6E, 0x166E, 0x0CBE, 0x16BE, 0x0D0E,
+ 0x170E, 0x0D5E, 0x175E, 0x076F, 0x116F, 0x07BF, 0x11BF, 0x080F, 0x120F,
+ 0x085F, 0x125F, 0x08AF, 0x12AF, 0x08FF, 0x12FF, 0x094F, 0x134F, 0x099F,
+ 0x139F, 0x09EF, 0x13EF, 0x0A3F, 0x143F, 0x0A8F, 0x148F, 0x0ADF, 0x14DF,
+ 0x0B2F, 0x152F, 0x0B7F, 0x157F, 0x0BCF, 0x15CF, 0x161F, 0x166F, 0x16BF,
+ 0x170F, 0x175F, 0x1170, 0x0000, 0x0000, 0x0000, 0x0000, 0x0900, 0x1300,
+ 0x0950, 0x1350, 0x09A0, 0x13A0, 0x09F0, 0x13F0, 0x0A40, 0x1440, 0x0A90,
+ 0x1490, 0x0AE0, 0x14E0, 0x0B30, 0x1530, 0x0B80, 0x1580, 0x0BD0, 0x15D0,
+ 0x0C20, 0x1620, 0x0C70, 0x1670, 0x0CC0, 0x16C0, 0x0D10, 0x1710, 0x0D60,
+ 0x1760, 0x0771, 0x1171, 0x07C1, 0x11C1, 0x0811, 0x1211, 0x0861, 0x1261,
+ 0x08B1, 0x12B1, 0x0901, 0x1301, 0x0951, 0x1351, 0x09A1, 0x13A1, 0x09F1,
+ 0x13F1, 0x0A41, 0x1441, 0x0A91, 0x1491, 0x0AE1, 0x14E1, 0x0B31, 0x1531,
+ 0x0B81, 0x1581, 0x0BD1, 0x15D1, 0x0C21, 0x1621, 0x0C71, 0x1671, 0x0CC1,
+ 0x16C1, 0x0D11, 0x1711, 0x0D61, 0x1761, 0x0772, 0x1172, 0x07C2, 0x11C2,
+ 0x0812, 0x1212, 0x0862, 0x1262, 0x08B2, 0x12B2, 0x0902, 0x1302, 0x0952,
+ 0x1352, 0x09A2, 0x13A2, 0x09F2, 0x13F2, 0x0A42, 0x1442, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x1173, 0x11C3, 0x1213, 0x1263, 0x12B3,
+ 0x1303, 0x1353, 0x13A3, 0x0773, 0x07C3, 0x0813, 0x0863, 0x08B3, 0x0903,
+ 0x0953, 0x09A3, 0x13F3, 0x1443, 0x1493, 0x14E3, 0x1533, 0x1583, 0x0000,
+ 0x0000, 0x09F3, 0x0A43, 0x0A93, 0x0AE3, 0x0B33, 0x0B83, 0x0000, 0x0000,
+ 0x1713, 0x1763, 0x1174, 0x11C4, 0x1214, 0x1264, 0x12B4, 0x1304, 0x0D13,
+ 0x0D63, 0x0774, 0x07C4, 0x0814, 0x0864, 0x08B4, 0x0904, 0x1354, 0x13A4,
+ 0x13F4, 0x1444, 0x1494, 0x14E4, 0x1534, 0x1584, 0x0954, 0x09A4, 0x09F4,
+ 0x0A44, 0x0A94, 0x0AE4, 0x0B34, 0x0B84, 0x15D4, 0x1624, 0x1674, 0x16C4,
+ 0x1714, 0x1764, 0x0000, 0x0000, 0x0BD4, 0x0C24, 0x0C74, 0x0CC4, 0x0D14,
+ 0x0D64, 0x0000, 0x0000, 0x12B5, 0x1305, 0x1355, 0x13A5, 0x13F5, 0x1445,
+ 0x1495, 0x14E5, 0x0000, 0x0905, 0x0000, 0x09A5, 0x0000, 0x0A45, 0x0000,
+ 0x0AE5, 0x1675, 0x16C5, 0x1715, 0x1765, 0x1176, 0x11C6, 0x1216, 0x1266,
+ 0x0C75, 0x0CC5, 0x0D15, 0x0D65, 0x0776, 0x07C6, 0x0816, 0x0866, 0x12B6,
+ 0x1306, 0x1356, 0x13A6, 0x13F6, 0x1446, 0x1496, 0x14E6, 0x1536, 0x1586,
+ 0x15D6, 0x1626, 0x1676, 0x16C6, 0x0000, 0x0000, 0x1177, 0x11C7, 0x1217,
+ 0x1267, 0x12B7, 0x1307, 0x1357, 0x13A7, 0x0777, 0x07C7, 0x0817, 0x0867,
+ 0x08B7, 0x0907, 0x0957, 0x09A7, 0x13F7, 0x1447, 0x1497, 0x14E7, 0x1537,
+ 0x1587, 0x15D7, 0x1627, 0x09F7, 0x0A47, 0x0A97, 0x0AE7, 0x0B37, 0x0B87,
+ 0x0BD7, 0x0C27, 0x1677, 0x16C7, 0x1717, 0x1767, 0x1178, 0x11C8, 0x1218,
+ 0x1268, 0x0C77, 0x0CC7, 0x0D17, 0x0D67, 0x0778, 0x07C8, 0x0818, 0x0868,
+ 0x12B8, 0x1308, 0x1358, 0x13A8, 0x13F8, 0x0000, 0x1498, 0x14E8, 0x08B8,
+ 0x0908, 0x08B6, 0x0906, 0x09A8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x1538, 0x1588, 0x15D8, 0x0000, 0x1678, 0x16C8, 0x0956, 0x09A6, 0x09F6,
+ 0x0A46, 0x0B88, 0x0000, 0x0000, 0x0000, 0x1718, 0x1768, 0x1179, 0x11C9,
+ 0x0000, 0x0000, 0x12B9, 0x1309, 0x0D18, 0x0D68, 0x0A96, 0x0AE6, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x13A9, 0x13F9, 0x1449, 0x1499, 0x14E9, 0x1539,
+ 0x1589, 0x15D9, 0x09A9, 0x09F9, 0x0BD6, 0x0C26, 0x0B39, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x16C9, 0x1719, 0x0000, 0x0000, 0x11CA, 0x121A,
+ 0x0B36, 0x0B86, 0x0C76, 0x0CC6, 0x0D19, 0x0000, 0x0000, 0x0000}
+
+ /* 2160-217F */
+ uni_2160_217F = []uint16{
+ 0x0739, 0x0789, 0x07D9, 0x0829, 0x0879, 0x08C9, 0x0919, 0x0969,
+ 0x09B9, 0x0A09, 0x0A59, 0x0AA9, 0x0AF9, 0x0B49, 0x0B99, 0x0BE9,
+ 0x1139, 0x1189, 0x11D9, 0x1229, 0x1279, 0x12C9, 0x1319, 0x1369,
+ 0x13B9, 0x1409, 0x1459, 0x14A9, 0x14F9, 0x1549, 0x1599, 0x15E9}
+
+ /* 24B0-24EF */
+ uni_24B0_24EF = []uint16{
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0511, 0x0512,
+ 0x0513, 0x0514, 0x0515, 0x0516, 0x0517, 0x0518, 0x0519, 0x051A,
+ 0x051B, 0x051C, 0x051D, 0x051E, 0x051F, 0x0520, 0x0521, 0x0522,
+ 0x0523, 0x0524, 0x0525, 0x0526, 0x0527, 0x0528, 0x0529, 0x052A,
+ 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537, 0x0538,
+ 0x0539, 0x053A, 0x053B, 0x053C, 0x053D, 0x053E, 0x053F, 0x0540,
+ 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547, 0x0548,
+ 0x0549, 0x054A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}
+
+ /* FF20-FF5F */
+ uni_FF20_FF5F = []uint16{
+ 0x0000, 0x0560, 0x05B0, 0x0600, 0x0650, 0x06A0, 0x06F0, 0x0740,
+ 0x0790, 0x07E0, 0x0830, 0x0880, 0x08D0, 0x0920, 0x0970, 0x09C0,
+ 0x0A10, 0x0A60, 0x0AB0, 0x0B00, 0x0B50, 0x0BA0, 0x0BF0, 0x0C40,
+ 0x0C90, 0x0CE0, 0x0D30, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0F60, 0x0FB0, 0x1000, 0x1050, 0x10A0, 0x10F0, 0x1140,
+ 0x1190, 0x11E0, 0x1230, 0x1280, 0x12D0, 0x1320, 0x1370, 0x13C0,
+ 0x1410, 0x1460, 0x14B0, 0x1500, 0x1550, 0x15A0, 0x15F0, 0x1640,
+ 0x1690, 0x16E0, 0x1730, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}
+)
diff --git a/go/mysql/collations/charset/filename_test.go b/go/mysql/collations/charset/filename_test.go
new file mode 100644
index 00000000000..a6f52cbf530
--- /dev/null
+++ b/go/mysql/collations/charset/filename_test.go
@@ -0,0 +1,62 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package charset
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestTablenameToFilename(t *testing.T) {
+ testCases := []struct {
+ tablename string
+ filename string
+ }{
+ {
+ tablename: "my_table123",
+ filename: "my_table123",
+ },
+ {
+ tablename: "my-table",
+ filename: "my@002dtable",
+ },
+ {
+ tablename: "my$table",
+ filename: "my@0024table",
+ },
+ {
+ tablename: "myát",
+ filename: "my@0ht",
+ },
+ {
+ tablename: "myÃt",
+ filename: "my@0jt",
+ },
+ {
+ tablename: "myאt",
+ filename: "my@05d0t",
+ },
+ }
+
+ for _, tc := range testCases {
+ t.Run(tc.tablename, func(t *testing.T) {
+ filename := TablenameToFilename(tc.tablename)
+ assert.Equal(t, tc.filename, filename, "original bytes: %x", []byte(tc.tablename))
+ })
+ }
+}
diff --git a/go/mysql/config/config.go b/go/mysql/config/config.go
index cc08107f0a3..6070d0d6248 100644
--- a/go/mysql/config/config.go
+++ b/go/mysql/config/config.go
@@ -2,3 +2,4 @@ package config
const DefaultSQLMode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
const DefaultMySQLVersion = "8.0.30"
+const LegacyMySQLVersion = "5.7.31"
diff --git a/go/mysql/fakesqldb/server.go b/go/mysql/fakesqldb/server.go
index cd1080c862c..cc53ee19008 100644
--- a/go/mysql/fakesqldb/server.go
+++ b/go/mysql/fakesqldb/server.go
@@ -166,6 +166,11 @@ type ExpectedExecuteFetch struct {
// New creates a server, and starts listening.
func New(t testing.TB) *DB {
+ return NewWithEnv(t, vtenv.NewTestEnv())
+}
+
+// NewWithEnv creates a server, and starts listening.
+func NewWithEnv(t testing.TB, env *vtenv.Environment) *DB {
// Pick a path for our socket.
socketDir, err := os.MkdirTemp("", "fakesqldb")
if err != nil {
@@ -185,7 +190,7 @@ func New(t testing.TB) *DB {
queryPatternUserCallback: make(map[*regexp.Regexp]func(string)),
patternData: make(map[string]exprResult),
lastErrorMu: sync.Mutex{},
- env: vtenv.NewTestEnv(),
+ env: env,
}
db.Handler = db
diff --git a/go/mysql/flavor.go b/go/mysql/flavor.go
index a0f9e8cc4b1..4baccc78c28 100644
--- a/go/mysql/flavor.go
+++ b/go/mysql/flavor.go
@@ -151,6 +151,7 @@ type flavor interface {
baseShowTables() string
baseShowTablesWithSizes() string
+ baseShowInnodbTableSizes() string
supportsCapability(capability capabilities.FlavorCapability) (bool, error)
}
@@ -454,6 +455,11 @@ func (c *Conn) BaseShowTablesWithSizes() string {
return c.flavor.baseShowTablesWithSizes()
}
+// BaseShowInnodbTableSizes returns a query that shows innodb-internal FULLTEXT index tables and their sizes
+func (c *Conn) BaseShowInnodbTableSizes() string {
+ return c.flavor.baseShowInnodbTableSizes()
+}
+
// SupportsCapability checks if the database server supports the given capability
func (c *Conn) SupportsCapability(capability capabilities.FlavorCapability) (bool, error) {
return c.flavor.supportsCapability(capability)
diff --git a/go/mysql/flavor_filepos.go b/go/mysql/flavor_filepos.go
index 01d748c66f3..03d745468be 100644
--- a/go/mysql/flavor_filepos.go
+++ b/go/mysql/flavor_filepos.go
@@ -366,6 +366,10 @@ func (*filePosFlavor) baseShowTablesWithSizes() string {
return TablesWithSize56
}
+func (filePosFlavor) baseShowInnodbTableSizes() string {
+ return ""
+}
+
// supportsCapability is part of the Flavor interface.
func (f *filePosFlavor) supportsCapability(capability capabilities.FlavorCapability) (bool, error) {
switch capability {
diff --git a/go/mysql/flavor_mariadb_binlog_playback.go b/go/mysql/flavor_mariadb_binlog_playback.go
index b7fa18e434f..55655e01498 100644
--- a/go/mysql/flavor_mariadb_binlog_playback.go
+++ b/go/mysql/flavor_mariadb_binlog_playback.go
@@ -22,6 +22,10 @@ func (mariadbFlavor) baseShowTables() string {
return mysqlFlavor{}.baseShowTables()
}
+func (mariadbFlavor) baseShowInnodbTableSizes() string {
+ return ""
+}
+
// baseShowTablesWithSizes is part of the Flavor interface.
func (mariadbFlavor101) baseShowTablesWithSizes() string {
return TablesWithSize56
diff --git a/go/mysql/flavor_mysql.go b/go/mysql/flavor_mysql.go
index b840c3cca36..b109e5ca385 100644
--- a/go/mysql/flavor_mysql.go
+++ b/go/mysql/flavor_mysql.go
@@ -412,48 +412,67 @@ const BaseShowTables = `SELECT t.table_name,
t.table_schema = database()
`
-// TablesWithSize80 is a query to select table along with size for mysql 8.0
-// Note the following:
-// - `TABLES`.`TABLE_NAME` has `utf8mb4_0900_ai_ci` collation. `INNODB_TABLESPACES`.`NAME` has `utf8mb3_general_ci`.
-// We normalize the collation to get better query performance (we force the casting at the time of our choosing)
-// - InnoDB has different table names than MySQL does, in particular for partitioned tables. As far as InnoDB
-// is concerned, each partition is its own table.
-// - We use a `UNION ALL` approach to handle two distinct scenarios: tables that are partitioned and those that are not.
-// Since we `LEFT JOIN` from `TABLES` to `INNODB_TABLESPACES`, we know we already do full table scan on `TABLES`. We therefore
-// don't mind spending some extra computation time (as in `CONCAT(t.table_schema, '/', t.table_name, '#p#%') COLLATE utf8mb3_general_ci`)
-// to make things easier for the JOIN.
-// - We utilize `INFORMATION_SCHEMA`.`TABLES`.`CREATE_OPTIONS` column to tell if the table is partitioned or not. The column
-// may be `NULL` or may have multiple attributes, one of which is "partitioned", which we are looking for.
-// - In a partitioned table, InnoDB will return multiple rows for the same table name, one for each partition, which we successively SUM.
-// We also `SUM` the sizes in the non-partitioned case. This is not because we need to, but because it makes the query
-// symmetric and less prone to future edit errors.
-const TablesWithSize80 = `SELECT t.table_name,
- t.table_type,
- UNIX_TIMESTAMP(t.create_time),
- t.table_comment,
- SUM(i.file_size),
- SUM(i.allocated_size)
- FROM information_schema.tables t
- LEFT JOIN (SELECT name, file_size, allocated_size FROM information_schema.innodb_tablespaces WHERE name LIKE CONCAT(database(), '/%')) i
- ON i.name = CONCAT(t.table_schema, '/', t.table_name) COLLATE utf8mb3_general_ci
- WHERE
- t.table_schema = database() AND IFNULL(t.create_options, '') NOT LIKE '%partitioned%'
- GROUP BY
- t.table_schema, t.table_name, t.table_type, t.create_time, t.table_comment
-UNION ALL
-SELECT t.table_name,
- t.table_type,
- UNIX_TIMESTAMP(t.create_time),
- t.table_comment,
- SUM(i.file_size),
- SUM(i.allocated_size)
- FROM information_schema.tables t
- LEFT JOIN (SELECT name, file_size, allocated_size FROM information_schema.innodb_tablespaces WHERE name LIKE CONCAT(database(), '/%')) i
- ON i.name LIKE (CONCAT(t.table_schema, '/', t.table_name, '#p#%') COLLATE utf8mb3_general_ci)
- WHERE
- t.table_schema = database() AND t.create_options LIKE '%partitioned%'
- GROUP BY
- t.table_schema, t.table_name, t.table_type, t.create_time, t.table_comment
+// InnoDBTableSizes: a query to return file/allocated sizes for InnoDB tables.
+// File sizes and allocated sizes are found in information_schema.innodb_tablespaces
+// Table names in information_schema.innodb_tablespaces match those in information_schema.tables, even for table names
+// with special characters. This, a innodb_tablespaces.name could be `my-db/my-table`.
+// These tablespaces will have one entry for every InnoDB table, hidden or internal. This means:
+// - One entry for every partition in a partitioned table.
+// - Several entries for any FULLTEXT index (FULLTEXT indexes are not BTREEs and are implemented using multiple hidden tables)
+// So a single table wih a FULLTEXT index will have one entry for the "normal" table, plus multiple more entries for
+// every FTS index hidden tables.
+// Thankfully FULLTEXT does not work with Partitioning so this does not explode too much.
+// Next thing is that FULLTEXT hidden table names do not resemble the original table name, and could look like:
+// `a-b/fts_000000000000075e_00000000000005f9_index_2`.
+// To unlock the identify of this table we turn to information_schema.innodb_tables. These table similarly has one entry for
+// every InnoDB table, normal or hidden. It also has a `TABLE_ID` value. Given some table with FULLTEXT keys, its TABLE_ID
+// is encoded in the names of the hidden tables in information_schema.innodb_tablespaces: `000000000000075e` in the
+// example above.
+//
+// The query below is a two part:
+// 1. Finding the "normal" tables only, those that the user created. We note their file size and allocated size.
+// 2. Finding the hidden tables only, those that implement FTS keys. We aggregate their file size and allocated size grouping
+// by the original table name with which they're associated.
+//
+// A table that has a FULLTEXT index will have two entries in the result set:
+// - one for the "normal" table size (actual rows, texts, etc.)
+// - and one for the aggregated hidden table size
+// The code that reads the results of this query will need to add the two.
+// Similarly, the code will need to know how to aggregate the sizes of partitioned tables, which could appear as:
+// - `mydb/tbl_part#p#p0`
+// - `mydb/tbl_part#p#p1`
+// - `mydb/tbl_part#p#p2`
+// - `mydb/tbl_part#p#p3`
+//
+// Lastly, we note that table name in information_schema.innodb_tables are encoded. A table that shows as
+// `my-db/my-table` in information_schema.innodb_tablespaces will show as `my@002ddb/my@002dtable` in information_schema.innodb_tables.
+// So this query returns InnoDB-encoded table names. The golang code reading those will have to decode the names.
+const InnoDBTableSizes = `
+ SELECT
+ it.name,
+ its.file_size as normal_tables_sum_file_size,
+ its.allocated_size as normal_tables_sum_allocated_size
+ FROM
+ information_schema.innodb_tables it
+ JOIN information_schema.innodb_tablespaces its
+ ON (its.space = it.space)
+ WHERE
+ its.name LIKE CONCAT(database(), '/%')
+ AND its.name NOT LIKE CONCAT(database(), '/fts_%')
+ UNION ALL
+ SELECT
+ it.name,
+ SUM(its.file_size) as hidden_tables_sum_file_size,
+ SUM(its.allocated_size) as hidden_tables_sum_allocated_size
+ FROM
+ information_schema.innodb_tables it
+ JOIN information_schema.innodb_tablespaces its
+ ON (
+ its.name LIKE CONCAT(database(), '/fts_', CONVERT(LPAD(HEX(table_id), 16, '0') USING utf8mb3) COLLATE utf8mb3_general_ci, '_%')
+ )
+ WHERE
+ its.name LIKE CONCAT(database(), '/fts_%')
+ GROUP BY it.name
`
// baseShowTablesWithSizes is part of the Flavor interface.
@@ -461,6 +480,11 @@ func (mysqlFlavor57) baseShowTablesWithSizes() string {
return TablesWithSize57
}
+// baseShowInnodbTableSizes is part of the Flavor interface.
+func (mysqlFlavor57) baseShowInnodbTableSizes() string {
+ return ""
+}
+
// supportsCapability is part of the Flavor interface.
func (f mysqlFlavor) supportsCapability(capability capabilities.FlavorCapability) (bool, error) {
return capabilities.MySQLVersionHasCapability(f.serverVersion, capability)
@@ -468,7 +492,12 @@ func (f mysqlFlavor) supportsCapability(capability capabilities.FlavorCapability
// baseShowTablesWithSizes is part of the Flavor interface.
func (mysqlFlavor) baseShowTablesWithSizes() string {
- return TablesWithSize80
+ return "" // Won't be used, as InnoDBTableSizes is defined, and schema.Engine will use that, instead.
+}
+
+// baseShowInnodbTableSizes is part of the Flavor interface.
+func (mysqlFlavor) baseShowInnodbTableSizes() string {
+ return InnoDBTableSizes
}
func (mysqlFlavor) setReplicationSourceCommand(params *ConnParams, host string, port int32, heartbeatInterval float64, connectRetry int) string {
diff --git a/go/mysql/flavor_mysql_legacy.go b/go/mysql/flavor_mysql_legacy.go
index a5639cc944e..2263a9bff11 100644
--- a/go/mysql/flavor_mysql_legacy.go
+++ b/go/mysql/flavor_mysql_legacy.go
@@ -72,12 +72,13 @@ GROUP BY table_name,
// We join with a subquery that materializes the data from `information_schema.innodb_sys_tablespaces`
// early for performance reasons. This effectively causes only a single read of `information_schema.innodb_sys_tablespaces`
// per query.
+// Note that 5.7 has NULL for a VIEW's create_time, so we use IFNULL to make it 1 (non NULL and non zero).
const TablesWithSize57 = `SELECT t.table_name,
t.table_type,
- UNIX_TIMESTAMP(t.create_time),
+ IFNULL(UNIX_TIMESTAMP(t.create_time), 1),
t.table_comment,
- IFNULL(SUM(i.file_size), SUM(t.data_length + t.index_length)),
- IFNULL(SUM(i.allocated_size), SUM(t.data_length + t.index_length))
+ IFNULL(SUM(i.file_size), SUM(t.data_length + t.index_length)) AS file_size,
+ IFNULL(SUM(i.allocated_size), SUM(t.data_length + t.index_length)) AS allocated_size
FROM information_schema.tables t
LEFT OUTER JOIN (
SELECT space, file_size, allocated_size, name
diff --git a/go/mysql/flavor_mysqlgr.go b/go/mysql/flavor_mysqlgr.go
index 98516e9cc9f..9cb9f887e39 100644
--- a/go/mysql/flavor_mysqlgr.go
+++ b/go/mysql/flavor_mysqlgr.go
@@ -254,7 +254,12 @@ func (mysqlGRFlavor) baseShowTables() string {
}
func (mysqlGRFlavor) baseShowTablesWithSizes() string {
- return TablesWithSize80
+ return "" // Won't be used, as InnoDBTableSizes is defined, and schema.Engine will use that, instead.
+}
+
+// baseShowInnodbTableSizes is part of the Flavor interface.
+func (mysqlGRFlavor) baseShowInnodbTableSizes() string {
+ return InnoDBTableSizes
}
// supportsCapability is part of the Flavor interface.
diff --git a/go/mysql/schema.go b/go/mysql/schema.go
index 03d558d2637..6863e1fb988 100644
--- a/go/mysql/schema.go
+++ b/go/mysql/schema.go
@@ -93,6 +93,29 @@ var BaseShowTablesWithSizesFields = append(BaseShowTablesFields, &querypb.Field{
Charset: collations.CollationBinaryID,
Flags: uint32(querypb.MySqlFlag_BINARY_FLAG | querypb.MySqlFlag_NUM_FLAG),
})
+var BaseInnoDBTableSizesFields = []*querypb.Field{{
+ Name: "it.name",
+ Type: querypb.Type_VARCHAR,
+ Table: "tables",
+ OrgTable: "TABLES",
+ Database: "information_schema",
+ OrgName: "TABLE_NAME",
+ ColumnLength: 192,
+ Charset: uint32(collations.SystemCollation.Collation),
+ Flags: uint32(querypb.MySqlFlag_NOT_NULL_FLAG),
+}, {
+ Name: "i.file_size",
+ Type: querypb.Type_INT64,
+ ColumnLength: 11,
+ Charset: collations.CollationBinaryID,
+ Flags: uint32(querypb.MySqlFlag_BINARY_FLAG | querypb.MySqlFlag_NUM_FLAG),
+}, {
+ Name: "i.allocated_size",
+ Type: querypb.Type_INT64,
+ ColumnLength: 11,
+ Charset: collations.CollationBinaryID,
+ Flags: uint32(querypb.MySqlFlag_BINARY_FLAG | querypb.MySqlFlag_NUM_FLAG),
+}}
// BaseShowTablesRow returns the fields from a BaseShowTables or
// BaseShowTablesForTable command.
@@ -116,6 +139,14 @@ func BaseShowTablesWithSizesRow(tableName string, isView bool, comment string) [
)
}
+func BaseInnoDBTableSizesRow(dbName string, tableName string) []sqltypes.Value {
+ return []sqltypes.Value{
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte(dbName+"/"+tableName)),
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("100")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("150")), // allocated_size
+ }
+}
+
// ShowPrimaryFields contains the fields for a BaseShowPrimary.
var ShowPrimaryFields = []*querypb.Field{{
Name: "table_name",
diff --git a/go/vt/vtenv/vtenv.go b/go/vt/vtenv/vtenv.go
index 1371affff52..6218c96c715 100644
--- a/go/vt/vtenv/vtenv.go
+++ b/go/vt/vtenv/vtenv.go
@@ -67,6 +67,12 @@ func NewTestEnv() *Environment {
}
}
+func NewLegacyTestEnv() *Environment {
+ env := NewTestEnv()
+ env.mysqlVersion = config.LegacyMySQLVersion
+ return env
+}
+
func (e *Environment) CollationEnv() *collations.Environment {
return e.collationEnv
}
diff --git a/go/vt/vtexplain/vtexplain_vttablet.go b/go/vt/vtexplain/vtexplain_vttablet.go
index 644135f1e3b..38a3ca7bbb3 100644
--- a/go/vt/vtexplain/vtexplain_vttablet.go
+++ b/go/vt/vtexplain/vtexplain_vttablet.go
@@ -430,6 +430,7 @@ func newTabletEnvironment(ddls []sqlparser.DDLStatement, opts *Options, collatio
showTableRows := make([][]sqltypes.Value, 0, len(ddls))
showTableWithSizesRows := make([][]sqltypes.Value, 0, len(ddls))
+ innodbTableSizesRows := make([][]sqltypes.Value, 0, len(ddls))
for _, ddl := range ddls {
table := ddl.GetTable().Name.String()
@@ -455,9 +456,9 @@ func newTabletEnvironment(ddls []sqlparser.DDLStatement, opts *Options, collatio
Fields: mysql.BaseShowTablesWithSizesFields,
Rows: showTableWithSizesRows,
})
- tEnv.addResult(mysql.TablesWithSize80, &sqltypes.Result{
- Fields: mysql.BaseShowTablesWithSizesFields,
- Rows: showTableWithSizesRows,
+ tEnv.addResult(mysql.InnoDBTableSizes, &sqltypes.Result{
+ Fields: mysql.BaseInnoDBTableSizesFields,
+ Rows: innodbTableSizesRows,
})
indexRows := make([][]sqltypes.Value, 0, 4)
diff --git a/go/vt/vttablet/endtoend/misc_test.go b/go/vt/vttablet/endtoend/misc_test.go
index 29bbba56873..68f6f4b1af6 100644
--- a/go/vt/vttablet/endtoend/misc_test.go
+++ b/go/vt/vttablet/endtoend/misc_test.go
@@ -35,10 +35,15 @@ import (
"vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/test/utils"
"vitess.io/vitess/go/vt/callerid"
+ "vitess.io/vitess/go/vt/dbconfigs"
"vitess.io/vitess/go/vt/log"
querypb "vitess.io/vitess/go/vt/proto/query"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
+ "vitess.io/vitess/go/vt/sqlparser"
+ "vitess.io/vitess/go/vt/vtenv"
"vitess.io/vitess/go/vt/vttablet/endtoend/framework"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/schema"
+ "vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
)
func TestSimpleRead(t *testing.T) {
@@ -890,6 +895,11 @@ func TestShowTablesWithSizes(t *testing.T) {
require.NoError(t, err)
defer conn.Close()
+ if query := conn.BaseShowTablesWithSizes(); query == "" {
+ // Happens in MySQL 8.0 where we use BaseShowInnodbTableSizes, instead.
+ t.Skip("BaseShowTablesWithSizes is empty in this version of MySQL")
+ }
+
setupQueries := []string{
`drop view if exists show_tables_with_sizes_v1`,
`drop table if exists show_tables_with_sizes_t1`,
@@ -897,12 +907,14 @@ func TestShowTablesWithSizes(t *testing.T) {
`create table show_tables_with_sizes_t1 (id int primary key)`,
`create view show_tables_with_sizes_v1 as select * from show_tables_with_sizes_t1`,
`CREATE TABLE show_tables_with_sizes_employees (id INT NOT NULL, store_id INT) PARTITION BY HASH(store_id) PARTITIONS 4`,
+ `create table show_tables_with_sizes_fts (id int primary key, name text, fulltext key name_fts (name))`,
}
defer func() {
_, _ = conn.ExecuteFetch(`drop view if exists show_tables_with_sizes_v1`, 1, false)
_, _ = conn.ExecuteFetch(`drop table if exists show_tables_with_sizes_t1`, 1, false)
_, _ = conn.ExecuteFetch(`drop table if exists show_tables_with_sizes_employees`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop table if exists show_tables_with_sizes_fts`, 1, false)
}()
for _, query := range setupQueries {
_, err := conn.ExecuteFetch(query, 1, false)
@@ -913,6 +925,7 @@ func TestShowTablesWithSizes(t *testing.T) {
"show_tables_with_sizes_t1",
"show_tables_with_sizes_v1",
"show_tables_with_sizes_employees",
+ "show_tables_with_sizes_fts",
}
actualTables := []string{}
@@ -933,7 +946,7 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.True(t, row[2].IsIntegral())
createTime, err := row[2].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, createTime, int64(0))
+ assert.Positive(t, createTime)
// TABLE_COMMENT
assert.Equal(t, "", row[3].ToString())
@@ -941,12 +954,12 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.True(t, row[4].IsDecimal())
fileSize, err := row[4].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, fileSize, int64(0))
+ assert.Positive(t, fileSize)
assert.True(t, row[4].IsDecimal())
allocatedSize, err := row[5].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, allocatedSize, int64(0))
+ assert.Positive(t, allocatedSize)
actualTables = append(actualTables, tableName)
} else if tableName == "show_tables_with_sizes_v1" {
@@ -956,7 +969,7 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.True(t, row[2].IsIntegral())
createTime, err := row[2].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, createTime, int64(0))
+ assert.Positive(t, createTime)
// TABLE_COMMENT
assert.Equal(t, "VIEW", row[3].ToString())
@@ -972,7 +985,30 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.True(t, row[2].IsIntegral())
createTime, err := row[2].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, createTime, int64(0))
+ assert.Positive(t, createTime)
+
+ // TABLE_COMMENT
+ assert.Equal(t, "", row[3].ToString())
+
+ assert.True(t, row[4].IsDecimal())
+ fileSize, err := row[4].ToCastInt64()
+ assert.NoError(t, err)
+ assert.Positive(t, fileSize)
+
+ assert.True(t, row[5].IsDecimal())
+ allocatedSize, err := row[5].ToCastInt64()
+ assert.NoError(t, err)
+ assert.Positive(t, allocatedSize)
+
+ actualTables = append(actualTables, tableName)
+ } else if tableName == "show_tables_with_sizes_fts" {
+ // TABLE_TYPE
+ assert.Equal(t, "BASE TABLE", row[1].ToString())
+
+ assert.True(t, row[2].IsIntegral())
+ createTime, err := row[2].ToCastInt64()
+ assert.NoError(t, err)
+ assert.Positive(t, createTime)
// TABLE_COMMENT
assert.Equal(t, "", row[3].ToString())
@@ -980,12 +1016,12 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.True(t, row[4].IsDecimal())
fileSize, err := row[4].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, fileSize, int64(0))
+ assert.Positive(t, fileSize)
assert.True(t, row[5].IsDecimal())
allocatedSize, err := row[5].ToCastInt64()
assert.NoError(t, err)
- assert.Greater(t, allocatedSize, int64(0))
+ assert.Positive(t, allocatedSize)
actualTables = append(actualTables, tableName)
}
@@ -995,6 +1031,137 @@ func TestShowTablesWithSizes(t *testing.T) {
assert.ElementsMatch(t, expectedTables, actualTables)
}
+func newTestSchemaEngine(connParams *mysql.ConnParams) *schema.Engine {
+ cfg := tabletenv.NewDefaultConfig()
+ cfg.DB = dbconfigs.NewTestDBConfigs(*connParams, *connParams, connParams.DbName)
+ env := tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "EngineTest")
+ se := schema.NewEngine(env)
+ se.InitDBConfig(dbconfigs.New(connParams))
+ return se
+}
+
+func TestEngineReload(t *testing.T) {
+ ctx := context.Background()
+ conn, err := mysql.Connect(ctx, &connParams)
+ require.NoError(t, err)
+ defer conn.Close()
+ t.Run("validate innodb size query", func(t *testing.T) {
+ q := conn.BaseShowInnodbTableSizes()
+ require.NotEmpty(t, q)
+ })
+ t.Run("validate conn schema", func(t *testing.T) {
+ rs, err := conn.ExecuteFetch(`select database() as d`, 1, true)
+ require.NoError(t, err)
+ row := rs.Named().Row()
+ require.NotNil(t, row)
+ database := row.AsString("d", "")
+ require.Equal(t, connParams.DbName, database)
+ })
+
+ defer func() {
+ _, _ = conn.ExecuteFetch(`drop view if exists view_simple`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop view if exists view_simple2`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop view if exists view_simple3`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop table if exists tbl_simple`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop table if exists tbl_part`, 1, false)
+ _, _ = conn.ExecuteFetch(`drop table if exists tbl_fts`, 1, false)
+ }()
+
+ engine := newTestSchemaEngine(&connParams)
+ require.NotNil(t, engine)
+ err = engine.Open()
+ require.NoError(t, err)
+ defer engine.Close()
+
+ t.Run("schema", func(t *testing.T) {
+ setupQueries := []string{
+ `drop view if exists view_simple`,
+ `drop view if exists view_simple2`,
+ `drop table if exists tbl_simple`,
+ `drop table if exists tbl_part`,
+ `drop table if exists tbl_fts`,
+ `create table tbl_simple (id int primary key)`,
+ `create view view_simple as select * from tbl_simple`,
+ `create view view_simple2 as select * from tbl_simple`,
+ `create table tbl_part (id INT NOT NULL, store_id INT) PARTITION BY HASH(store_id) PARTITIONS 4`,
+ `create table tbl_fts (id int primary key, name text, fulltext key name_fts (name))`,
+ }
+
+ for _, query := range setupQueries {
+ _, err := conn.ExecuteFetch(query, 1, false)
+ require.NoError(t, err)
+ }
+
+ expectedTables := []string{
+ "tbl_simple",
+ "tbl_part",
+ "tbl_fts",
+ "view_simple",
+ "view_simple2",
+ }
+ err := engine.Reload(ctx)
+ require.NoError(t, err)
+
+ schema := engine.GetSchema()
+ require.NotEmpty(t, schema)
+ for _, expectTable := range expectedTables {
+ t.Run(expectTable, func(t *testing.T) {
+ tbl := engine.GetTable(sqlparser.NewIdentifierCS(expectTable))
+ require.NotNil(t, tbl)
+
+ switch expectTable {
+ case "view_simple", "view_simple2":
+ assert.Zero(t, tbl.FileSize)
+ assert.Zero(t, tbl.AllocatedSize)
+ default:
+ assert.NotZero(t, tbl.FileSize)
+ assert.NotZero(t, tbl.AllocatedSize)
+ }
+ })
+ }
+ })
+ t.Run("schema changes", func(t *testing.T) {
+ setupQueries := []string{
+ `alter view view_simple as select *, 2 from tbl_simple`,
+ `drop view view_simple2`,
+ `create view view_simple3 as select * from tbl_simple`,
+ }
+
+ for _, query := range setupQueries {
+ _, err := conn.ExecuteFetch(query, 1, false)
+ require.NoError(t, err)
+ }
+
+ expectedTables := []string{
+ "tbl_simple",
+ "tbl_part",
+ "tbl_fts",
+ "view_simple",
+ "view_simple3",
+ }
+ err := engine.Reload(ctx)
+ require.NoError(t, err)
+
+ schema := engine.GetSchema()
+ require.NotEmpty(t, schema)
+ for _, expectTable := range expectedTables {
+ t.Run(expectTable, func(t *testing.T) {
+ tbl := engine.GetTable(sqlparser.NewIdentifierCS(expectTable))
+ require.NotNil(t, tbl)
+
+ switch expectTable {
+ case "view_simple", "view_simple2", "view_simple3":
+ assert.Zero(t, tbl.FileSize)
+ assert.Zero(t, tbl.AllocatedSize)
+ default:
+ assert.NotZero(t, tbl.FileSize)
+ assert.NotZero(t, tbl.AllocatedSize)
+ }
+ })
+ }
+ })
+}
+
// TestTuple tests that bind variables having tuple values work with vttablet.
func TestTuple(t *testing.T) {
client := framework.NewClient()
diff --git a/go/vt/vttablet/tabletserver/connpool/dbconn.go b/go/vt/vttablet/tabletserver/connpool/dbconn.go
index 4f3d5fe893d..fcadc3d4075 100644
--- a/go/vt/vttablet/tabletserver/connpool/dbconn.go
+++ b/go/vt/vttablet/tabletserver/connpool/dbconn.go
@@ -563,6 +563,11 @@ func (dbc *Conn) BaseShowTablesWithSizes() string {
return dbc.conn.BaseShowTablesWithSizes()
}
+// BaseShowInnodbTableSizes returns a query that shows innodb-internal FULLTEXT index tables and their sizes
+func (dbc *Conn) BaseShowInnodbTableSizes() string {
+ return dbc.conn.BaseShowInnodbTableSizes()
+}
+
func (dbc *Conn) ConnCheck(ctx context.Context) error {
if err := dbc.conn.ConnCheck(); err != nil {
return dbc.Reconnect(ctx)
diff --git a/go/vt/vttablet/tabletserver/health_streamer_test.go b/go/vt/vttablet/tabletserver/health_streamer_test.go
index 95517880339..5cf434e8fa2 100644
--- a/go/vt/vttablet/tabletserver/health_streamer_test.go
+++ b/go/vt/vttablet/tabletserver/health_streamer_test.go
@@ -39,6 +39,8 @@ import (
"vitess.io/vitess/go/vt/vttablet/tabletserver/tabletenv"
)
+const baseInnoDBTableSizesPattern = `(?s).*SELECT.*its\.space = it\.space.*SUM\(its\.file_size\).*`
+
func TestHealthStreamerClosed(t *testing.T) {
cfg := newConfig(nil)
env := tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "ReplTrackerTest")
@@ -276,6 +278,13 @@ func TestReloadSchema(t *testing.T) {
// Update the query pattern for the query that schema.Engine uses to get the tables so that it runs a reload again.
// If we don't change the t.create_time to a value greater than before, then the schema engine doesn't reload the database.
+ db.AddQueryPattern(baseInnoDBTableSizesPattern,
+ sqltypes.MakeTestResult(
+ sqltypes.MakeTestFields(
+ "it.name | normal_tables_sum_file_size | normal_tables_sum_allocated_size",
+ "varchar|int64|int64",
+ ),
+ ))
db.AddQueryPattern("SELECT .* information_schema.innodb_tablespaces .*",
sqltypes.MakeTestResult(
sqltypes.MakeTestFields(
@@ -285,7 +294,6 @@ func TestReloadSchema(t *testing.T) {
"product|BASE TABLE|1684735967||114688|114688",
"users|BASE TABLE|1684735967||114688|114688",
))
-
db.AddQuery(mysql.BaseShowTables,
sqltypes.MakeTestResult(
sqltypes.MakeTestFields(
@@ -351,6 +359,14 @@ func TestReloadView(t *testing.T) {
db.AddQuery("commit", &sqltypes.Result{})
db.AddQuery("rollback", &sqltypes.Result{})
// Add the query pattern for the query that schema.Engine uses to get the tables.
+ // InnoDBTableSizes query
+ db.AddQueryPattern(baseInnoDBTableSizesPattern,
+ sqltypes.MakeTestResult(
+ sqltypes.MakeTestFields(
+ "it.name | normal_tables_sum_file_size | normal_tables_sum_allocated_size",
+ "varchar|int64|int64",
+ ),
+ ))
db.AddQueryPattern("SELECT .* information_schema.innodb_tablespaces .*",
sqltypes.MakeTestResult(
sqltypes.MakeTestFields(
@@ -417,7 +433,7 @@ func TestReloadView(t *testing.T) {
expGetViewDefinitionsQuery string
viewDefinitionsOutput *sqltypes.Result
- expClearQuery string
+ expClearQuery []string
expInsertQuery []string
expViewsChanged []string
}{
@@ -433,7 +449,10 @@ func TestReloadView(t *testing.T) {
expViewsChanged: []string{"view_a", "view_b"},
expGetViewDefinitionsQuery: "select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('view_a', 'view_b')",
expCreateStmtQuery: []string{"show create table view_a", "show create table view_b"},
- expClearQuery: "delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('view_a', 'view_b')",
+ expClearQuery: []string{
+ "delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('view_a', 'view_b')",
+ "delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('view_b', 'view_a')",
+ },
expInsertQuery: []string{
"insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'view_a', 'create_view_a', 'def_a')",
"insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'view_b', 'create_view_b', 'def_b')",
@@ -450,7 +469,7 @@ func TestReloadView(t *testing.T) {
expViewsChanged: []string{"view_b"},
expGetViewDefinitionsQuery: "select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('view_b')",
expCreateStmtQuery: []string{"show create table view_b"},
- expClearQuery: "delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('view_b')",
+ expClearQuery: []string{"delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('view_b')"},
expInsertQuery: []string{
"insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'view_b', 'create_view_mod_b', 'def_mod_b')",
},
@@ -467,7 +486,14 @@ func TestReloadView(t *testing.T) {
expViewsChanged: []string{"view_a", "view_b", "view_c"},
expGetViewDefinitionsQuery: "select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('view_b', 'view_c', 'view_a')",
expCreateStmtQuery: []string{"show create table view_a", "show create table view_c"},
- expClearQuery: "delete from _vt.views where table_schema = database() and table_name in ('view_b', 'view_c', 'view_a')",
+ expClearQuery: []string{
+ "delete from _vt.views where table_schema = database() and table_name in ('view_a', 'view_b', 'view_c')",
+ "delete from _vt.views where table_schema = database() and table_name in ('view_a', 'view_c', 'view_b')",
+ "delete from _vt.views where table_schema = database() and table_name in ('view_b', 'view_a', 'view_c')",
+ "delete from _vt.views where table_schema = database() and table_name in ('view_b', 'view_c', 'view_a')",
+ "delete from _vt.views where table_schema = database() and table_name in ('view_c', 'view_a', 'view_b')",
+ "delete from _vt.views where table_schema = database() and table_name in ('view_c', 'view_b', 'view_a')",
+ },
expInsertQuery: []string{
"insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'view_a', 'create_view_mod_a', 'def_mod_a')",
"insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'view_c', 'create_view_c', 'def_c')",
@@ -486,8 +512,9 @@ func TestReloadView(t *testing.T) {
for idx := range tcases[0].expInsertQuery {
db.AddQuery(tcases[0].expInsertQuery[idx], &sqltypes.Result{})
}
- db.AddQuery(tcases[0].expClearQuery, &sqltypes.Result{})
-
+ for _, query := range tcases[0].expClearQuery {
+ db.AddQuery(query, &sqltypes.Result{})
+ }
var tcCount atomic.Int32
ch := make(chan struct{})
@@ -519,7 +546,9 @@ func TestReloadView(t *testing.T) {
for i := range tcases[idx].expInsertQuery {
db.AddQuery(tcases[idx].expInsertQuery[i], &sqltypes.Result{})
}
- db.AddQuery(tcases[idx].expClearQuery, &sqltypes.Result{})
+ for _, query := range tcases[idx].expClearQuery {
+ db.AddQuery(query, &sqltypes.Result{})
+ }
db.AddQueryPattern("SELECT .* information_schema.innodb_tablespaces .*", tcases[idx].showTablesWithSizesOutput)
db.AddQueryPattern(".*SELECT table_name, view_definition.*views.*", tcases[idx].detectViewChangeOutput)
case <-time.After(10 * time.Second):
diff --git a/go/vt/vttablet/tabletserver/schema/engine.go b/go/vt/vttablet/tabletserver/schema/engine.go
index afb28080167..09b3a91ffed 100644
--- a/go/vt/vttablet/tabletserver/schema/engine.go
+++ b/go/vt/vttablet/tabletserver/schema/engine.go
@@ -31,6 +31,7 @@ import (
"vitess.io/vitess/go/acl"
"vitess.io/vitess/go/constants/sidecar"
"vitess.io/vitess/go/mysql"
+ "vitess.io/vitess/go/mysql/collations/charset"
"vitess.io/vitess/go/mysql/replication"
"vitess.io/vitess/go/mysql/sqlerror"
"vitess.io/vitess/go/sqltypes"
@@ -424,10 +425,55 @@ func (se *Engine) reload(ctx context.Context, includeStats bool) error {
return err
}
+ var innodbTablesStats map[string]*Table
+ if includeStats {
+ if innodbTableSizesQuery := conn.Conn.BaseShowInnodbTableSizes(); innodbTableSizesQuery != "" {
+ // Since the InnoDB table size query is available to us on this MySQL version, we should use it.
+ // We therefore don't want to query for table sizes in getTableData()
+ includeStats = false
+
+ innodbResults, err := conn.Conn.Exec(ctx, innodbTableSizesQuery, maxTableCount, false)
+ if err != nil {
+ return vterrors.Wrapf(err, "in Engine.reload(), reading innodb tables")
+ }
+ innodbTablesStats = make(map[string]*Table, len(innodbResults.Rows))
+ for _, row := range innodbResults.Rows {
+ innodbTableName := row[0].ToString() // In the form of encoded `schema/table`
+ fileSize, _ := row[1].ToCastUint64()
+ allocatedSize, _ := row[2].ToCastUint64()
+
+ if _, ok := innodbTablesStats[innodbTableName]; !ok {
+ innodbTablesStats[innodbTableName] = &Table{}
+ }
+ // There could be multiple appearances of the same table in the result set:
+ // A table that has FULLTEXT indexes will appear once for the table itself,
+ // with total size of row data, and once for the aggregates size of all
+ // FULLTEXT indexes. We aggregate the sizes of all appearances of the same table.
+ table := innodbTablesStats[innodbTableName]
+ table.FileSize += fileSize
+ table.AllocatedSize += allocatedSize
+
+ if originalTableName, _, found := strings.Cut(innodbTableName, "#p#"); found {
+ // innodbTableName is encoded any special characters are turned into some @0-f0-f0-f value.
+ // Therefore this "#p#" here is a clear indication that we are looking at a partitioned table.
+ // We turn `my@002ddb/tbl_part#p#p0` into `my@002ddb/tbl_part`
+ // and aggregate the total partition sizes.
+ if _, ok := innodbTablesStats[originalTableName]; !ok {
+ innodbTablesStats[originalTableName] = &Table{}
+ originalTable := innodbTablesStats[originalTableName]
+ originalTable.FileSize += fileSize
+ originalTable.AllocatedSize += allocatedSize
+ }
+ }
+ }
+ // See testing in TestEngineReload
+ }
+ }
tableData, err := getTableData(ctx, conn.Conn, includeStats)
if err != nil {
return vterrors.Wrapf(err, "in Engine.reload(), reading tables")
}
+
// On the primary tablet, we also check the data we have stored in our schema tables to see what all needs reloading.
shouldUseDatabase := se.isServingPrimary && se.schemaCopy
@@ -462,8 +508,14 @@ func (se *Engine) reload(ctx context.Context, includeStats bool) error {
changedTables := make(map[string]*Table)
// created and altered contain the names of created and altered tables for broadcast.
var created, altered []*Table
+ databaseName := se.cp.DBName()
for _, row := range tableData.Rows {
tableName := row[0].ToString()
+ var innodbTable *Table
+ if innodbTablesStats != nil {
+ innodbTableName := fmt.Sprintf("%s/%s", charset.TablenameToFilename(databaseName), charset.TablenameToFilename(tableName))
+ innodbTable = innodbTablesStats[innodbTableName]
+ }
curTables[tableName] = true
createTime, _ := row[2].ToCastInt64()
var fileSize, allocatedSize uint64
@@ -474,6 +526,9 @@ func (se *Engine) reload(ctx context.Context, includeStats bool) error {
// publish the size metrics
se.tableFileSizeGauge.Set(tableName, int64(fileSize))
se.tableAllocatedSizeGauge.Set(tableName, int64(allocatedSize))
+ } else if innodbTable != nil {
+ se.tableFileSizeGauge.Set(tableName, int64(innodbTable.FileSize))
+ se.tableAllocatedSizeGauge.Set(tableName, int64(innodbTable.AllocatedSize))
}
// Table schemas are cached by tabletserver. For each table we cache `information_schema.tables.create_time` (`tbl.CreateTime`).
@@ -501,6 +556,9 @@ func (se *Engine) reload(ctx context.Context, includeStats bool) error {
if includeStats {
tbl.FileSize = fileSize
tbl.AllocatedSize = allocatedSize
+ } else if innodbTable != nil {
+ tbl.FileSize = innodbTable.FileSize
+ tbl.AllocatedSize = innodbTable.AllocatedSize
}
continue
}
@@ -520,6 +578,9 @@ func (se *Engine) reload(ctx context.Context, includeStats bool) error {
if includeStats {
table.FileSize = fileSize
table.AllocatedSize = allocatedSize
+ } else if innodbTable != nil {
+ table.FileSize = innodbTable.FileSize
+ table.AllocatedSize = innodbTable.AllocatedSize
}
table.CreateTime = createTime
changedTables[tableName] = table
diff --git a/go/vt/vttablet/tabletserver/schema/engine_test.go b/go/vt/vttablet/tabletserver/schema/engine_test.go
index caaf505779d..3faa7a10554 100644
--- a/go/vt/vttablet/tabletserver/schema/engine_test.go
+++ b/go/vt/vttablet/tabletserver/schema/engine_test.go
@@ -54,11 +54,15 @@ import (
)
const baseShowTablesWithSizesPattern = `SELECT t\.table_name.*SUM\(i\.file_size\).*`
+const baseInnoDBTableSizesPattern = `(?s).*SELECT.*its\.space = it\.space.*SUM\(its\.file_size\).*`
var mustMatch = utils.MustMatchFn(".Mutex")
-func TestOpenAndReload(t *testing.T) {
- db := fakesqldb.New(t)
+// TestOpenAndReloadLegacy
+//
+// Runs with 5.7 env
+func TestOpenAndReloadLegacy(t *testing.T) {
+ db := fakesqldb.NewWithEnv(t, vtenv.NewLegacyTestEnv())
defer db.Close()
schematest.AddDefaultQueries(db)
@@ -87,7 +91,7 @@ func TestOpenAndReload(t *testing.T) {
))
firstReadRowsValue := 12
AddFakeInnoDBReadRowsResult(db, firstReadRowsValue)
- se := newEngine(10*time.Second, 10*time.Second, 0, db)
+ se := newEngine(10*time.Second, 10*time.Second, 0, db, vtenv.NewLegacyTestEnv())
se.Open()
defer se.Close()
@@ -292,23 +296,279 @@ func TestOpenAndReload(t *testing.T) {
assert.Equal(t, want, se.GetSchema())
}
-func TestReloadWithSwappedTables(t *testing.T) {
+func TestOpenAndReload(t *testing.T) {
db := fakesqldb.New(t)
defer db.Close()
schematest.AddDefaultQueries(db)
db.RejectQueryPattern(baseShowTablesWithSizesPattern, "Opening schema engine should query tables without size information")
+ db.RejectQueryPattern(baseInnoDBTableSizesPattern, "Opening schema engine should query tables without size information")
+
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ RowsAffected: 0,
+ InsertID: 0,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
+ mysql.BaseShowTablesRow("test_table_03", false, ""),
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ mysql.BaseShowTablesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
+ },
+ SessionStateChanges: "",
+ StatusFlags: 0,
+ })
+
+ // advance to one second after the default 1427325875.
+ db.AddQuery("select unix_timestamp()", sqltypes.MakeTestResult(sqltypes.MakeTestFields(
+ "t",
+ "int64"),
+ "1427325876",
+ ))
+ firstReadRowsValue := 12
+ AddFakeInnoDBReadRowsResult(db, firstReadRowsValue)
+ se := newEngine(10*time.Second, 10*time.Second, 0, db, nil)
+ se.Open()
+ defer se.Close()
+
+ want := initialSchema()
+ mustMatch(t, want, se.GetSchema())
+ assert.Equal(t, int64(0), se.tableFileSizeGauge.Counts()["msg"])
+ assert.Equal(t, int64(0), se.tableAllocatedSizeGauge.Counts()["msg"])
+
+ t.Run("EnsureConnectionAndDB", func(t *testing.T) {
+ // Verify that none of the following configurations run any schema change detection queries -
+ // 1. REPLICA serving
+ // 2. REPLICA non-serving
+ // 3. PRIMARY serving
+ err := se.EnsureConnectionAndDB(topodatapb.TabletType_REPLICA, true)
+ require.NoError(t, err)
+ err = se.EnsureConnectionAndDB(topodatapb.TabletType_PRIMARY, false)
+ require.NoError(t, err)
+ err = se.EnsureConnectionAndDB(topodatapb.TabletType_REPLICA, false)
+ require.NoError(t, err)
+ })
+
+ // Advance time some more.
+ db.AddQuery("select unix_timestamp()", sqltypes.MakeTestResult(sqltypes.MakeTestFields(
+ "t",
+ "int64"),
+ "1427325877",
+ ))
+ assert.EqualValues(t, firstReadRowsValue, se.innoDbReadRowsCounter.Get())
+ // Modify test_table_03
+ // Add test_table_04
+ // Drop msg
db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
Fields: mysql.BaseShowTablesFields,
RowsAffected: 0,
InsertID: 0,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("test_table_03")), // table_name
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("BASE TABLE")), // table_type
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("1427325877")), // unix_timestamp(t.create_time)
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("")), // table_comment
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ },
+ mysql.BaseShowTablesRow("test_table_04", false, ""),
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ },
+ SessionStateChanges: "",
+ StatusFlags: 0,
+ })
+ // Modify test_table_03
+ // Add test_table_04
+ // Drop msg
+ db.AddQueryPattern(baseInnoDBTableSizesPattern, &sqltypes.Result{
+ Fields: mysql.BaseInnoDBTableSizesFields,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_01"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_02"),
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("fakesqldb/test_table_03")), // table_name
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ },
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_04"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "seq"),
+ },
+ })
+ db.RejectQueryPattern(baseShowTablesWithSizesPattern, "Opening schema engine should query tables without size information")
+
+ db.MockQueriesForTable("test_table_03", &sqltypes.Result{
+ Fields: []*querypb.Field{{
+ Name: "pk1",
+ Type: sqltypes.Int32,
+ }, {
+ Name: "pk2",
+ Type: sqltypes.Int32,
+ }, {
+ Name: "val",
+ Type: sqltypes.Int32,
+ }},
+ })
+
+ db.MockQueriesForTable("test_table_04", &sqltypes.Result{
+ Fields: []*querypb.Field{{
+ Name: "pk",
+ Type: sqltypes.Int32,
+ }},
+ })
+
+ db.AddQuery(mysql.BaseShowPrimary, &sqltypes.Result{
+ Fields: mysql.ShowPrimaryFields,
+ Rows: [][]sqltypes.Value{
+ mysql.ShowPrimaryRow("test_table_01", "pk"),
+ mysql.ShowPrimaryRow("test_table_02", "pk"),
+ mysql.ShowPrimaryRow("test_table_03", "pk1"),
+ mysql.ShowPrimaryRow("test_table_03", "pk2"),
+ mysql.ShowPrimaryRow("test_table_04", "pk"),
+ mysql.ShowPrimaryRow("seq", "id"),
+ },
+ })
+ secondReadRowsValue := 123
+ AddFakeInnoDBReadRowsResult(db, secondReadRowsValue)
+
+ firstTime := true
+ notifier := func(full map[string]*Table, created, altered, dropped []*Table, _ bool) {
+ if firstTime {
+ firstTime = false
+ createTables := extractNamesFromTablesList(created)
+ sort.Strings(createTables)
+ assert.Equal(t, []string{"dual", "msg", "seq", "test_table_01", "test_table_02", "test_table_03"}, createTables)
+ assert.Equal(t, []*Table(nil), altered)
+ assert.Equal(t, []*Table(nil), dropped)
+ } else {
+ assert.Equal(t, []string{"test_table_04"}, extractNamesFromTablesList(created))
+ assert.Equal(t, []string{"test_table_03"}, extractNamesFromTablesList(altered))
+ assert.Equal(t, []string{"msg"}, extractNamesFromTablesList(dropped))
+ }
+ }
+ se.RegisterNotifier("test", notifier, true)
+ err := se.Reload(context.Background())
+ require.NoError(t, err)
+
+ assert.EqualValues(t, secondReadRowsValue, se.innoDbReadRowsCounter.Get())
+
+ want["seq"].FileSize = 100
+ want["seq"].AllocatedSize = 150
+
+ want["test_table_01"].FileSize = 100
+ want["test_table_01"].AllocatedSize = 150
+
+ want["test_table_02"].FileSize = 100
+ want["test_table_02"].AllocatedSize = 150
+
+ want["test_table_03"] = &Table{
+ Name: sqlparser.NewIdentifierCS("test_table_03"),
+ Fields: []*querypb.Field{{
+ Name: "pk1",
+ Type: sqltypes.Int32,
+ }, {
+ Name: "pk2",
+ Type: sqltypes.Int32,
+ }, {
+ Name: "val",
+ Type: sqltypes.Int32,
+ }},
+ PKColumns: []int{0, 1},
+ CreateTime: 1427325877,
+ FileSize: 128,
+ AllocatedSize: 256,
+ }
+ want["test_table_04"] = &Table{
+ Name: sqlparser.NewIdentifierCS("test_table_04"),
+ Fields: []*querypb.Field{{
+ Name: "pk",
+ Type: sqltypes.Int32,
+ }},
+ PKColumns: []int{0},
+ CreateTime: 1427325875,
+ FileSize: 100,
+ AllocatedSize: 150,
+ }
+ delete(want, "msg")
+ assert.Equal(t, want, se.GetSchema())
+ assert.Equal(t, int64(0), se.tableAllocatedSizeGauge.Counts()["msg"])
+ assert.Equal(t, int64(0), se.tableFileSizeGauge.Counts()["msg"])
+
+ // ReloadAt tests
+ pos1, err := replication.DecodePosition("MariaDB/0-41983-20")
+ require.NoError(t, err)
+ pos2, err := replication.DecodePosition("MariaDB/0-41983-40")
+ require.NoError(t, err)
+ se.UnregisterNotifier("test")
+
+ err = se.ReloadAt(context.Background(), replication.Position{})
+ require.NoError(t, err)
+ assert.Equal(t, want, se.GetSchema())
+
+ err = se.ReloadAt(context.Background(), pos1)
+ require.NoError(t, err)
+ assert.Equal(t, want, se.GetSchema())
+
+ db.AddQueryPattern(baseShowTablesWithSizesPattern, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesWithSizesFields,
Rows: [][]sqltypes.Value{
mysql.BaseShowTablesWithSizesRow("test_table_01", false, ""),
mysql.BaseShowTablesWithSizesRow("test_table_02", false, ""),
- mysql.BaseShowTablesWithSizesRow("test_table_03", false, ""),
+ mysql.BaseShowTablesWithSizesRow("test_table_04", false, ""),
mysql.BaseShowTablesWithSizesRow("seq", false, "vitess_sequence"),
- mysql.BaseShowTablesWithSizesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
+ },
+ })
+
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
+ mysql.BaseShowTablesRow("test_table_04", false, ""),
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ },
+ })
+
+ db.AddQuery(mysql.BaseShowPrimary, &sqltypes.Result{
+ Fields: mysql.ShowPrimaryFields,
+ Rows: [][]sqltypes.Value{
+ mysql.ShowPrimaryRow("test_table_01", "pk"),
+ mysql.ShowPrimaryRow("test_table_02", "pk"),
+ mysql.ShowPrimaryRow("test_table_04", "pk"),
+ mysql.ShowPrimaryRow("seq", "id"),
+ },
+ })
+ err = se.ReloadAt(context.Background(), pos1)
+ require.NoError(t, err)
+ assert.Equal(t, want, se.GetSchema())
+
+ delete(want, "test_table_03")
+ err = se.ReloadAt(context.Background(), pos2)
+ require.NoError(t, err)
+ assert.Equal(t, want, se.GetSchema())
+}
+
+func TestReloadWithSwappedTables(t *testing.T) {
+ db := fakesqldb.New(t)
+ defer db.Close()
+ schematest.AddDefaultQueries(db)
+
+ db.RejectQueryPattern(baseShowTablesWithSizesPattern, "Opening schema engine should query tables without size information")
+ db.RejectQueryPattern(baseInnoDBTableSizesPattern, "Opening schema engine should query tables without size information")
+
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ RowsAffected: 0,
+ InsertID: 0,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
+ mysql.BaseShowTablesRow("test_table_03", false, ""),
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ mysql.BaseShowTablesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
},
SessionStateChanges: "",
StatusFlags: 0,
@@ -316,7 +576,7 @@ func TestReloadWithSwappedTables(t *testing.T) {
firstReadRowsValue := 12
AddFakeInnoDBReadRowsResult(db, firstReadRowsValue)
- se := newEngine(10*time.Second, 10*time.Second, 0, db)
+ se := newEngine(10*time.Second, 10*time.Second, 0, db, nil)
se.Open()
defer se.Close()
want := initialSchema()
@@ -329,23 +589,42 @@ func TestReloadWithSwappedTables(t *testing.T) {
"int64"),
"1427325876",
))
- db.AddQueryPattern(baseShowTablesWithSizesPattern, &sqltypes.Result{
- Fields: mysql.BaseShowTablesWithSizesFields,
+ db.AddQueryPattern(baseInnoDBTableSizesPattern, &sqltypes.Result{
+ Fields: mysql.BaseInnoDBTableSizesFields,
Rows: [][]sqltypes.Value{
- mysql.BaseShowTablesWithSizesRow("test_table_01", false, ""),
- mysql.BaseShowTablesWithSizesRow("test_table_02", false, ""),
- mysql.BaseShowTablesWithSizesRow("test_table_03", false, ""),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_01"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_02"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_03"),
{
- sqltypes.MakeTrusted(sqltypes.VarChar, []byte("test_table_04")),
- sqltypes.MakeTrusted(sqltypes.VarChar, []byte("BASE TABLE")),
- sqltypes.MakeTrusted(sqltypes.Int64, []byte("1427325877")), // unix_timestamp(create_time)
- sqltypes.MakeTrusted(sqltypes.VarChar, []byte("")),
- sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
- sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("fakesqldb/test_table_04")), // table_name
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
},
- mysql.BaseShowTablesWithSizesRow("seq", false, "vitess_sequence"),
- mysql.BaseShowTablesWithSizesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "seq"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "msg"),
+ },
+ })
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ RowsAffected: 0,
+ InsertID: 0,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
+ mysql.BaseShowTablesRow("test_table_03", false, ""),
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("test_table_04")), // table_name
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("BASE TABLE")), // table_type
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("1427325877")), // unix_timestamp(t.create_time)
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("")), // table_comment
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ },
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ mysql.BaseShowTablesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
},
+ SessionStateChanges: "",
+ StatusFlags: 0,
})
db.MockQueriesForTable("test_table_04", &sqltypes.Result{
Fields: []*querypb.Field{{
@@ -403,11 +682,28 @@ func TestReloadWithSwappedTables(t *testing.T) {
"int64"),
"1427325877",
))
- db.AddQueryPattern(baseShowTablesWithSizesPattern, &sqltypes.Result{
- Fields: mysql.BaseShowTablesWithSizesFields,
+ db.AddQueryPattern(baseInnoDBTableSizesPattern, &sqltypes.Result{
+ Fields: mysql.BaseInnoDBTableSizesFields,
Rows: [][]sqltypes.Value{
- mysql.BaseShowTablesWithSizesRow("test_table_01", false, ""),
- mysql.BaseShowTablesWithSizesRow("test_table_02", false, ""),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_01"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_02"),
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("fakesqldb/test_table_03")), // table_name
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ },
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "test_table_04"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "seq"),
+ mysql.BaseInnoDBTableSizesRow("fakesqldb", "msg"),
+ },
+ })
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ RowsAffected: 0,
+ InsertID: 0,
+ Rows: [][]sqltypes.Value{
+ mysql.BaseShowTablesRow("test_table_01", false, ""),
+ mysql.BaseShowTablesRow("test_table_02", false, ""),
{
sqltypes.MakeTrusted(sqltypes.VarChar, []byte("test_table_03")),
sqltypes.MakeTrusted(sqltypes.VarChar, []byte("BASE TABLE")),
@@ -416,10 +712,12 @@ func TestReloadWithSwappedTables(t *testing.T) {
sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
},
- mysql.BaseShowTablesWithSizesRow("test_table_04", false, ""),
- mysql.BaseShowTablesWithSizesRow("seq", false, "vitess_sequence"),
- mysql.BaseShowTablesWithSizesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
+ mysql.BaseShowTablesRow("test_table_04", false, ""),
+ mysql.BaseShowTablesRow("seq", false, "vitess_sequence"),
+ mysql.BaseShowTablesRow("msg", false, "vitess_message,vt_ack_wait=30,vt_purge_after=120,vt_batch_size=1,vt_cache_size=10,vt_poller_interval=30"),
},
+ SessionStateChanges: "",
+ StatusFlags: 0,
})
db.MockQueriesForTable("test_table_03", &sqltypes.Result{
Fields: []*querypb.Field{{
@@ -482,7 +780,7 @@ func TestOpenFailedDueToExecErr(t *testing.T) {
schematest.AddDefaultQueries(db)
want := "injected error"
db.AddRejectedQuery(mysql.BaseShowTables, errors.New(want))
- se := newEngine(1*time.Second, 1*time.Second, 0, db)
+ se := newEngine(1*time.Second, 1*time.Second, 0, db, nil)
err := se.Open()
if err == nil || !strings.Contains(err.Error(), want) {
t.Errorf("se.Open: %v, want %s", err, want)
@@ -513,7 +811,7 @@ func TestOpenFailedDueToLoadTableErr(t *testing.T) {
db.AddRejectedQuery("SELECT * FROM `fakesqldb`.`test_view` WHERE 1 != 1", sqlerror.NewSQLErrorFromError(errors.New("The user specified as a definer ('root'@'%') does not exist (errno 1449) (sqlstate HY000)")))
AddFakeInnoDBReadRowsResult(db, 0)
- se := newEngine(1*time.Second, 1*time.Second, 0, db)
+ se := newEngine(1*time.Second, 1*time.Second, 0, db, nil)
err := se.Open()
// failed load should return an error because of test_table
assert.ErrorContains(t, err, "Row count exceeded")
@@ -548,7 +846,7 @@ func TestOpenNoErrorDueToInvalidViews(t *testing.T) {
db.AddRejectedQuery("SELECT `col1`, `col2` FROM `fakesqldb`.`bar_view` WHERE 1 != 1", sqlerror.NewSQLError(sqlerror.ERWrongFieldWithGroup, sqlerror.SSClientError, "random error for table bar_view"))
AddFakeInnoDBReadRowsResult(db, 0)
- se := newEngine(1*time.Second, 1*time.Second, 0, db)
+ se := newEngine(1*time.Second, 1*time.Second, 0, db, nil)
err := se.Open()
require.NoError(t, err)
@@ -564,7 +862,7 @@ func TestExportVars(t *testing.T) {
db := fakesqldb.New(t)
defer db.Close()
schematest.AddDefaultQueries(db)
- se := newEngine(1*time.Second, 1*time.Second, 0, db)
+ se := newEngine(1*time.Second, 1*time.Second, 0, db, nil)
se.Open()
defer se.Close()
expvar.Do(func(kv expvar.KeyValue) {
@@ -576,7 +874,7 @@ func TestStatsURL(t *testing.T) {
db := fakesqldb.New(t)
defer db.Close()
schematest.AddDefaultQueries(db)
- se := newEngine(1*time.Second, 1*time.Second, 0, db)
+ se := newEngine(1*time.Second, 1*time.Second, 0, db, nil)
se.Open()
defer se.Close()
@@ -606,7 +904,7 @@ func TestSchemaEngineCloseTickRace(t *testing.T) {
})
AddFakeInnoDBReadRowsResult(db, 12)
// Start the engine with a small reload tick
- se := newEngine(100*time.Millisecond, 1*time.Second, 0, db)
+ se := newEngine(100*time.Millisecond, 1*time.Second, 0, db, nil)
err := se.Open()
require.NoError(t, err)
@@ -633,7 +931,7 @@ func TestSchemaEngineCloseTickRace(t *testing.T) {
}
}
-func newEngine(reloadTime time.Duration, idleTimeout time.Duration, schemaMaxAgeSeconds int64, db *fakesqldb.DB) *Engine {
+func newEngine(reloadTime time.Duration, idleTimeout time.Duration, schemaMaxAgeSeconds int64, db *fakesqldb.DB, env *vtenv.Environment) *Engine {
cfg := tabletenv.NewDefaultConfig()
cfg.SchemaReloadInterval = reloadTime
cfg.OltpReadPool.IdleTimeout = idleTimeout
@@ -642,7 +940,10 @@ func newEngine(reloadTime time.Duration, idleTimeout time.Duration, schemaMaxAge
cfg.SchemaVersionMaxAgeSeconds = schemaMaxAgeSeconds
dbConfigs := newDBConfigs(db)
cfg.DB = dbConfigs
- se := NewEngine(tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "SchemaTest"))
+ if env == nil {
+ env = vtenv.NewTestEnv()
+ }
+ se := NewEngine(tabletenv.NewEnv(env, cfg, "SchemaTest"))
se.InitDBConfig(dbConfigs.DbaWithDB())
return se
}
@@ -1032,7 +1333,6 @@ func TestEngineGetTableData(t *testing.T) {
name string
expectedQueries map[string]*sqltypes.Result
queriesToReject map[string]error
- includeStats bool
expectedError string
}{
{
@@ -1040,13 +1340,6 @@ func TestEngineGetTableData(t *testing.T) {
expectedQueries: map[string]*sqltypes.Result{
conn.BaseShowTables(): {},
},
- includeStats: false,
- }, {
- name: "Success with include stats",
- expectedQueries: map[string]*sqltypes.Result{
- conn.BaseShowTablesWithSizes(): {},
- },
- includeStats: true,
}, {
name: "Error in query",
queriesToReject: map[string]error{
@@ -1068,7 +1361,7 @@ func TestEngineGetTableData(t *testing.T) {
defer db.DeleteRejectedQuery(query)
}
- _, err = getTableData(context.Background(), conn, tt.includeStats)
+ _, err = getTableData(context.Background(), conn, false)
if tt.expectedError != "" {
require.ErrorContains(t, err, tt.expectedError)
return
@@ -1195,194 +1488,204 @@ func TestEngineGetDroppedTables(t *testing.T) {
// TestEngineReload tests the entire functioning of engine.Reload testing all the queries that we end up running against MySQL
// while simulating the responses and verifies the final list of created, altered and dropped tables.
func TestEngineReload(t *testing.T) {
- db := fakesqldb.New(t)
- cfg := tabletenv.NewDefaultConfig()
- cfg.DB = newDBConfigs(db)
- cfg.SignalWhenSchemaChange = true
- env := tabletenv.NewEnv(vtenv.NewTestEnv(), nil, "TestEngineReload")
- conn, err := connpool.NewConn(context.Background(), dbconfigs.New(db.ConnParams()), nil, nil, env)
- require.NoError(t, err)
-
- se := newEngine(10*time.Second, 10*time.Second, 0, db)
- se.conns.Open(se.cp, se.cp, se.cp)
- se.isOpen = true
- se.notifiers = make(map[string]notifier)
- se.MakePrimary(true)
+ envs := []*vtenv.Environment{
+ vtenv.NewTestEnv(),
+ vtenv.NewLegacyTestEnv(),
+ }
+ for _, venv := range envs {
+ t.Run(venv.MySQLVersion(), func(t *testing.T) {
+ db := fakesqldb.NewWithEnv(t, venv)
+ cfg := tabletenv.NewDefaultConfig()
+ cfg.DB = newDBConfigs(db)
+ cfg.SignalWhenSchemaChange = true
+
+ env := tabletenv.NewEnv(venv, nil, "TestEngineReload")
+ conn, err := connpool.NewConn(context.Background(), dbconfigs.New(db.ConnParams()), nil, nil, env)
+ require.NoError(t, err)
- // If we have to skip the meta check, then there is nothing to do
- se.SkipMetaCheck = true
- err = se.reload(context.Background(), false)
- require.NoError(t, err)
+ se := newEngine(10*time.Second, 10*time.Second, 0, db, venv)
+ se.conns.Open(se.cp, se.cp, se.cp)
+ se.isOpen = true
+ se.notifiers = make(map[string]notifier)
+ se.MakePrimary(true)
- se.SkipMetaCheck = false
- se.lastChange = 987654321
+ // If we have to skip the meta check, then there is nothing to do
+ se.SkipMetaCheck = true
+ err = se.reload(context.Background(), false)
+ require.NoError(t, err)
- // Initial tables in the schema engine
- se.tables = map[string]*Table{
- "t1": {
- Name: sqlparser.NewIdentifierCS("t1"),
- Type: NoType,
- CreateTime: 123456789,
- },
- "t2": {
- Name: sqlparser.NewIdentifierCS("t2"),
- Type: NoType,
- CreateTime: 123456789,
- },
- "t4": {
- Name: sqlparser.NewIdentifierCS("t4"),
- Type: NoType,
- CreateTime: 123456789,
- },
- "v1": {
- Name: sqlparser.NewIdentifierCS("v1"),
- Type: View,
- CreateTime: 123456789,
- },
- "v2": {
- Name: sqlparser.NewIdentifierCS("v2"),
- Type: View,
- CreateTime: 123456789,
- },
- "v4": {
- Name: sqlparser.NewIdentifierCS("v4"),
- Type: View,
- CreateTime: 123456789,
- },
- }
- // MySQL unix timestamp query.
- db.AddQuery("SELECT UNIX_TIMESTAMP()", sqltypes.MakeTestResult(sqltypes.MakeTestFields("UNIX_TIMESTAMP", "int64"), "987654326"))
- // Table t2 is updated, T2 is created and t4 is deleted.
- // View v2 is updated, V2 is created and v4 is deleted.
- db.AddQuery(conn.BaseShowTables(), sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|table_type|unix_timestamp(create_time)|table_comment",
- "varchar|varchar|int64|varchar"),
- "t1|BASE_TABLE|123456789|",
- "t2|BASE_TABLE|123456790|",
- "T2|BASE_TABLE|123456789|",
- "v1|VIEW|123456789|",
- "v2|VIEW|123456789|",
- "V2|VIEW|123456789|",
- ))
+ se.SkipMetaCheck = false
+ se.lastChange = 987654321
- // Detecting view changes.
- // According to the database, v2, V2, v4, and v5 require updating.
- db.AddQuery(fmt.Sprintf(detectViewChange, sidecar.GetIdentifier()), sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name", "varchar"),
- "v2",
- "V2",
- "v4",
- "v5",
- ))
+ // Initial tables in the schema engine
+ se.tables = map[string]*Table{
+ "t1": {
+ Name: sqlparser.NewIdentifierCS("t1"),
+ Type: NoType,
+ CreateTime: 123456789,
+ },
+ "t2": {
+ Name: sqlparser.NewIdentifierCS("t2"),
+ Type: NoType,
+ CreateTime: 123456789,
+ },
+ "t4": {
+ Name: sqlparser.NewIdentifierCS("t4"),
+ Type: NoType,
+ CreateTime: 123456789,
+ },
+ "v1": {
+ Name: sqlparser.NewIdentifierCS("v1"),
+ Type: View,
+ CreateTime: 123456789,
+ },
+ "v2": {
+ Name: sqlparser.NewIdentifierCS("v2"),
+ Type: View,
+ CreateTime: 123456789,
+ },
+ "v4": {
+ Name: sqlparser.NewIdentifierCS("v4"),
+ Type: View,
+ CreateTime: 123456789,
+ },
+ }
+ // MySQL unix timestamp query.
+ db.AddQuery("SELECT UNIX_TIMESTAMP()", sqltypes.MakeTestResult(sqltypes.MakeTestFields("UNIX_TIMESTAMP", "int64"), "987654326"))
+ // Table t2 is updated, T2 is created and t4 is deleted.
+ // View v2 is updated, V2 is created and v4 is deleted.
+ db.AddQuery(conn.BaseShowTables(), sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|table_type|unix_timestamp(create_time)|table_comment",
+ "varchar|varchar|int64|varchar"),
+ "t1|BASE_TABLE|123456789|",
+ "t2|BASE_TABLE|123456790|",
+ "T2|BASE_TABLE|123456789|",
+ "v1|VIEW|123456789|",
+ "v2|VIEW|123456789|",
+ "V2|VIEW|123456789|",
+ ))
+ // Detecting view changes.
+ // According to the database, v2, V2, v4, and v5 require updating.
+ db.AddQuery(fmt.Sprintf(detectViewChange, sidecar.GetIdentifier()), sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name", "varchar"),
+ "v2",
+ "V2",
+ "v4",
+ "v5",
+ ))
- // Finding mismatches in the tables.
- // t5 exists in the database.
- db.AddQuery("SELECT TABLE_NAME, CREATE_TIME FROM _vt.`tables`", sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|create_time", "varchar|int64"),
- "t1|123456789",
- "t2|123456789",
- "t4|123456789",
- "t5|123456789",
- ))
+ // Finding mismatches in the tables.
+ // t5 exists in the database.
+ db.AddQuery("SELECT TABLE_NAME, CREATE_TIME FROM _vt.`tables`", sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|create_time", "varchar|int64"),
+ "t1|123456789",
+ "t2|123456789",
+ "t4|123456789",
+ "t5|123456789",
+ ))
- // Read Innodb_rows_read.
- db.AddQuery(mysql.ShowRowsRead, sqltypes.MakeTestResult(sqltypes.MakeTestFields("Variable_name|Value", "varchar|int64"),
- "Innodb_rows_read|35"))
+ // Read Innodb_rows_read.
+ db.AddQuery(mysql.ShowRowsRead, sqltypes.MakeTestResult(sqltypes.MakeTestFields("Variable_name|Value", "varchar|int64"),
+ "Innodb_rows_read|35"))
- // Queries to load the tables' information.
- for _, tableName := range []string{"t2", "T2", "v2", "V2"} {
- db.AddQuery(fmt.Sprintf(`SELECT COLUMN_NAME as column_name
+ // Queries to load the tables' information.
+ for _, tableName := range []string{"t2", "T2", "v2", "V2"} {
+ db.AddQuery(fmt.Sprintf(`SELECT COLUMN_NAME as column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'fakesqldb' AND TABLE_NAME = '%s'
ORDER BY ORDINAL_POSITION`, tableName),
- sqltypes.MakeTestResult(sqltypes.MakeTestFields("column_name", "varchar"),
- "col1"))
- db.AddQuery(fmt.Sprintf("SELECT `col1` FROM `fakesqldb`.`%v` WHERE 1 != 1", tableName), sqltypes.MakeTestResult(sqltypes.MakeTestFields("col1", "varchar")))
- }
-
- // Primary key information.
- db.AddQuery(mysql.BaseShowPrimary, sqltypes.MakeTestResult(mysql.ShowPrimaryFields,
- "t1|col1",
- "t2|col1",
- "T2|col1",
- ))
-
- // Queries for reloading the tables' information.
- {
- for _, tableName := range []string{"t2", "T2"} {
- db.AddQuery(fmt.Sprintf(`show create table %s`, tableName),
- sqltypes.MakeTestResult(sqltypes.MakeTestFields("Table | Create Table", "varchar|varchar"),
- fmt.Sprintf("%v|create_table_%v", tableName, tableName)))
- }
- db.AddQuery("begin", &sqltypes.Result{})
- db.AddQuery("commit", &sqltypes.Result{})
- db.AddQuery("rollback", &sqltypes.Result{})
- // We are adding both the variants of the delete statements that we can see in the test, since the deleted tables are initially stored as a map, the order is not defined.
- db.AddQuery("delete from _vt.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('t5', 't4', 'T2', 't2')", &sqltypes.Result{})
- db.AddQuery("delete from _vt.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('t4', 't5', 'T2', 't2')", &sqltypes.Result{})
- db.AddQuery("insert into _vt.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), 't2', 'create_table_t2', 123456790)", &sqltypes.Result{})
- db.AddQuery("insert into _vt.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), 'T2', 'create_table_T2', 123456789)", &sqltypes.Result{})
- }
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("column_name", "varchar"),
+ "col1"))
+ db.AddQuery(fmt.Sprintf("SELECT `col1` FROM `fakesqldb`.`%v` WHERE 1 != 1", tableName), sqltypes.MakeTestResult(sqltypes.MakeTestFields("col1", "varchar")))
+ }
- // Queries for reloading the views' information.
- {
- for _, tableName := range []string{"v2", "V2"} {
- db.AddQuery(fmt.Sprintf(`show create table %s`, tableName),
- sqltypes.MakeTestResult(sqltypes.MakeTestFields(" View | Create View | character_set_client | collation_connection", "varchar|varchar|varchar|varchar"),
- fmt.Sprintf("%v|create_table_%v|utf8mb4|utf8mb4_0900_ai_ci", tableName, tableName)))
- }
- // We are adding both the variants of the select statements that we can see in the test, since the deleted views are initially stored as a map, the order is not defined.
- db.AddQuery("select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('v4', 'v5', 'V2', 'v2')",
- sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|view_definition", "varchar|varchar"),
- "v2|select_v2",
- "V2|select_V2",
- ))
- db.AddQuery("select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('v5', 'v4', 'V2', 'v2')",
- sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|view_definition", "varchar|varchar"),
- "v2|select_v2",
- "V2|select_V2",
+ // Primary key information.
+ db.AddQuery(mysql.BaseShowPrimary, sqltypes.MakeTestResult(mysql.ShowPrimaryFields,
+ "t1|col1",
+ "t2|col1",
+ "T2|col1",
))
- // We are adding both the variants of the delete statements that we can see in the test, since the deleted views are initially stored as a map, the order is not defined.
- db.AddQuery("delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('v4', 'v5', 'V2', 'v2')", &sqltypes.Result{})
- db.AddQuery("delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('v5', 'v4', 'V2', 'v2')", &sqltypes.Result{})
- db.AddQuery("insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'v2', 'create_table_v2', 'select_v2')", &sqltypes.Result{})
- db.AddQuery("insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'V2', 'create_table_V2', 'select_V2')", &sqltypes.Result{})
- }
+ // Queries for reloading the tables' information.
+ {
+ for _, tableName := range []string{"t2", "T2"} {
+ db.AddQuery(fmt.Sprintf(`show create table %s`, tableName),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("Table | Create Table", "varchar|varchar"),
+ fmt.Sprintf("%v|create_table_%v", tableName, tableName)))
+ }
+ db.AddQuery("begin", &sqltypes.Result{})
+ db.AddQuery("commit", &sqltypes.Result{})
+ db.AddQuery("rollback", &sqltypes.Result{})
+ // We are adding both the variants of the delete statements that we can see in the test, since the deleted tables are initially stored as a map, the order is not defined.
+ db.AddQuery("delete from _vt.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('t5', 't4', 'T2', 't2')", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('t4', 't5', 'T2', 't2')", &sqltypes.Result{})
+ db.AddQuery("insert into _vt.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), 't2', 'create_table_t2', 123456790)", &sqltypes.Result{})
+ db.AddQuery("insert into _vt.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), 'T2', 'create_table_T2', 123456789)", &sqltypes.Result{})
+ }
- // adding query pattern for udfs
- udfQueryPattern := "SELECT name.*"
- db.AddQueryPattern(udfQueryPattern, &sqltypes.Result{})
+ // Queries for reloading the views' information.
+ {
+ for _, tableName := range []string{"v2", "V2"} {
+ db.AddQuery(fmt.Sprintf(`show create table %s`, tableName),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields(" View | Create View | character_set_client | collation_connection", "varchar|varchar|varchar|varchar"),
+ fmt.Sprintf("%v|create_table_%v|utf8mb4|utf8mb4_0900_ai_ci", tableName, tableName)))
+ }
+ // We are adding both the variants of the select statements that we can see in the test, since the deleted views are initially stored as a map, the order is not defined.
+ db.AddQuery("select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('v4', 'v5', 'V2', 'v2')",
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|view_definition", "varchar|varchar"),
+ "v2|select_v2",
+ "V2|select_V2",
+ ))
+ db.AddQuery("select table_name, view_definition from information_schema.views where table_schema = database() and table_name in ('v5', 'v4', 'V2', 'v2')",
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|view_definition", "varchar|varchar"),
+ "v2|select_v2",
+ "V2|select_V2",
+ ))
+
+ // We are adding both the variants of the delete statements that we can see in the test, since the deleted views are initially stored as a map, the order is not defined.
+ db.AddQuery("delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('v4', 'v5', 'V2', 'v2')", &sqltypes.Result{})
+ db.AddQuery("delete from _vt.views where TABLE_SCHEMA = database() and TABLE_NAME in ('v5', 'v4', 'V2', 'v2')", &sqltypes.Result{})
+ db.AddQuery("insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'v2', 'create_table_v2', 'select_v2')", &sqltypes.Result{})
+ db.AddQuery("insert into _vt.views(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, VIEW_DEFINITION) values (database(), 'V2', 'create_table_V2', 'select_V2')", &sqltypes.Result{})
+ }
- // Verify the list of created, altered and dropped tables seen.
- se.RegisterNotifier("test", func(full map[string]*Table, created, altered, dropped []*Table, _ bool) {
- require.ElementsMatch(t, extractNamesFromTablesList(created), []string{"T2", "V2"})
- require.ElementsMatch(t, extractNamesFromTablesList(altered), []string{"t2", "v2"})
- require.ElementsMatch(t, extractNamesFromTablesList(dropped), []string{"t4", "v4", "t5", "v5"})
- }, false)
+ // adding query pattern for udfs
+ udfQueryPattern := "SELECT name.*mysql.func.*"
+ db.AddQueryPattern(udfQueryPattern, &sqltypes.Result{})
- // Run the reload.
- err = se.reload(context.Background(), false)
- require.NoError(t, err)
- require.NoError(t, db.LastError())
- require.Zero(t, se.throttledLogger.GetLastLogTime())
+ // Verify the list of created, altered and dropped tables seen.
+ se.RegisterNotifier("test", func(full map[string]*Table, created, altered, dropped []*Table, _ bool) {
+ require.ElementsMatch(t, extractNamesFromTablesList(created), []string{"T2", "V2"})
+ require.ElementsMatch(t, extractNamesFromTablesList(altered), []string{"t2", "v2"})
+ require.ElementsMatch(t, extractNamesFromTablesList(dropped), []string{"t4", "v4", "t5", "v5"})
+ }, false)
- // Now if we remove the query pattern for udfs, schema engine shouldn't fail.
- // Instead we should see a log message with the error.
- db.RemoveQueryPattern(udfQueryPattern)
- se.UnregisterNotifier("test")
- err = se.reload(context.Background(), false)
- require.NoError(t, err)
- // Check for the udf error being logged. The last log time should be less than a second.
- require.Less(t, time.Since(se.throttledLogger.GetLastLogTime()), 1*time.Second)
+ // Run the reload.
+ err = se.reload(context.Background(), false)
+ require.NoError(t, err)
+ require.NoError(t, db.LastError())
+ require.Zero(t, se.throttledLogger.GetLastLogTime())
+
+ // Now if we remove the query pattern for udfs, schema engine shouldn't fail.
+ // Instead we should see a log message with the error.
+ db.RemoveQueryPattern(udfQueryPattern)
+ se.UnregisterNotifier("test")
+ err = se.reload(context.Background(), false)
+ require.NoError(t, err)
+ // Check for the udf error being logged. The last log time should be less than a second.
+ require.Less(t, time.Since(se.throttledLogger.GetLastLogTime()), 1*time.Second)
+ })
+ }
}
-// TestEngineReload tests the vreplication specific GetTableForPos function to ensure
+// TestGetTableForPosLegacy tests the vreplication specific GetTableForPos function to ensure
// that it conforms to the intended/expected behavior in various scenarios.
// This more specifically tests the behavior of the function when the historian is
// disabled or otherwise unable to get a table schema for the given position. When it
// CAN, that is tested indepenently in the historian tests.
-func TestGetTableForPos(t *testing.T) {
+//
+// Runs with 5.7 env
+func TestGetTableForPosLegacy(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
- fakedb := fakesqldb.New(t)
+ fakedb := fakesqldb.NewWithEnv(t, vtenv.NewLegacyTestEnv())
cfg := tabletenv.NewDefaultConfig()
cfg.DB = newDBConfigs(fakedb)
table := sqlparser.NewIdentifierCS("t1")
@@ -1400,7 +1703,7 @@ func TestGetTableForPos(t *testing.T) {
}
// Don't do any automatic / TTL based cache refreshes.
- se := newEngine(1*time.Hour, 1*time.Hour, 0, fakedb)
+ se := newEngine(1*time.Hour, 1*time.Hour, 0, fakedb, vtenv.NewLegacyTestEnv())
se.conns.Open(se.cp, se.cp, se.cp)
se.isOpen = true
se.notifiers = make(map[string]notifier)
@@ -1562,3 +1865,197 @@ func TestGetTableForPos(t *testing.T) {
})
}
}
+
+// TestGetTableForPos tests the vreplication specific GetTableForPos function to ensure
+// that it conforms to the intended/expected behavior in various scenarios.
+// This more specifically tests the behavior of the function when the historian is
+// disabled or otherwise unable to get a table schema for the given position. When it
+// CAN, that is tested indepenently in the historian tests.
+func TestGetTableForPos(t *testing.T) {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ fakedb := fakesqldb.New(t)
+ cfg := tabletenv.NewDefaultConfig()
+ cfg.DB = newDBConfigs(fakedb)
+ table := sqlparser.NewIdentifierCS("t1")
+ column := "col1"
+ tableSchema := fmt.Sprintf("create table %s (%s varchar(50), primary key(col1))", table.String(), column)
+ tableMt := &binlogdatapb.MinimalTable{
+ Name: table.String(),
+ Fields: []*querypb.Field{
+ {
+ Name: column,
+ Type: sqltypes.VarChar,
+ },
+ },
+ PKColumns: []int64{0}, // First column: col1
+ }
+
+ // Don't do any automatic / TTL based cache refreshes.
+ se := newEngine(1*time.Hour, 1*time.Hour, 0, fakedb, nil)
+ se.conns.Open(se.cp, se.cp, se.cp)
+ se.isOpen = true
+ se.notifiers = make(map[string]notifier)
+ se.MakePrimary(true)
+ se.historian.enabled = false
+
+ addExpectedReloadQueries := func(db *fakesqldb.DB) {
+ db.AddQuery("SELECT UNIX_TIMESTAMP()", sqltypes.MakeTestResult(sqltypes.MakeTestFields(
+ "UNIX_TIMESTAMP()",
+ "int64"),
+ fmt.Sprintf("%d", time.Now().Unix()),
+ ))
+ db.AddQuery(fmt.Sprintf(detectViewChange, sidecar.GetIdentifier()), sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name", "varchar")))
+ db.AddQuery(fmt.Sprintf(readTableCreateTimes, sidecar.GetIdentifier()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("table_name|create_time", "varchar|int64")))
+ db.AddQuery(fmt.Sprintf(detectUdfChange, sidecar.GetIdentifier()), &sqltypes.Result{})
+ db.AddQueryPattern(baseInnoDBTableSizesPattern, &sqltypes.Result{
+ Fields: mysql.BaseInnoDBTableSizesFields,
+ Rows: [][]sqltypes.Value{
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("fakesqldb/"+table.String())), // table_name
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("128")), // file_size
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte("256")), // allocated_size
+ },
+ },
+ })
+ db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{
+ Fields: mysql.BaseShowTablesFields,
+ Rows: [][]sqltypes.Value{
+ {
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte(table.String())), // table_name
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("BASE TABLE")), // table_type
+ sqltypes.MakeTrusted(sqltypes.Int64, []byte(fmt.Sprintf("%d", time.Now().Unix()-1000))), // unix_timestamp(t.create_time)
+ sqltypes.MakeTrusted(sqltypes.VarChar, []byte("")), // table_comment
+ },
+ },
+ SessionStateChanges: "",
+ StatusFlags: 0,
+ })
+ db.RejectQueryPattern(baseShowTablesWithSizesPattern, "we should expect to get sizes by InnoDBTableSizes")
+ db.AddQuery(mysql.BaseShowPrimary, &sqltypes.Result{
+ Fields: mysql.ShowPrimaryFields,
+ Rows: [][]sqltypes.Value{
+ mysql.ShowPrimaryRow(table.String(), column),
+ },
+ })
+ db.AddQueryPattern(fmt.Sprintf(mysql.GetColumnNamesQueryPatternForTable, table.String()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("column_name", "varchar"), column))
+ db.AddQuery(fmt.Sprintf("SELECT `%s` FROM `fakesqldb`.`%v` WHERE 1 != 1", column, table.String()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields(column, "varchar")))
+ db.AddQuery(fmt.Sprintf(`show create table %s`, table.String()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("Table|Create Table", "varchar|varchar"), table.String(), tableSchema))
+ db.AddQuery("begin", &sqltypes.Result{})
+ db.AddQuery(fmt.Sprintf("delete from %s.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('%s')",
+ sidecar.GetIdentifier(), table.String()), &sqltypes.Result{})
+ db.AddQuery(fmt.Sprintf("insert into %s.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), '%s', '%s', %d)",
+ sidecar.GetIdentifier(), table.String(), tableSchema, time.Now().Unix()), &sqltypes.Result{RowsAffected: 1})
+ db.AddQuery("rollback", &sqltypes.Result{})
+ }
+
+ type testcase struct {
+ name string
+ initialCacheState map[string]*Table
+ expectedQueriesFunc func(db *fakesqldb.DB)
+ expectFunc func()
+ }
+ tests := []testcase{
+ {
+ name: "GetTableForPos with cache uninitialized",
+ initialCacheState: make(map[string]*Table), // empty
+ expectedQueriesFunc: func(db *fakesqldb.DB) {
+ // We do a reload to initialize the cache.
+ addExpectedReloadQueries(db)
+ },
+ expectFunc: func() {
+ tbl, err := se.GetTableForPos(ctx, table, "")
+ require.NoError(t, err)
+ require.Equal(t, tableMt, tbl)
+ },
+ },
+ {
+ name: "GetTableForPos with cache uninitialized, table not found",
+ initialCacheState: make(map[string]*Table), // empty
+ expectedQueriesFunc: func(db *fakesqldb.DB) {
+ // We do a reload to initialize the cache and in doing so get the missing table.
+ addExpectedReloadQueries(db)
+ },
+ expectFunc: func() {
+ tbl, err := se.GetTableForPos(ctx, sqlparser.NewIdentifierCS("nobueno"), "")
+ require.EqualError(t, err, "table nobueno not found in vttablet schema")
+ require.Nil(t, tbl)
+ },
+ },
+ {
+ name: "GetTableForPos with cache initialized, table not found",
+ initialCacheState: map[string]*Table{"t2": {Name: sqlparser.NewIdentifierCS("t2")}},
+ expectedQueriesFunc: func(db *fakesqldb.DB) {
+ // We do a reload to try and get this missing table and any other recently created ones.
+ addExpectedReloadQueries(db)
+ },
+ expectFunc: func() {
+ tbl, err := se.GetTableForPos(ctx, table, "")
+ require.NoError(t, err)
+ require.Equal(t, tableMt, tbl)
+ },
+ },
+ {
+ name: "GetTableForPos with cache initialized, table found",
+ initialCacheState: map[string]*Table{table.String(): {Name: table}},
+ expectedQueriesFunc: func(db *fakesqldb.DB) {
+ // We only reload the column and PK info for the table in our cache. A new column
+ // called col2 has been added to the table schema and it is the new PK.
+ newTableSchema := fmt.Sprintf("create table %s (%s varchar(50), col2 varchar(50), primary key(col2))", table.String(), column)
+ db.AddQuery(mysql.BaseShowPrimary, &sqltypes.Result{
+ Fields: mysql.ShowPrimaryFields,
+ Rows: [][]sqltypes.Value{
+ mysql.ShowPrimaryRow(table.String(), "col2"),
+ },
+ })
+ db.AddQueryPattern(fmt.Sprintf(mysql.GetColumnNamesQueryPatternForTable, table.String()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("column_name", "varchar"), column, "col2"))
+ db.AddQuery(fmt.Sprintf("SELECT `%s`, `%s` FROM `fakesqldb`.`%v` WHERE 1 != 1",
+ column, "col2", table.String()), sqltypes.MakeTestResult(sqltypes.MakeTestFields(fmt.Sprintf("%s|%s", column, "col2"), "varchar|varchar")))
+ db.AddQuery(fmt.Sprintf(`show create table %s`, table.String()),
+ sqltypes.MakeTestResult(sqltypes.MakeTestFields("Table|Create Table", "varchar|varchar"), table.String(), newTableSchema))
+ db.AddQuery("begin", &sqltypes.Result{})
+ db.AddQuery(fmt.Sprintf("delete from %s.`tables` where TABLE_SCHEMA = database() and TABLE_NAME in ('%s')",
+ sidecar.GetIdentifier(), table.String()), &sqltypes.Result{})
+ db.AddQuery(fmt.Sprintf("insert into %s.`tables`(TABLE_SCHEMA, TABLE_NAME, CREATE_STATEMENT, CREATE_TIME) values (database(), '%s', '%s', %d)",
+ sidecar.GetIdentifier(), table.String(), newTableSchema, time.Now().Unix()), &sqltypes.Result{})
+ db.AddQuery("rollback", &sqltypes.Result{})
+ },
+ expectFunc: func() {
+ tbl, err := se.GetTableForPos(ctx, table, "MySQL56/1497ddb0-7cb9-11ed-a1eb-0242ac120002:1-891")
+ require.NoError(t, err)
+ require.NotNil(t, tbl)
+ require.Equal(t, &binlogdatapb.MinimalTable{
+ Name: table.String(),
+ Fields: []*querypb.Field{
+ {
+ Name: column,
+ Type: sqltypes.VarChar,
+ },
+ {
+ Name: "col2",
+ Type: sqltypes.VarChar,
+ },
+ },
+ PKColumns: []int64{1}, // Second column: col2
+ }, tbl)
+ },
+ },
+ }
+
+ for _, tc := range tests {
+ t.Run(tc.name, func(t *testing.T) {
+ fakedb.DeleteAllQueries()
+ AddFakeInnoDBReadRowsResult(fakedb, int(rand.Int32N(1000000)))
+ tc.expectedQueriesFunc(fakedb)
+ se.tables = tc.initialCacheState
+ tc.expectFunc()
+ fakedb.VerifyAllExecutedOrFail()
+ require.NoError(t, fakedb.LastError())
+ })
+ }
+}
diff --git a/go/vt/vttablet/tabletserver/schema/main_test.go b/go/vt/vttablet/tabletserver/schema/main_test.go
index 7eaca5f18e5..8b705b9bfbd 100644
--- a/go/vt/vttablet/tabletserver/schema/main_test.go
+++ b/go/vt/vttablet/tabletserver/schema/main_test.go
@@ -34,11 +34,11 @@ func getTestSchemaEngine(t *testing.T, schemaMaxAgeSeconds int64) (*Engine, *fak
"int64"),
"1427325876",
))
- db.AddQueryPattern(baseShowTablesWithSizesPattern, &sqltypes.Result{})
+ db.AddQueryPattern(baseInnoDBTableSizesPattern, &sqltypes.Result{})
db.AddQuery(mysql.BaseShowTables, &sqltypes.Result{})
db.AddQuery(mysql.BaseShowPrimary, &sqltypes.Result{})
AddFakeInnoDBReadRowsResult(db, 1)
- se := newEngine(10*time.Second, 10*time.Second, schemaMaxAgeSeconds, db)
+ se := newEngine(10*time.Second, 10*time.Second, schemaMaxAgeSeconds, db, nil)
require.NoError(t, se.Open())
cancel := func() {
defer db.Close()
From 0403d541c1843ce1f88fa416365248873bc2f2c6 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Mon, 11 Nov 2024 12:14:54 +0530
Subject: [PATCH 48/78] Fix to prevent stopping buffering prematurely (#17013)
Signed-off-by: Manan Gupta
---
.../reparent/newfeaturetest/reparent_test.go | 62 +++++
go/test/endtoend/reparent/utils/utils.go | 47 ++++
go/vt/discovery/fake_healthcheck.go | 15 ++
go/vt/discovery/keyspace_events.go | 69 +++++-
go/vt/discovery/keyspace_events_test.go | 228 ++++++++++++++++++
go/vt/vtgate/buffer/buffer.go | 16 +-
go/vt/vtgate/buffer/buffer_helper_test.go | 2 +-
go/vt/vtgate/buffer/buffer_test.go | 48 +++-
go/vt/vtgate/buffer/shard_buffer.go | 20 +-
go/vt/vtgate/buffer/variables_test.go | 2 +-
go/vt/vtgate/tabletgateway.go | 2 +-
go/vt/vtgate/tabletgateway_flaky_test.go | 3 +-
12 files changed, 491 insertions(+), 23 deletions(-)
diff --git a/go/test/endtoend/reparent/newfeaturetest/reparent_test.go b/go/test/endtoend/reparent/newfeaturetest/reparent_test.go
index ad798d61792..b6f34af7294 100644
--- a/go/test/endtoend/reparent/newfeaturetest/reparent_test.go
+++ b/go/test/endtoend/reparent/newfeaturetest/reparent_test.go
@@ -19,7 +19,9 @@ package newfeaturetest
import (
"context"
"fmt"
+ "sync"
"testing"
+ "time"
"github.com/stretchr/testify/require"
@@ -177,3 +179,63 @@ func TestERSWithWriteInPromoteReplica(t *testing.T) {
_, err := utils.Ers(clusterInstance, tablets[3], "60s", "30s")
require.NoError(t, err, "ERS should not fail even if there is a sidecardb change")
}
+
+func TestBufferingWithMultipleDisruptions(t *testing.T) {
+ defer cluster.PanicHandler(t)
+ clusterInstance := utils.SetupShardedReparentCluster(t, "semi_sync")
+ defer utils.TeardownCluster(clusterInstance)
+
+ // Stop all VTOrc instances, so that they don't interfere with the test.
+ for _, vtorc := range clusterInstance.VTOrcProcesses {
+ err := vtorc.TearDown()
+ require.NoError(t, err)
+ }
+
+ // Start by reparenting all the shards to the first tablet.
+ keyspace := clusterInstance.Keyspaces[0]
+ shards := keyspace.Shards
+ for _, shard := range shards {
+ err := clusterInstance.VtctldClientProcess.PlannedReparentShard(keyspace.Name, shard.Name, shard.Vttablets[0].Alias)
+ require.NoError(t, err)
+ }
+
+ // We simulate start of external reparent or a PRS where the healthcheck update from the tablet gets lost in transit
+ // to vtgate by just setting the primary read only. This is also why we needed to shutdown all VTOrcs, so that they don't
+ // fix this.
+ utils.RunSQL(context.Background(), t, "set global read_only=1", shards[0].Vttablets[0])
+ utils.RunSQL(context.Background(), t, "set global read_only=1", shards[1].Vttablets[0])
+
+ wg := sync.WaitGroup{}
+ rowCount := 10
+ vtParams := clusterInstance.GetVTParams(keyspace.Name)
+ // We now spawn writes for a bunch of go routines.
+ // The ones going to shard 1 and shard 2 should block, since
+ // they're in the midst of a reparenting operation (as seen by the buffering code).
+ for i := 1; i <= rowCount; i++ {
+ wg.Add(1)
+ go func(i int) {
+ defer wg.Done()
+ conn, err := mysql.Connect(context.Background(), &vtParams)
+ if err != nil {
+ return
+ }
+ defer conn.Close()
+ _, err = conn.ExecuteFetch(utils.GetInsertQuery(i), 0, false)
+ require.NoError(t, err)
+ }(i)
+ }
+
+ // Now, run a PRS call on the last shard. This shouldn't unbuffer the queries that are buffered for shards 1 and 2
+ // since the disruption on the two shards hasn't stopped.
+ err := clusterInstance.VtctldClientProcess.PlannedReparentShard(keyspace.Name, shards[2].Name, shards[2].Vttablets[1].Alias)
+ require.NoError(t, err)
+ // We wait a second just to make sure the PRS changes are processed by the buffering logic in vtgate.
+ time.Sleep(1 * time.Second)
+ // Finally, we'll now make the 2 shards healthy again by running PRS.
+ err = clusterInstance.VtctldClientProcess.PlannedReparentShard(keyspace.Name, shards[0].Name, shards[0].Vttablets[1].Alias)
+ require.NoError(t, err)
+ err = clusterInstance.VtctldClientProcess.PlannedReparentShard(keyspace.Name, shards[1].Name, shards[1].Vttablets[1].Alias)
+ require.NoError(t, err)
+ // Wait for all the writes to have succeeded.
+ wg.Wait()
+}
diff --git a/go/test/endtoend/reparent/utils/utils.go b/go/test/endtoend/reparent/utils/utils.go
index 0d3eddc0464..2a51262557b 100644
--- a/go/test/endtoend/reparent/utils/utils.go
+++ b/go/test/endtoend/reparent/utils/utils.go
@@ -74,6 +74,53 @@ func SetupRangeBasedCluster(ctx context.Context, t *testing.T) *cluster.LocalPro
return setupCluster(ctx, t, ShardName, []string{cell1}, []int{2}, "semi_sync")
}
+// SetupShardedReparentCluster is used to setup a sharded cluster for testing
+func SetupShardedReparentCluster(t *testing.T, durability string) *cluster.LocalProcessCluster {
+ clusterInstance := cluster.NewCluster(cell1, Hostname)
+ // Start topo server
+ err := clusterInstance.StartTopo()
+ require.NoError(t, err)
+
+ clusterInstance.VtTabletExtraArgs = append(clusterInstance.VtTabletExtraArgs,
+ "--lock_tables_timeout", "5s",
+ // Fast health checks help find corner cases.
+ "--health_check_interval", "1s",
+ "--track_schema_versions=true",
+ "--queryserver_enable_online_ddl=false")
+ clusterInstance.VtGateExtraArgs = append(clusterInstance.VtGateExtraArgs,
+ "--enable_buffer",
+ // Long timeout in case failover is slow.
+ "--buffer_window", "10m",
+ "--buffer_max_failover_duration", "10m",
+ "--buffer_min_time_between_failovers", "20m",
+ )
+
+ // Start keyspace
+ keyspace := &cluster.Keyspace{
+ Name: KeyspaceName,
+ SchemaSQL: sqlSchema,
+ VSchema: `{"sharded": true, "vindexes": {"hash_index": {"type": "hash"}}, "tables": {"vt_insert_test": {"column_vindexes": [{"column": "id", "name": "hash_index"}]}}}`,
+ DurabilityPolicy: durability,
+ }
+ err = clusterInstance.StartKeyspace(*keyspace, []string{"-40", "40-80", "80-"}, 2, false)
+ require.NoError(t, err)
+
+ // Start Vtgate
+ err = clusterInstance.StartVtgate()
+ require.NoError(t, err)
+ return clusterInstance
+}
+
+// GetInsertQuery returns a built insert query to insert a row.
+func GetInsertQuery(idx int) string {
+ return fmt.Sprintf(insertSQL, idx, idx)
+}
+
+// GetSelectionQuery returns a built selection query read the data.
+func GetSelectionQuery() string {
+ return `select * from vt_insert_test`
+}
+
// TeardownCluster is used to teardown the reparent cluster. When
// run in a CI environment -- which is considered true when the
// "CI" env variable is set to "true" -- the teardown also removes
diff --git a/go/vt/discovery/fake_healthcheck.go b/go/vt/discovery/fake_healthcheck.go
index d1bde350276..6ae7ee105c2 100644
--- a/go/vt/discovery/fake_healthcheck.go
+++ b/go/vt/discovery/fake_healthcheck.go
@@ -172,6 +172,21 @@ func (fhc *FakeHealthCheck) SetTabletType(tablet *topodatapb.Tablet, tabletType
item.ts.Target.TabletType = tabletType
}
+// SetPrimaryTimestamp sets the primary timestamp for the given tablet
+func (fhc *FakeHealthCheck) SetPrimaryTimestamp(tablet *topodatapb.Tablet, timestamp int64) {
+ if fhc.ch == nil {
+ return
+ }
+ fhc.mu.Lock()
+ defer fhc.mu.Unlock()
+ key := TabletToMapKey(tablet)
+ item, isPresent := fhc.items[key]
+ if !isPresent {
+ return
+ }
+ item.ts.PrimaryTermStartTime = timestamp
+}
+
// Unsubscribe is not implemented.
func (fhc *FakeHealthCheck) Unsubscribe(c chan *TabletHealth) {
}
diff --git a/go/vt/discovery/keyspace_events.go b/go/vt/discovery/keyspace_events.go
index 3de31ea6d9a..1cb44184778 100644
--- a/go/vt/discovery/keyspace_events.go
+++ b/go/vt/discovery/keyspace_events.go
@@ -178,8 +178,12 @@ func (kss *keyspaceState) beingResharded(currentShard string) bool {
}
type shardState struct {
- target *querypb.Target
- serving bool
+ target *querypb.Target
+ serving bool
+ // waitForReparent is used to tell the keyspace event watcher
+ // that this shard should be marked serving only after a reparent
+ // operation has succeeded.
+ waitForReparent bool
externallyReparented int64
currentPrimary *topodatapb.TabletAlias
}
@@ -368,8 +372,34 @@ func (kss *keyspaceState) onHealthCheck(th *TabletHealth) {
// if the shard went from serving to not serving, or the other way around, the keyspace
// is undergoing an availability event
if sstate.serving != th.Serving {
- sstate.serving = th.Serving
kss.consistent = false
+ switch {
+ case th.Serving && sstate.waitForReparent:
+ // While waiting for a reparent, if we receive a serving primary,
+ // we should check if the primary term start time is greater than the externally reparented time.
+ // We mark the shard serving only if it is. This is required so that we don't prematurely stop
+ // buffering for PRS, or TabletExternallyReparented, after seeing a serving healthcheck from the
+ // same old primary tablet that has already been turned read-only.
+ if th.PrimaryTermStartTime > sstate.externallyReparented {
+ sstate.waitForReparent = false
+ sstate.serving = true
+ }
+ case th.Serving && !sstate.waitForReparent:
+ sstate.serving = true
+ case !th.Serving:
+ sstate.serving = false
+ }
+ }
+ if !th.Serving {
+ // Once we have seen a non-serving primary healthcheck, there is no need for us to explicitly wait
+ // for a reparent to happen. We use waitForReparent to ensure that we don't prematurely stop
+ // buffering when we receive a serving healthcheck from the primary that is being demoted.
+ // However, if we receive a non-serving check, then we know that we won't receive any more serving
+ // health checks until reparent finishes. Specifically, this helps us when PRS fails, but
+ // stops gracefully because the new candidate couldn't get caught up in time. In this case, we promote
+ // the previous primary back. Without turning off waitForReparent here, we wouldn't be able to stop
+ // buffering for that case.
+ sstate.waitForReparent = false
}
// if the primary for this shard has been externally reparented, we're undergoing a failover,
@@ -784,3 +814,36 @@ func (kew *KeyspaceEventWatcher) WaitForConsistentKeyspaces(ctx context.Context,
}
}
}
+
+// MarkShardNotServing marks the given shard not serving.
+// We use this when we start buffering for a given shard. This helps
+// coordinate between the sharding logic and the keyspace event watcher.
+// We take in a boolean as well to tell us whether this error is because
+// a reparent is ongoing. If it is, we also mark the shard to wait for a reparent.
+// The return argument is whether the shard was found and marked not serving successfully or not.
+func (kew *KeyspaceEventWatcher) MarkShardNotServing(ctx context.Context, keyspace string, shard string, isReparentErr bool) bool {
+ kss := kew.getKeyspaceStatus(ctx, keyspace)
+ if kss == nil {
+ // Only happens if the keyspace was deleted.
+ return false
+ }
+ kss.mu.Lock()
+ defer kss.mu.Unlock()
+ sstate := kss.shards[shard]
+ if sstate == nil {
+ // This only happens if the shard is deleted, or if
+ // the keyspace event watcher hasn't seen the shard at all.
+ return false
+ }
+ // Mark the keyspace inconsistent and the shard not serving.
+ kss.consistent = false
+ sstate.serving = false
+ if isReparentErr {
+ // If the error was triggered because a reparent operation has started.
+ // We mark the shard to wait for a reparent to finish before marking it serving.
+ // This is required to prevent premature stopping of buffering if we receive
+ // a serving healthcheck from a primary that is being demoted.
+ sstate.waitForReparent = true
+ }
+ return true
+}
diff --git a/go/vt/discovery/keyspace_events_test.go b/go/vt/discovery/keyspace_events_test.go
index df5696841f7..21e0167e5cf 100644
--- a/go/vt/discovery/keyspace_events_test.go
+++ b/go/vt/discovery/keyspace_events_test.go
@@ -414,6 +414,234 @@ func TestWaitForConsistentKeyspaces(t *testing.T) {
}
}
+func TestOnHealthCheck(t *testing.T) {
+ testcases := []struct {
+ name string
+ ss *shardState
+ th *TabletHealth
+ wantServing bool
+ wantWaitForReparent bool
+ wantExternallyReparented int64
+ wantUID uint32
+ }{
+ {
+ name: "Non primary tablet health ignored",
+ ss: &shardState{
+ serving: false,
+ waitForReparent: false,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_REPLICA,
+ },
+ Serving: true,
+ },
+ wantServing: false,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 10,
+ wantUID: 1,
+ }, {
+ name: "Serving primary seen in non-serving shard",
+ ss: &shardState{
+ serving: false,
+ waitForReparent: false,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: true,
+ PrimaryTermStartTime: 20,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 2,
+ },
+ },
+ },
+ wantServing: true,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 20,
+ wantUID: 2,
+ }, {
+ name: "New serving primary seen while waiting for reparent",
+ ss: &shardState{
+ serving: false,
+ waitForReparent: true,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: true,
+ PrimaryTermStartTime: 20,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 2,
+ },
+ },
+ },
+ wantServing: true,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 20,
+ wantUID: 2,
+ }, {
+ name: "Old serving primary seen while waiting for reparent",
+ ss: &shardState{
+ serving: false,
+ waitForReparent: true,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: true,
+ PrimaryTermStartTime: 10,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ },
+ wantServing: false,
+ wantWaitForReparent: true,
+ wantExternallyReparented: 10,
+ wantUID: 1,
+ }, {
+ name: "Old non-serving primary seen while waiting for reparent",
+ ss: &shardState{
+ serving: false,
+ waitForReparent: true,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: false,
+ PrimaryTermStartTime: 10,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ },
+ wantServing: false,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 10,
+ wantUID: 1,
+ }, {
+ name: "New serving primary while already serving",
+ ss: &shardState{
+ serving: true,
+ waitForReparent: false,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: true,
+ PrimaryTermStartTime: 20,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 2,
+ },
+ },
+ },
+ wantServing: true,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 20,
+ wantUID: 2,
+ }, {
+ name: "Primary goes non serving",
+ ss: &shardState{
+ serving: true,
+ waitForReparent: false,
+ externallyReparented: 10,
+ currentPrimary: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ th: &TabletHealth{
+ Target: &querypb.Target{
+ TabletType: topodatapb.TabletType_PRIMARY,
+ },
+ Serving: false,
+ PrimaryTermStartTime: 10,
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: testCell,
+ Uid: 1,
+ },
+ },
+ },
+ wantServing: false,
+ wantWaitForReparent: false,
+ wantExternallyReparented: 10,
+ wantUID: 1,
+ },
+ }
+
+ ksName := "ks"
+ shard := "-80"
+ kss := &keyspaceState{
+ mu: sync.Mutex{},
+ keyspace: ksName,
+ shards: make(map[string]*shardState),
+ }
+ // Adding this so that we don't run any topo calls from ensureConsistentLocked.
+ kss.moveTablesState = &MoveTablesState{
+ Typ: MoveTablesRegular,
+ State: MoveTablesSwitching,
+ }
+ for _, tt := range testcases {
+ t.Run(tt.name, func(t *testing.T) {
+ kss.shards[shard] = tt.ss
+ tt.th.Target.Keyspace = ksName
+ tt.th.Target.Shard = shard
+ kss.onHealthCheck(tt.th)
+ require.Equal(t, tt.wantServing, tt.ss.serving)
+ require.Equal(t, tt.wantWaitForReparent, tt.ss.waitForReparent)
+ require.Equal(t, tt.wantExternallyReparented, tt.ss.externallyReparented)
+ require.Equal(t, tt.wantUID, tt.ss.currentPrimary.Uid)
+ })
+ }
+}
+
type fakeTopoServer struct {
}
diff --git a/go/vt/vtgate/buffer/buffer.go b/go/vt/vtgate/buffer/buffer.go
index 260fb272544..dec83e2c78c 100644
--- a/go/vt/vtgate/buffer/buffer.go
+++ b/go/vt/vtgate/buffer/buffer.go
@@ -94,6 +94,18 @@ func CausedByFailover(err error) bool {
return isFailover
}
+// isErrorDueToReparenting is a stronger check than CausedByFailover, meant to return
+// if the failure is caused because of a reparent.
+func isErrorDueToReparenting(err error) bool {
+ if vterrors.Code(err) != vtrpcpb.Code_CLUSTER_EVENT {
+ return false
+ }
+ if strings.Contains(err.Error(), ClusterEventReshardingInProgress) {
+ return false
+ }
+ return true
+}
+
// for debugging purposes
func getReason(err error) string {
for _, ce := range ClusterEvents {
@@ -175,7 +187,7 @@ func (b *Buffer) GetConfig() *Config {
// It returns an error if buffering failed (e.g. buffer full).
// If it does not return an error, it may return a RetryDoneFunc which must be
// called after the request was retried.
-func (b *Buffer) WaitForFailoverEnd(ctx context.Context, keyspace, shard string, err error) (RetryDoneFunc, error) {
+func (b *Buffer) WaitForFailoverEnd(ctx context.Context, keyspace, shard string, kev *discovery.KeyspaceEventWatcher, err error) (RetryDoneFunc, error) {
// If an err is given, it must be related to a failover.
// We never buffer requests with other errors.
if err != nil && !CausedByFailover(err) {
@@ -192,7 +204,7 @@ func (b *Buffer) WaitForFailoverEnd(ctx context.Context, keyspace, shard string,
requestsSkipped.Add([]string{keyspace, shard, skippedDisabled}, 1)
return nil, nil
}
- return sb.waitForFailoverEnd(ctx, keyspace, shard, err)
+ return sb.waitForFailoverEnd(ctx, keyspace, shard, kev, err)
}
func (b *Buffer) HandleKeyspaceEvent(ksevent *discovery.KeyspaceEvent) {
diff --git a/go/vt/vtgate/buffer/buffer_helper_test.go b/go/vt/vtgate/buffer/buffer_helper_test.go
index 2deb460fc39..1276f0cd751 100644
--- a/go/vt/vtgate/buffer/buffer_helper_test.go
+++ b/go/vt/vtgate/buffer/buffer_helper_test.go
@@ -50,7 +50,7 @@ func issueRequestAndBlockRetry(ctx context.Context, t *testing.T, b *Buffer, err
bufferingStopped := make(chan error)
go func() {
- retryDone, err := b.WaitForFailoverEnd(ctx, keyspace, shard, failoverErr)
+ retryDone, err := b.WaitForFailoverEnd(ctx, keyspace, shard, nil, failoverErr)
if err != nil {
bufferingStopped <- err
}
diff --git a/go/vt/vtgate/buffer/buffer_test.go b/go/vt/vtgate/buffer/buffer_test.go
index c730a8336d1..fc326ce0ce5 100644
--- a/go/vt/vtgate/buffer/buffer_test.go
+++ b/go/vt/vtgate/buffer/buffer_test.go
@@ -72,6 +72,32 @@ var (
}
)
+func TestIsErrorDueToReparenting(t *testing.T) {
+ testcases := []struct {
+ err error
+ want bool
+ }{
+ {
+ err: vterrors.Errorf(vtrpcpb.Code_CLUSTER_EVENT, ClusterEventReshardingInProgress),
+ want: false,
+ },
+ {
+ err: vterrors.Errorf(vtrpcpb.Code_CLUSTER_EVENT, ClusterEventReparentInProgress),
+ want: true,
+ },
+ {
+ err: vterrors.Errorf(vtrpcpb.Code_CLUSTER_EVENT, "The MySQL server is running with the --super-read-only option"),
+ want: true,
+ },
+ }
+ for _, tt := range testcases {
+ t.Run(tt.err.Error(), func(t *testing.T) {
+ got := isErrorDueToReparenting(tt.err)
+ assert.Equal(t, tt.want, got)
+ })
+ }
+}
+
func TestBuffering(t *testing.T) {
testAllImplementations(t, func(t *testing.T, fail failover) {
testBuffering1WithOptions(t, fail, 1)
@@ -120,7 +146,7 @@ func testBuffering1WithOptions(t *testing.T, fail failover, concurrency int) {
}
// Subsequent requests with errors not related to the failover are not buffered.
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nonFailoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, nonFailoverErr); err != nil || retryDone != nil {
t.Fatalf("requests with non-failover errors must never be buffered. err: %v retryDone: %v", err, retryDone)
}
@@ -168,7 +194,7 @@ func testBuffering1WithOptions(t *testing.T, fail failover, concurrency int) {
}
// Second failover: Buffering is skipped because last failover is too recent.
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("subsequent failovers must be skipped due to -buffer_min_time_between_failovers setting. err: %v retryDone: %v", err, retryDone)
}
if got, want := requestsSkipped.Counts()[statsKeyJoinedLastFailoverTooRecent], int64(1); got != want {
@@ -226,7 +252,7 @@ func testDryRun1(t *testing.T, fail failover) {
b := New(cfg)
// Request does not get buffered.
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("requests must not be buffered during dry-run. err: %v retryDone: %v", err, retryDone)
}
// But the internal state changes though.
@@ -272,10 +298,10 @@ func testPassthrough1(t *testing.T, fail failover) {
b := New(cfg)
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, nil); err != nil || retryDone != nil {
t.Fatalf("requests with no error must never be buffered. err: %v retryDone: %v", err, retryDone)
}
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nonFailoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, nonFailoverErr); err != nil || retryDone != nil {
t.Fatalf("requests with non-failover errors must never be buffered. err: %v retryDone: %v", err, retryDone)
}
@@ -311,7 +337,7 @@ func testLastReparentTooRecentBufferingSkipped1(t *testing.T, fail failover) {
now = now.Add(1 * time.Second)
fail(b, newPrimary, keyspace, shard, now)
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("requests where the failover end was recently detected before the start must not be buffered. err: %v retryDone: %v", err, retryDone)
}
if err := waitForPoolSlots(b, cfg.Size); err != nil {
@@ -408,10 +434,10 @@ func testPassthroughDuringDrain1(t *testing.T, fail failover) {
}
// Requests during the drain will be passed through and not buffered.
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, nil); err != nil || retryDone != nil {
t.Fatalf("requests with no error must not be buffered during a drain. err: %v retryDone: %v", err, retryDone)
}
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, shard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("requests with failover errors must not be buffered during a drain. err: %v retryDone: %v", err, retryDone)
}
@@ -443,7 +469,7 @@ func testPassthroughIgnoredKeyspaceOrShard1(t *testing.T, fail failover) {
b := New(cfg)
ignoredKeyspace := "ignored_ks"
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), ignoredKeyspace, shard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), ignoredKeyspace, shard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("requests for ignored keyspaces must not be buffered. err: %v retryDone: %v", err, retryDone)
}
statsKeyJoined := strings.Join([]string{ignoredKeyspace, shard, skippedDisabled}, ".")
@@ -452,7 +478,7 @@ func testPassthroughIgnoredKeyspaceOrShard1(t *testing.T, fail failover) {
}
ignoredShard := "ff-"
- if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, ignoredShard, failoverErr); err != nil || retryDone != nil {
+ if retryDone, err := b.WaitForFailoverEnd(context.Background(), keyspace, ignoredShard, nil, failoverErr); err != nil || retryDone != nil {
t.Fatalf("requests for ignored shards must not be buffered. err: %v retryDone: %v", err, retryDone)
}
if err := waitForPoolSlots(b, cfg.Size); err != nil {
@@ -634,7 +660,7 @@ func testEvictionNotPossible1(t *testing.T, fail failover) {
// Newer requests of the second failover cannot evict anything because
// they have no entries buffered.
- retryDone, bufferErr := b.WaitForFailoverEnd(context.Background(), keyspace, shard2, failoverErr)
+ retryDone, bufferErr := b.WaitForFailoverEnd(context.Background(), keyspace, shard2, nil, failoverErr)
if bufferErr == nil || retryDone != nil {
t.Fatalf("buffer should have returned an error because it's full: err: %v retryDone: %v", bufferErr, retryDone)
}
diff --git a/go/vt/vtgate/buffer/shard_buffer.go b/go/vt/vtgate/buffer/shard_buffer.go
index b0764c2ad91..e1f02bb7f0e 100644
--- a/go/vt/vtgate/buffer/shard_buffer.go
+++ b/go/vt/vtgate/buffer/shard_buffer.go
@@ -137,7 +137,7 @@ func (sb *shardBuffer) disabled() bool {
return sb.mode == bufferModeDisabled
}
-func (sb *shardBuffer) waitForFailoverEnd(ctx context.Context, keyspace, shard string, err error) (RetryDoneFunc, error) {
+func (sb *shardBuffer) waitForFailoverEnd(ctx context.Context, keyspace, shard string, kev *discovery.KeyspaceEventWatcher, err error) (RetryDoneFunc, error) {
// We assume if err != nil then it's always caused by a failover.
// Other errors must be filtered at higher layers.
failoverDetected := err != nil
@@ -211,7 +211,11 @@ func (sb *shardBuffer) waitForFailoverEnd(ctx context.Context, keyspace, shard s
return nil, nil
}
- sb.startBufferingLocked(err)
+ // Try to start buffering. If we're unsuccessful, then we exit early.
+ if !sb.startBufferingLocked(ctx, kev, err) {
+ sb.mu.Unlock()
+ return nil, nil
+ }
}
if sb.mode == bufferModeDryRun {
@@ -255,7 +259,16 @@ func (sb *shardBuffer) shouldBufferLocked(failoverDetected bool) bool {
panic("BUG: All possible states must be covered by the switch expression above.")
}
-func (sb *shardBuffer) startBufferingLocked(err error) {
+func (sb *shardBuffer) startBufferingLocked(ctx context.Context, kev *discovery.KeyspaceEventWatcher, err error) bool {
+ if kev != nil {
+ if !kev.MarkShardNotServing(ctx, sb.keyspace, sb.shard, isErrorDueToReparenting(err)) {
+ // We failed to mark the shard as not serving. Do not buffer the request.
+ // This can happen if the keyspace has been deleted or if the keyspace even watcher
+ // hasn't yet seen the shard. Keyspace event watcher might not stop buffering for this
+ // request at all until it times out. It's better to not buffer this request.
+ return false
+ }
+ }
// Reset monitoring data from previous failover.
lastRequestsInFlightMax.Set(sb.statsKey, 0)
lastRequestsDryRunMax.Set(sb.statsKey, 0)
@@ -281,6 +294,7 @@ func (sb *shardBuffer) startBufferingLocked(err error) {
sb.buf.config.MaxFailoverDuration,
errorsanitizer.NormalizeError(err.Error()),
)
+ return true
}
// logErrorIfStateNotLocked logs an error if the current state is not "state".
diff --git a/go/vt/vtgate/buffer/variables_test.go b/go/vt/vtgate/buffer/variables_test.go
index a0640bde9e4..30d2426c639 100644
--- a/go/vt/vtgate/buffer/variables_test.go
+++ b/go/vt/vtgate/buffer/variables_test.go
@@ -51,7 +51,7 @@ func TestVariablesAreInitialized(t *testing.T) {
// Create a new buffer and make a call which will create the shardBuffer object.
// After that, the variables should be initialized for that shard.
b := New(NewDefaultConfig())
- _, err := b.WaitForFailoverEnd(context.Background(), "init_test", "0", nil /* err */)
+ _, err := b.WaitForFailoverEnd(context.Background(), "init_test", "0", nil, nil)
if err != nil {
t.Fatalf("buffer should just passthrough and not return an error: %v", err)
}
diff --git a/go/vt/vtgate/tabletgateway.go b/go/vt/vtgate/tabletgateway.go
index 7ed10d3813b..c36c6981fa2 100644
--- a/go/vt/vtgate/tabletgateway.go
+++ b/go/vt/vtgate/tabletgateway.go
@@ -310,7 +310,7 @@ func (gw *TabletGateway) withRetry(ctx context.Context, target *querypb.Target,
// b) no transaction was created yet.
if gw.buffer != nil && !bufferedOnce && !inTransaction && target.TabletType == topodatapb.TabletType_PRIMARY {
// The next call blocks if we should buffer during a failover.
- retryDone, bufferErr := gw.buffer.WaitForFailoverEnd(ctx, target.Keyspace, target.Shard, err)
+ retryDone, bufferErr := gw.buffer.WaitForFailoverEnd(ctx, target.Keyspace, target.Shard, gw.kev, err)
// Request may have been buffered.
if retryDone != nil {
diff --git a/go/vt/vtgate/tabletgateway_flaky_test.go b/go/vt/vtgate/tabletgateway_flaky_test.go
index e74f613b682..d136542d176 100644
--- a/go/vt/vtgate/tabletgateway_flaky_test.go
+++ b/go/vt/vtgate/tabletgateway_flaky_test.go
@@ -234,6 +234,7 @@ func TestGatewayBufferingWhileReparenting(t *testing.T) {
hc.SetTabletType(primaryTablet, topodatapb.TabletType_REPLICA)
hc.Broadcast(primaryTablet)
hc.SetTabletType(replicaTablet, topodatapb.TabletType_PRIMARY)
+ hc.SetPrimaryTimestamp(replicaTablet, 100) // We set a higher timestamp than before to simulate a PRS.
hc.SetServing(replicaTablet, true)
hc.Broadcast(replicaTablet)
@@ -245,7 +246,7 @@ outer:
require.Fail(t, "timed out - could not verify the new primary")
case <-time.After(10 * time.Millisecond):
newPrimary, shouldBuffer := tg.kev.ShouldStartBufferingForTarget(ctx, target)
- if newPrimary != nil && newPrimary.Uid == 1 && !shouldBuffer {
+ if newPrimary != nil && newPrimary.Uid == replicaTablet.Alias.Uid && !shouldBuffer {
break outer
}
}
From 8952b5af4e10c42b6ef366f2118428d31fe6eb29 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 11 Nov 2024 12:48:20 +0200
Subject: [PATCH 49/78] Online DDL: fix defer function, potential connection
pool exhaustion (#17207)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/vttablet/onlineddl/executor.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index e140abfdc6e..af08347c545 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -967,13 +967,13 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
if err != nil {
return vterrors.Wrapf(err, "failed getting locking connection")
}
+ defer lockConn.Recycle()
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
// The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*migrationCutOverThreshold)
if err != nil {
return vterrors.Wrapf(err, "failed setting lock_wait_timeout on locking connection")
}
- defer lockConn.Recycle()
defer lockConnRestoreLockWaitTimeout()
defer lockConn.Conn.Exec(ctx, sqlUnlockTables, 1, false)
From 4c248416b89e39306303c869379f6ac1750ab85f Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Mon, 11 Nov 2024 09:50:02 -0600
Subject: [PATCH 50/78] Limit rare race condition in `topo.Server` (#17165)
Signed-off-by: Florent Poinsard
---
go/cmd/vttablet/cli/cli_test.go | 3 --
go/vt/topo/cell_info.go | 19 ++++++++++-
go/vt/topo/cells_aliases.go | 16 +++++++++
go/vt/topo/external_vitess_cluster.go | 17 +++++++++-
go/vt/topo/keyspace.go | 28 ++++++++++++++++
go/vt/topo/locks.go | 7 ++++
go/vt/topo/metadata.go | 16 +++++++++
go/vt/topo/server.go | 7 ++--
go/vt/topo/shard.go | 20 ++++++++++++
go/vt/topo/vschema.go | 47 +++++++++++++++++++++++++++
10 files changed, 172 insertions(+), 8 deletions(-)
diff --git a/go/cmd/vttablet/cli/cli_test.go b/go/cmd/vttablet/cli/cli_test.go
index 603234b3c64..c88ebd1b8ae 100644
--- a/go/cmd/vttablet/cli/cli_test.go
+++ b/go/cmd/vttablet/cli/cli_test.go
@@ -32,9 +32,6 @@ import (
// When starting, the TabletManager checks if it needs to restore, in tm.handleRestore but this step will
// fail if we do not provide a cnf file and if the flag --restore_from_backup is provided.
func TestRunFailsToStartTabletManager(t *testing.T) {
- // Skipping the test for now, the test is unveiling some race conditions in the code.
- // While working on a fix, this test will be skipped: https://github.com/vitessio/vitess/pull/17165
- t.Skip()
ts, factory := memorytopo.NewServerAndFactory(context.Background(), "cell")
topo.RegisterFactory("test", factory)
diff --git a/go/vt/topo/cell_info.go b/go/vt/topo/cell_info.go
index 4a8112084cb..960d0a8e0ae 100644
--- a/go/vt/topo/cell_info.go
+++ b/go/vt/topo/cell_info.go
@@ -46,6 +46,9 @@ func pathForCellInfo(cell string) string {
// GetCellInfoNames returns the names of the existing cells. They are
// sorted by name.
func (ts *Server) GetCellInfoNames(ctx context.Context) ([]string, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
entries, err := ts.globalCell.ListDir(ctx, CellsPath, false /*full*/)
switch {
case IsErrType(err, NoNode):
@@ -59,10 +62,10 @@ func (ts *Server) GetCellInfoNames(ctx context.Context) ([]string, error) {
// GetCellInfo reads a CellInfo from the global Conn.
func (ts *Server) GetCellInfo(ctx context.Context, cell string, strongRead bool) (*topodatapb.CellInfo, error) {
- conn := ts.globalCell
if ctx.Err() != nil {
return nil, ctx.Err()
}
+ conn := ts.globalCell
if !strongRead {
conn = ts.globalReadOnlyCell
}
@@ -83,6 +86,9 @@ func (ts *Server) GetCellInfo(ctx context.Context, cell string, strongRead bool)
// CreateCellInfo creates a new CellInfo with the provided content.
func (ts *Server) CreateCellInfo(ctx context.Context, cell string, ci *topodatapb.CellInfo) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
// Pack the content.
contents, err := ci.MarshalVT()
if err != nil {
@@ -103,6 +109,10 @@ func (ts *Server) CreateCellInfo(ctx context.Context, cell string, ci *topodatap
func (ts *Server) UpdateCellInfoFields(ctx context.Context, cell string, update func(*topodatapb.CellInfo) error) error {
filePath := pathForCellInfo(cell)
for {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
ci := &topodatapb.CellInfo{}
// Read the file, unpack the contents.
@@ -142,6 +152,9 @@ func (ts *Server) UpdateCellInfoFields(ctx context.Context, cell string, update
// We first try to make sure no Shard record points to the cell,
// but we'll continue regardless if 'force' is true.
func (ts *Server) DeleteCellInfo(ctx context.Context, cell string, force bool) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
srvKeyspaces, err := ts.GetSrvKeyspaceNames(ctx, cell)
switch {
case err == nil:
@@ -180,6 +193,10 @@ func (ts *Server) DeleteCellInfo(ctx context.Context, cell string, force bool) e
// TODO(alainjobart) once the cell map is migrated to this generic
// package, we can do better than this.
func (ts *Server) GetKnownCells(ctx context.Context) ([]string, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
// Note we use the global read-only cell here, as the result
// is not time sensitive.
entries, err := ts.globalReadOnlyCell.ListDir(ctx, CellsPath, false /*full*/)
diff --git a/go/vt/topo/cells_aliases.go b/go/vt/topo/cells_aliases.go
index 683fa08f6ba..4d5161ffe38 100644
--- a/go/vt/topo/cells_aliases.go
+++ b/go/vt/topo/cells_aliases.go
@@ -40,6 +40,9 @@ func pathForCellsAlias(alias string) string {
// GetCellsAliases returns the names of the existing cells. They are
// sorted by name.
func (ts *Server) GetCellsAliases(ctx context.Context, strongRead bool) (ret map[string]*topodatapb.CellsAlias, err error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
conn := ts.globalCell
if !strongRead {
conn = ts.globalReadOnlyCell
@@ -75,6 +78,9 @@ func (ts *Server) GetCellsAliases(ctx context.Context, strongRead bool) (ret map
// GetCellsAlias returns the CellsAlias that matches the given name.
func (ts *Server) GetCellsAlias(ctx context.Context, name string, strongRead bool) (*topodatapb.CellsAlias, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
conn := ts.globalCell
if !strongRead {
conn = ts.globalReadOnlyCell
@@ -97,6 +103,9 @@ func (ts *Server) GetCellsAlias(ctx context.Context, name string, strongRead boo
// DeleteCellsAlias deletes the specified CellsAlias
func (ts *Server) DeleteCellsAlias(ctx context.Context, alias string) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
ts.clearCellAliasesCache()
filePath := pathForCellsAlias(alias)
@@ -123,6 +132,9 @@ func (ts *Server) CreateCellsAlias(ctx context.Context, alias string, cellsAlias
}
// Save it.
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
filePath := pathForCellsAlias(alias)
_, err = ts.globalCell.Create(ctx, filePath, contents)
return err
@@ -134,6 +146,10 @@ func (ts *Server) UpdateCellsAlias(ctx context.Context, alias string, update fun
filePath := pathForCellsAlias(alias)
for {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
cellsAlias := &topodatapb.CellsAlias{}
// Read the file, unpack the contents.
diff --git a/go/vt/topo/external_vitess_cluster.go b/go/vt/topo/external_vitess_cluster.go
index a7d0a69bf2c..936a30a4533 100644
--- a/go/vt/topo/external_vitess_cluster.go
+++ b/go/vt/topo/external_vitess_cluster.go
@@ -47,6 +47,9 @@ func GetExternalVitessClusterPath(clusterName string) string {
// CreateExternalVitessCluster creates a topo record for the passed vitess cluster
func (ts *Server) CreateExternalVitessCluster(ctx context.Context, clusterName string, value *topodatapb.ExternalVitessCluster) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
data, err := value.MarshalVT()
if err != nil {
return err
@@ -66,6 +69,9 @@ func (ts *Server) CreateExternalVitessCluster(ctx context.Context, clusterName s
// GetExternalVitessCluster returns a topo record for the named vitess cluster
func (ts *Server) GetExternalVitessCluster(ctx context.Context, clusterName string) (*ExternalVitessClusterInfo, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
data, version, err := ts.globalCell.Get(ctx, GetExternalVitessClusterPath(clusterName))
switch {
case IsErrType(err, NoNode):
@@ -88,7 +94,10 @@ func (ts *Server) GetExternalVitessCluster(ctx context.Context, clusterName stri
// UpdateExternalVitessCluster updates the topo record for the named vitess cluster
func (ts *Server) UpdateExternalVitessCluster(ctx context.Context, vc *ExternalVitessClusterInfo) error {
- //FIXME: check for cluster lock
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+ // FIXME: check for cluster lock
data, err := vc.ExternalVitessCluster.MarshalVT()
if err != nil {
return err
@@ -109,6 +118,9 @@ func (ts *Server) UpdateExternalVitessCluster(ctx context.Context, vc *ExternalV
// DeleteExternalVitessCluster deletes the topo record for the named vitess cluster
func (ts *Server) DeleteExternalVitessCluster(ctx context.Context, clusterName string) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
if err := ts.globalCell.Delete(ctx, GetExternalVitessClusterPath(clusterName), nil); err != nil {
return err
}
@@ -123,6 +135,9 @@ func (ts *Server) DeleteExternalVitessCluster(ctx context.Context, clusterName s
// GetExternalVitessClusters returns the list of external vitess clusters in the topology.
func (ts *Server) GetExternalVitessClusters(ctx context.Context) ([]string, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
children, err := ts.globalCell.ListDir(ctx, GetExternalVitessClusterDir(), false /*full*/)
switch {
case err == nil:
diff --git a/go/vt/topo/keyspace.go b/go/vt/topo/keyspace.go
index 08b1c59f4cc..743d8fd6dc0 100755
--- a/go/vt/topo/keyspace.go
+++ b/go/vt/topo/keyspace.go
@@ -88,6 +88,10 @@ func ValidateKeyspaceName(name string) error {
// CreateKeyspace wraps the underlying Conn.Create
// and dispatches the event.
func (ts *Server) CreateKeyspace(ctx context.Context, keyspace string, value *topodatapb.Keyspace) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
if err := ValidateKeyspaceName(keyspace); err != nil {
return vterrors.Wrapf(err, "CreateKeyspace: %s", err)
}
@@ -112,6 +116,10 @@ func (ts *Server) CreateKeyspace(ctx context.Context, keyspace string, value *to
// GetKeyspace reads the given keyspace and returns it
func (ts *Server) GetKeyspace(ctx context.Context, keyspace string) (*KeyspaceInfo, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
+
if err := ValidateKeyspaceName(keyspace); err != nil {
return nil, vterrors.Wrapf(err, "GetKeyspace: %s", err)
}
@@ -169,6 +177,10 @@ func (ts *Server) GetThrottlerConfig(ctx context.Context, keyspace string) (*top
// UpdateKeyspace updates the keyspace data. It checks the keyspace is locked.
func (ts *Server) UpdateKeyspace(ctx context.Context, ki *KeyspaceInfo) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
// make sure it is locked first
if err := CheckKeyspaceLocked(ctx, ki.keyspace); err != nil {
return err
@@ -207,6 +219,10 @@ type FindAllShardsInKeyspaceOptions struct {
// If opt is non-nil, it is used to configure the method's behavior. Otherwise,
// the default options are used.
func (ts *Server) FindAllShardsInKeyspace(ctx context.Context, keyspace string, opt *FindAllShardsInKeyspaceOptions) (map[string]*ShardInfo, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
+
// Apply any necessary defaults.
if opt == nil {
opt = &FindAllShardsInKeyspaceOptions{}
@@ -372,6 +388,10 @@ func (ts *Server) GetOnlyShard(ctx context.Context, keyspace string) (*ShardInfo
// DeleteKeyspace wraps the underlying Conn.Delete
// and dispatches the event.
func (ts *Server) DeleteKeyspace(ctx context.Context, keyspace string) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
keyspacePath := path.Join(KeyspacesPath, keyspace, KeyspaceFile)
if err := ts.globalCell.Delete(ctx, keyspacePath, nil); err != nil {
return err
@@ -393,6 +413,10 @@ func (ts *Server) DeleteKeyspace(ctx context.Context, keyspace string) error {
// GetKeyspaces returns the list of keyspaces in the topology.
func (ts *Server) GetKeyspaces(ctx context.Context) ([]string, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
+
children, err := ts.globalCell.ListDir(ctx, KeyspacesPath, false /*full*/)
switch {
case err == nil:
@@ -406,6 +430,10 @@ func (ts *Server) GetKeyspaces(ctx context.Context) ([]string, error) {
// GetShardNames returns the list of shards in a keyspace.
func (ts *Server) GetShardNames(ctx context.Context, keyspace string) ([]string, error) {
+ if ctx.Err() != nil {
+ return nil, ctx.Err()
+ }
+
shardsPath := path.Join(KeyspacesPath, keyspace, ShardsPath)
children, err := ts.globalCell.ListDir(ctx, shardsPath, false /*full*/)
if IsErrType(err, NoNode) {
diff --git a/go/vt/topo/locks.go b/go/vt/topo/locks.go
index f46e5f06e4b..967d3f7f2e4 100644
--- a/go/vt/topo/locks.go
+++ b/go/vt/topo/locks.go
@@ -19,6 +19,7 @@ package topo
import (
"context"
"encoding/json"
+ "errors"
"os"
"os/user"
"sync"
@@ -175,6 +176,12 @@ func (l *Lock) lock(ctx context.Context, ts *Server, lt iTopoLock, opts ...LockO
return nil, err
}
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+ if ts.globalCell == nil {
+ return nil, errors.New("no global cell connection on the topo server")
+ }
switch l.Options.lockType {
case NonBlocking:
return ts.globalCell.TryLock(ctx, lt.Path(), j)
diff --git a/go/vt/topo/metadata.go b/go/vt/topo/metadata.go
index 4d24630a309..1c569f3fb10 100644
--- a/go/vt/topo/metadata.go
+++ b/go/vt/topo/metadata.go
@@ -28,6 +28,10 @@ import (
// UpsertMetadata sets the key/value in the metadata if it doesn't exist, otherwise it updates the content
func (ts *Server) UpsertMetadata(ctx context.Context, key string, val string) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
keyPath := path.Join(MetadataPath, key)
_, _, err := ts.globalCell.Get(ctx, keyPath)
@@ -52,6 +56,10 @@ func (ts *Server) UpsertMetadata(ctx context.Context, key string, val string) er
// GetMetadata retrieves all metadata value that matches the given key regular expression. If empty all values are returned.
func (ts *Server) GetMetadata(ctx context.Context, keyFilter string) (map[string]string, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
keys, err := ts.globalCell.ListDir(ctx, MetadataPath, false)
if err != nil {
return nil, err
@@ -77,6 +85,10 @@ func (ts *Server) GetMetadata(ctx context.Context, keyFilter string) (map[string
// DeleteMetadata deletes the key in the metadata
func (ts *Server) DeleteMetadata(ctx context.Context, key string) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
keyPath := path.Join(MetadataPath, key)
// nil version means that it will insert if keyPath does not exist
@@ -89,6 +101,10 @@ func (ts *Server) DeleteMetadata(ctx context.Context, key string) error {
}
func (ts *Server) getMetadata(ctx context.Context, key string) (string, error) {
+ if err := ctx.Err(); err != nil {
+ return "", err
+ }
+
keyPath := path.Join(MetadataPath, key)
contents, _, err := ts.globalCell.Get(ctx, keyPath)
if err != nil {
diff --git a/go/vt/topo/server.go b/go/vt/topo/server.go
index a0dba42006d..4a3c2e6bb27 100644
--- a/go/vt/topo/server.go
+++ b/go/vt/topo/server.go
@@ -262,11 +262,12 @@ func Open() *Server {
// ConnForCell returns a Conn object for the given cell.
// It caches Conn objects from previously requested cells.
func (ts *Server) ConnForCell(ctx context.Context, cell string) (Conn, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
// Global cell is the easy case.
if cell == GlobalCell {
- if ctx.Err() != nil {
- return nil, ctx.Err()
- }
return ts.globalCell, nil
}
diff --git a/go/vt/topo/shard.go b/go/vt/topo/shard.go
index 974a4fdbc6a..7df6dc64b88 100644
--- a/go/vt/topo/shard.go
+++ b/go/vt/topo/shard.go
@@ -165,6 +165,10 @@ func (si *ShardInfo) SetPrimaryTermStartTime(t time.Time) {
// GetShard is a high level function to read shard data.
// It generates trace spans.
func (ts *Server) GetShard(ctx context.Context, keyspace, shard string) (*ShardInfo, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
if err := ValidateKeyspaceName(keyspace); err != nil {
return nil, err
}
@@ -201,6 +205,10 @@ func (ts *Server) updateShard(ctx context.Context, si *ShardInfo) error {
span.Annotate("shard", si.shardName)
defer span.Finish()
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := si.Shard.MarshalVT()
if err != nil {
return err
@@ -252,6 +260,10 @@ func (ts *Server) UpdateShardFields(ctx context.Context, keyspace, shard string,
// This will lock the Keyspace, as we may be looking at other shard servedTypes.
// Using GetOrCreateShard is probably a better idea for most use cases.
func (ts *Server) CreateShard(ctx context.Context, keyspace, shard string) (err error) {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
if err := ValidateKeyspaceName(keyspace); err != nil {
return err
}
@@ -355,6 +367,10 @@ func (ts *Server) GetOrCreateShard(ctx context.Context, keyspace, shard string)
// DeleteShard wraps the underlying conn.Delete
// and dispatches the event.
func (ts *Server) DeleteShard(ctx context.Context, keyspace, shard string) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
shardPath := shardFilePath(keyspace, shard)
if err := ts.globalCell.Delete(ctx, shardPath, nil); err != nil {
return err
@@ -728,6 +744,10 @@ type WatchShardData struct {
// It has the same contract as conn.Watch, but it also unpacks the
// contents into a Shard object
func (ts *Server) WatchShard(ctx context.Context, keyspace, shard string) (*WatchShardData, <-chan *WatchShardData, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, nil, err
+ }
+
shardPath := shardFilePath(keyspace, shard)
ctx, cancel := context.WithCancel(ctx)
diff --git a/go/vt/topo/vschema.go b/go/vt/topo/vschema.go
index d9802da2c35..21192e1aacb 100644
--- a/go/vt/topo/vschema.go
+++ b/go/vt/topo/vschema.go
@@ -31,6 +31,10 @@ import (
// SaveVSchema saves a Vschema. A valid Vschema should be passed in. It does not verify its correctness.
// If the VSchema is empty, just remove it.
func (ts *Server) SaveVSchema(ctx context.Context, keyspace string, vschema *vschemapb.Keyspace) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
nodePath := path.Join(KeyspacesPath, keyspace, VSchemaFile)
data, err := vschema.MarshalVT()
if err != nil {
@@ -49,12 +53,19 @@ func (ts *Server) SaveVSchema(ctx context.Context, keyspace string, vschema *vsc
// DeleteVSchema delete the keyspace if it exists
func (ts *Server) DeleteVSchema(ctx context.Context, keyspace string) error {
log.Infof("deleting vschema for keyspace %s", keyspace)
+ if err := ctx.Err(); err != nil {
+ return err
+ }
nodePath := path.Join(KeyspacesPath, keyspace, VSchemaFile)
return ts.globalCell.Delete(ctx, nodePath, nil)
}
// GetVSchema fetches the vschema from the topo.
func (ts *Server) GetVSchema(ctx context.Context, keyspace string) (*vschemapb.Keyspace, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
nodePath := path.Join(KeyspacesPath, keyspace, VSchemaFile)
data, _, err := ts.globalCell.Get(ctx, nodePath)
if err != nil {
@@ -90,6 +101,10 @@ func (ts *Server) EnsureVSchema(ctx context.Context, keyspace string) error {
// SaveRoutingRules saves the routing rules into the topo.
func (ts *Server) SaveRoutingRules(ctx context.Context, routingRules *vschemapb.RoutingRules) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := routingRules.MarshalVT()
if err != nil {
return err
@@ -109,6 +124,10 @@ func (ts *Server) SaveRoutingRules(ctx context.Context, routingRules *vschemapb.
// GetRoutingRules fetches the routing rules from the topo.
func (ts *Server) GetRoutingRules(ctx context.Context) (*vschemapb.RoutingRules, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
rr := &vschemapb.RoutingRules{}
data, _, err := ts.globalCell.Get(ctx, RoutingRulesFile)
if err != nil {
@@ -126,6 +145,10 @@ func (ts *Server) GetRoutingRules(ctx context.Context) (*vschemapb.RoutingRules,
// SaveShardRoutingRules saves the shard routing rules into the topo.
func (ts *Server) SaveShardRoutingRules(ctx context.Context, shardRoutingRules *vschemapb.ShardRoutingRules) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := shardRoutingRules.MarshalVT()
if err != nil {
return err
@@ -144,6 +167,10 @@ func (ts *Server) SaveShardRoutingRules(ctx context.Context, shardRoutingRules *
// GetShardRoutingRules fetches the shard routing rules from the topo.
func (ts *Server) GetShardRoutingRules(ctx context.Context) (*vschemapb.ShardRoutingRules, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
srr := &vschemapb.ShardRoutingRules{}
data, _, err := ts.globalCell.Get(ctx, ShardRoutingRulesFile)
if err != nil {
@@ -161,6 +188,10 @@ func (ts *Server) GetShardRoutingRules(ctx context.Context) (*vschemapb.ShardRou
// CreateKeyspaceRoutingRules wraps the underlying Conn.Create.
func (ts *Server) CreateKeyspaceRoutingRules(ctx context.Context, value *vschemapb.KeyspaceRoutingRules) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := value.MarshalVT()
if err != nil {
return err
@@ -189,6 +220,10 @@ func (ts *Server) CreateKeyspaceRoutingRules(ctx context.Context, value *vschema
// we may come up with a better model and apply it to the keyspace routing rules
// as well.
func (ts *Server) SaveKeyspaceRoutingRules(ctx context.Context, rules *vschemapb.KeyspaceRoutingRules) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := rules.MarshalVT()
if err != nil {
return err
@@ -198,6 +233,10 @@ func (ts *Server) SaveKeyspaceRoutingRules(ctx context.Context, rules *vschemapb
}
func (ts *Server) GetKeyspaceRoutingRules(ctx context.Context) (*vschemapb.KeyspaceRoutingRules, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
rules := &vschemapb.KeyspaceRoutingRules{}
data, _, err := ts.globalCell.Get(ctx, ts.GetKeyspaceRoutingRulesPath())
if err != nil {
@@ -215,6 +254,10 @@ func (ts *Server) GetKeyspaceRoutingRules(ctx context.Context) (*vschemapb.Keysp
// GetMirrorRules fetches the mirror rules from the topo.
func (ts *Server) GetMirrorRules(ctx context.Context) (*vschemapb.MirrorRules, error) {
+ if err := ctx.Err(); err != nil {
+ return nil, err
+ }
+
rr := &vschemapb.MirrorRules{}
data, _, err := ts.globalCell.Get(ctx, MirrorRulesFile)
if err != nil {
@@ -232,6 +275,10 @@ func (ts *Server) GetMirrorRules(ctx context.Context) (*vschemapb.MirrorRules, e
// SaveMirrorRules saves the mirror rules into the topo.
func (ts *Server) SaveMirrorRules(ctx context.Context, mirrorRules *vschemapb.MirrorRules) error {
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+
data, err := mirrorRules.MarshalVT()
if err != nil {
return err
From 11c619ea1994ca9686659ab3ff40d64a7c5a895d Mon Sep 17 00:00:00 2001
From: Rohit Nayak <57520317+rohit-nayak-ps@users.noreply.github.com>
Date: Mon, 11 Nov 2024 17:37:06 +0100
Subject: [PATCH 51/78] VReplication Flaky Test fix: TestVtctldMigrateSharded
(#17182)
Signed-off-by: Rohit Nayak
---
...cluster_endtoend_vreplication_migrate.yml} | 10 +-
...tion_vtctldclient_vdiff2_movetables_tz.yml | 179 ++++++++++++++++++
test/ci_workflow_gen.go | 6 +-
test/config.json | 26 +--
4 files changed, 201 insertions(+), 20 deletions(-)
rename .github/workflows/{cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml => cluster_endtoend_vreplication_migrate.yml} (95%)
create mode 100644 .github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
diff --git a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml b/.github/workflows/cluster_endtoend_vreplication_migrate.yml
similarity index 95%
rename from .github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
rename to .github/workflows/cluster_endtoend_vreplication_migrate.yml
index e0cc2810c8c..6b6768eb676 100644
--- a/.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_migrate.yml
@@ -1,9 +1,9 @@
# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows"
-name: Cluster (vreplication_migrate_vdiff2_convert_tz)
+name: Cluster (vreplication_migrate)
on: [push, pull_request]
concurrency:
- group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_migrate_vdiff2_convert_tz)')
+ group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_migrate)')
cancel-in-progress: true
permissions: read-all
@@ -15,7 +15,7 @@ env:
jobs:
build:
- name: Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
+ name: Run endtoend tests on Cluster (vreplication_migrate)
runs-on: gh-hosted-runners-16cores-1
steps:
@@ -67,7 +67,7 @@ jobs:
- 'tools/**'
- 'config/**'
- 'bootstrap.sh'
- - '.github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml'
+ - '.github/workflows/cluster_endtoend_vreplication_migrate.yml'
- name: Set up Go
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
@@ -158,7 +158,7 @@ jobs:
EOF
# run the tests however you normally do, then produce a JUnit XML file
- eatmydata -- go run test.go -docker=false -follow -shard vreplication_migrate_vdiff2_convert_tz | tee -a output.txt | go-junit-report -set-exit-code > report.xml
+ eatmydata -- go run test.go -docker=false -follow -shard vreplication_migrate | tee -a output.txt | go-junit-report -set-exit-code > report.xml
- name: Print test output and Record test result in launchable if PR is not a draft
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()
diff --git a/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
new file mode 100644
index 00000000000..dd1eb76ca0e
--- /dev/null
+++ b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
@@ -0,0 +1,179 @@
+# DO NOT MODIFY: THIS FILE IS GENERATED USING "make generate_ci_workflows"
+
+name: Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)
+on: [push, pull_request]
+concurrency:
+ group: format('{0}-{1}', ${{ github.ref }}, 'Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)')
+ cancel-in-progress: true
+
+permissions: read-all
+
+env:
+ LAUNCHABLE_ORGANIZATION: "vitess"
+ LAUNCHABLE_WORKSPACE: "vitess-app"
+ GITHUB_PR_HEAD_SHA: "${{ github.event.pull_request.head.sha }}"
+
+jobs:
+ build:
+ name: Run endtoend tests on Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)
+ runs-on: gh-hosted-runners-16cores-1
+
+ steps:
+ - name: Skip CI
+ run: |
+ if [[ "${{contains( github.event.pull_request.labels.*.name, 'Skip CI')}}" == "true" ]]; then
+ echo "skipping CI due to the 'Skip CI' label"
+ exit 1
+ fi
+
+ - name: Check if workflow needs to be skipped
+ id: skip-workflow
+ run: |
+ skip='false'
+ if [[ "${{github.event.pull_request}}" == "" ]] && [[ "${{github.ref}}" != "refs/heads/main" ]] && [[ ! "${{github.ref}}" =~ ^refs/heads/release-[0-9]+\.[0-9]$ ]] && [[ ! "${{github.ref}}" =~ "refs/tags/.*" ]]; then
+ skip='true'
+ fi
+ echo Skip ${skip}
+ echo "skip-workflow=${skip}" >> $GITHUB_OUTPUT
+
+ PR_DATA=$(curl -s\
+ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
+ -H "Accept: application/vnd.github.v3+json" \
+ "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}")
+ draft=$(echo "$PR_DATA" | jq .draft -r)
+ echo "is_draft=${draft}" >> $GITHUB_OUTPUT
+
+ - name: Check out code
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+
+ - name: Check for changes in relevant files
+ if: steps.skip-workflow.outputs.skip-workflow == 'false'
+ uses: dorny/paths-filter@ebc4d7e9ebcb0b1eb21480bb8f43113e996ac77a # v3.0.1
+ id: changes
+ with:
+ token: ''
+ filters: |
+ end_to_end:
+ - 'go/**/*.go'
+ - 'go/vt/sidecardb/**/*.sql'
+ - 'go/test/endtoend/onlineddl/vrepl_suite/**'
+ - 'test.go'
+ - 'Makefile'
+ - 'build.env'
+ - 'go.sum'
+ - 'go.mod'
+ - 'proto/*.proto'
+ - 'tools/**'
+ - 'config/**'
+ - 'bootstrap.sh'
+ - '.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml'
+
+ - name: Set up Go
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
+ uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
+ with:
+ go-version-file: go.mod
+
+ - name: Set up python
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
+ uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1
+
+ - name: Tune the OS
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
+ run: |
+ # Limit local port range to not use ports that overlap with server side
+ # ports that we listen on.
+ sudo sysctl -w net.ipv4.ip_local_port_range="22768 65535"
+ # Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
+ echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
+ sudo sysctl -p /etc/sysctl.conf
+
+ - name: Get dependencies
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
+ run: |
+
+ # Get key to latest MySQL repo
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
+ # Setup MySQL 8.0
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
+ sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
+ sudo apt-get -qq update
+ # Install everything else we need, and configure
+ sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
+
+ sudo service mysql stop
+ sudo service etcd stop
+ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
+ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
+ go mod download
+
+ # install JUnit report formatter
+ go install github.com/vitessio/go-junit-report@HEAD
+
+ - name: Setup launchable dependencies
+ if: steps.skip-workflow.outputs.is_draft == 'false' && steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && github.base_ref == 'main'
+ run: |
+ # Get Launchable CLI installed. If you can, make it a part of the builder image to speed things up
+ pip3 install --user launchable~=1.0 > /dev/null
+
+ # verify that launchable setup is all correct.
+ launchable verify || true
+
+ # Tell Launchable about the build you are producing and testing
+ launchable record build --name "$GITHUB_RUN_ID" --no-commit-collection --source .
+
+ - name: Run cluster endtoend test
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
+ timeout-minutes: 45
+ run: |
+ # We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
+ # which musn't be more than 107 characters long.
+ export VTDATAROOT="/tmp/"
+ source build.env
+
+ set -exo pipefail
+
+ # Increase our open file descriptor limit as we could hit this
+ ulimit -n 65536
+ cat <<-EOF>>./config/mycnf/mysql8026.cnf
+ innodb_buffer_pool_dump_at_shutdown=OFF
+ innodb_buffer_pool_in_core_file=OFF
+ innodb_buffer_pool_load_at_startup=OFF
+ innodb_buffer_pool_size=64M
+ innodb_doublewrite=OFF
+ innodb_flush_log_at_trx_commit=0
+ innodb_flush_method=O_DIRECT
+ innodb_numa_interleave=ON
+ innodb_adaptive_hash_index=OFF
+ sync_binlog=0
+ sync_relay_log=0
+ performance_schema=OFF
+ slow-query-log=OFF
+ EOF
+
+ cat <<-EOF>>./config/mycnf/mysql8026.cnf
+ binlog-transaction-compression=ON
+ EOF
+
+ # run the tests however you normally do, then produce a JUnit XML file
+ eatmydata -- go run test.go -docker=false -follow -shard vreplication_vtctldclient_vdiff2_movetables_tz | tee -a output.txt | go-junit-report -set-exit-code > report.xml
+
+ - name: Print test output and Record test result in launchable if PR is not a draft
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()
+ run: |
+ if [[ "${{steps.skip-workflow.outputs.is_draft}}" == "false" ]]; then
+ # send recorded tests to launchable
+ launchable record tests --build "$GITHUB_RUN_ID" go-test . || true
+ fi
+
+ # print test output
+ cat output.txt
+
+ - name: Test Summary
+ if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' && always()
+ uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2.4
+ with:
+ paths: "report.xml"
+ show: "fail"
diff --git a/test/ci_workflow_gen.go b/test/ci_workflow_gen.go
index af8b0a84d47..7956c491408 100644
--- a/test/ci_workflow_gen.go
+++ b/test/ci_workflow_gen.go
@@ -116,7 +116,8 @@ var (
"vreplication_v2",
"vreplication_partial_movetables_and_materialize",
"vreplication_foreign_key_stress",
- "vreplication_migrate_vdiff2_convert_tz",
+ "vreplication_migrate",
+ "vreplication_vtctldclient_vdiff2_movetables_tz",
"vreplication_multi_tenant",
"schemadiff_vrepl",
"topo_connection_cache",
@@ -153,7 +154,8 @@ var (
"onlineddl_vrepl_stress_suite",
"onlineddl_vrepl_suite",
"vreplication_basic",
- "vreplication_migrate_vdiff2_convert_tz",
+ "vreplication_migrate",
+ "vreplication_vtctldclient_vdiff2_movetables_tz",
}
)
diff --git a/test/config.json b/test/config.json
index 7419f658385..c911232ce74 100644
--- a/test/config.json
+++ b/test/config.json
@@ -1328,21 +1328,12 @@
"RetryMax": 1,
"Tags": []
},
- "vreplication_vtctldclient_cli": {
- "File": "unused.go",
- "Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestVtctldclientCLI", "-timeout", "20m"],
- "Command": [],
- "Manual": false,
- "Shard": "vreplication_migrate_vdiff2_convert_tz",
- "RetryMax": 1,
- "Tags": []
- },
"vreplication_vtctl_migrate": {
"File": "unused.go",
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestVtctlMigrate", "-timeout", "30m"],
"Command": [],
"Manual": false,
- "Shard": "vreplication_migrate_vdiff2_convert_tz",
+ "Shard": "vreplication_migrate",
"RetryMax": 1,
"Tags": []
},
@@ -1351,7 +1342,7 @@
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestVtctldMigrate", "-timeout", "30m"],
"Command": [],
"Manual": false,
- "Shard": "vreplication_migrate_vdiff2_convert_tz",
+ "Shard": "vreplication_migrate",
"RetryMax": 1,
"Tags": []
},
@@ -1360,7 +1351,16 @@
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestVDiff2", "-timeout", "30m"],
"Command": [],
"Manual": false,
- "Shard": "vreplication_migrate_vdiff2_convert_tz",
+ "Shard": "vreplication_vtctldclient_vdiff2_movetables_tz",
+ "RetryMax": 1,
+ "Tags": []
+ },
+ "vreplication_vtctldclient_cli": {
+ "File": "unused.go",
+ "Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestVtctldclientCLI", "-timeout", "20m"],
+ "Command": [],
+ "Manual": false,
+ "Shard": "vreplication_vtctldclient_vdiff2_movetables_tz",
"RetryMax": 1,
"Tags": []
},
@@ -1369,7 +1369,7 @@
"Args": ["vitess.io/vitess/go/test/endtoend/vreplication", "-run", "TestMoveTablesTZ"],
"Command": [],
"Manual": false,
- "Shard": "vreplication_migrate_vdiff2_convert_tz",
+ "Shard": "vreplication_vtctldclient_vdiff2_movetables_tz",
"RetryMax": 1,
"Tags": []
},
From 41984cc9e2047d38633aa048853d21284bd3c2d7 Mon Sep 17 00:00:00 2001
From: Rohit Nayak <57520317+rohit-nayak-ps@users.noreply.github.com>
Date: Mon, 11 Nov 2024 17:37:30 +0100
Subject: [PATCH 52/78] VReplication fix Flaky e2e test TestMoveTablesBuffering
(#17180)
Signed-off-by: Rohit Nayak
---
go/test/endtoend/vreplication/movetables_buffering_test.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/go/test/endtoend/vreplication/movetables_buffering_test.go b/go/test/endtoend/vreplication/movetables_buffering_test.go
index eed96768fc5..7ef75390fbc 100644
--- a/go/test/endtoend/vreplication/movetables_buffering_test.go
+++ b/go/test/endtoend/vreplication/movetables_buffering_test.go
@@ -39,7 +39,7 @@ func TestMoveTablesBuffering(t *testing.T) {
catchup(t, targetTab1, workflowName, "MoveTables")
catchup(t, targetTab2, workflowName, "MoveTables")
- vdiffSideBySide(t, ksWorkflow, "")
+ vdiff(t, targetKs, workflowName, "", false, true, nil)
waitForLowLag(t, "customer", workflowName)
for i := 0; i < 10; i++ {
tstWorkflowSwitchReadsAndWrites(t)
From 221a663e3c0e5a49cf50d34fe1d3c8096a234613 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 11 Nov 2024 20:10:57 +0200
Subject: [PATCH 53/78] Online DDL: `ANALYZE` the shadow table before cut-over
(#17201)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
.../scheduler/onlineddl_scheduler_test.go | 11 +++++
.../onlineddl/vrepl/onlineddl_vrepl_test.go | 1 +
.../schema/onlineddl/schema_migrations.sql | 1 +
go/vt/vttablet/onlineddl/executor.go | 44 ++++++++++++++++---
go/vt/vttablet/onlineddl/schema.go | 3 ++
5 files changed, 54 insertions(+), 6 deletions(-)
diff --git a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
index b7e18e9af7c..dca28e52a8c 100644
--- a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
+++ b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
@@ -562,6 +562,16 @@ func testScheduler(t *testing.T) {
status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusRunning)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
})
+
+ t.Run("wait for ready_to_complete", func(t *testing.T) {
+ waitForReadyToComplete(t, t1uuid, true)
+ rs := onlineddl.ReadMigrations(t, &vtParams, t1uuid)
+ require.NotNil(t, rs)
+ for _, row := range rs.Named().Rows {
+ assert.True(t, row["shadow_analyzed_timestamp"].IsNull())
+ }
+ })
+
t.Run("check postpone_completion", func(t *testing.T) {
rs := onlineddl.ReadMigrations(t, &vtParams, t1uuid)
require.NotNil(t, rs)
@@ -582,6 +592,7 @@ func testScheduler(t *testing.T) {
for _, row := range rs.Named().Rows {
postponeCompletion := row.AsInt64("postpone_completion", 0)
assert.Equal(t, int64(0), postponeCompletion)
+ assert.False(t, row["shadow_analyzed_timestamp"].IsNull())
}
})
})
diff --git a/go/test/endtoend/onlineddl/vrepl/onlineddl_vrepl_test.go b/go/test/endtoend/onlineddl/vrepl/onlineddl_vrepl_test.go
index 161b1566680..92dfa2b0c4a 100644
--- a/go/test/endtoend/onlineddl/vrepl/onlineddl_vrepl_test.go
+++ b/go/test/endtoend/onlineddl/vrepl/onlineddl_vrepl_test.go
@@ -304,6 +304,7 @@ func TestVreplSchemaChanges(t *testing.T) {
for _, row := range rs.Named().Rows {
retainArtifactSeconds := row.AsInt64("retain_artifacts_seconds", 0)
assert.Equal(t, int64(-1), retainArtifactSeconds)
+ assert.False(t, row["shadow_analyzed_timestamp"].IsNull())
}
})
t.Run("successful online alter, vtctl", func(t *testing.T) {
diff --git a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
index 85d87edefc2..e0b4e27b180 100644
--- a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
+++ b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
@@ -72,6 +72,7 @@ CREATE TABLE IF NOT EXISTS schema_migrations
`is_immediate_operation` tinyint unsigned NOT NULL DEFAULT '0',
`reviewed_timestamp` timestamp NULL DEFAULT NULL,
`ready_to_complete_timestamp` timestamp NULL DEFAULT NULL,
+ `shadow_analyzed_timestamp` timestamp NULL DEFAULT NULL,
`removed_foreign_key_names` text NOT NULL,
`last_cutover_attempt_timestamp` timestamp NULL DEFAULT NULL,
`force_cutover` tinyint unsigned NOT NULL DEFAULT '0',
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index af08347c545..97a5597d71f 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -880,10 +880,11 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
// information about source tablet
- onlineDDL, _, err := e.readMigration(ctx, s.workflow)
+ onlineDDL, row, err := e.readMigration(ctx, s.workflow)
if err != nil {
return vterrors.Wrapf(err, "cutover: failed reading migration")
}
+ needsShadowTableAnalysis := row["shadow_analyzed_timestamp"].IsNull()
isVreplicationTestSuite := onlineDDL.StrategySetting().IsVreplicationTestSuite()
e.updateMigrationStage(ctx, onlineDDL.UUID, "starting cut-over")
@@ -942,12 +943,43 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// still have a record of the sentry table, and gcArtifacts() will still be able to take
// care of it in the future.
}()
- parsed := sqlparser.BuildParsedQuery(sqlCreateSentryTable, sentryTableName)
- if _, err := e.execQuery(ctx, parsed.Query); err != nil {
- return vterrors.Wrapf(err, "failed creating sentry table")
- }
- e.updateMigrationStage(ctx, onlineDDL.UUID, "sentry table created: %s", sentryTableName)
+ preparation := func() error {
+ preparationsConn, err := e.pool.Get(ctx, nil)
+ if err != nil {
+ return vterrors.Wrap(err, "failed getting preparation connection")
+ }
+ defer preparationsConn.Recycle()
+ // Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
+ // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
+ preparationConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, preparationsConn.Conn, 3*migrationCutOverThreshold)
+ if err != nil {
+ return vterrors.Wrap(err, "failed setting lock_wait_timeout on locking connection")
+ }
+ defer preparationConnRestoreLockWaitTimeout()
+
+ if needsShadowTableAnalysis {
+ // Run `ANALYZE TABLE` on the vreplication table so that it has up-to-date statistics at cut-over
+ parsed := sqlparser.BuildParsedQuery(sqlAnalyzeTable, vreplTable)
+ if _, err := preparationsConn.Conn.Exec(ctx, parsed.Query, -1, false); err != nil {
+ // Best effort only. Do not fail the mgiration if this fails.
+ _ = e.updateMigrationMessage(ctx, "failed ANALYZE shadow table", s.workflow)
+ } else {
+ _ = e.updateMigrationTimestamp(ctx, "shadow_analyzed_timestamp", s.workflow)
+ }
+ // This command will have blocked the table for writes, presumably only for a brief time. But this can cause
+ // vreplication to now lag. Thankfully we're gonna create the sentry table and waitForPos.
+ }
+ parsed := sqlparser.BuildParsedQuery(sqlCreateSentryTable, sentryTableName)
+ if _, err := preparationsConn.Conn.Exec(ctx, parsed.Query, 1, false); err != nil {
+ return vterrors.Wrapf(err, "failed creating sentry table")
+ }
+ e.updateMigrationStage(ctx, onlineDDL.UUID, "sentry table created: %s", sentryTableName)
+ return nil
+ }
+ if err := preparation(); err != nil {
+ return vterrors.Wrapf(err, "failed preparation")
+ }
postSentryPos, err := e.primaryPosition(ctx)
if err != nil {
return vterrors.Wrapf(err, "failed getting primary pos after sentry creation")
diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go
index a30ab6b3ed9..1b120dfa58c 100644
--- a/go/vt/vttablet/onlineddl/schema.go
+++ b/go/vt/vttablet/onlineddl/schema.go
@@ -270,6 +270,7 @@ const (
cancelled_timestamp=NULL,
completed_timestamp=NULL,
last_cutover_attempt_timestamp=NULL,
+ shadow_analyzed_timestamp=NULL,
cleanup_timestamp=NULL
WHERE
migration_status IN ('failed', 'cancelled')
@@ -291,6 +292,7 @@ const (
cancelled_timestamp=NULL,
completed_timestamp=NULL,
last_cutover_attempt_timestamp=NULL,
+ shadow_analyzed_timestamp=NULL,
cleanup_timestamp=NULL
WHERE
migration_status IN ('failed', 'cancelled')
@@ -441,6 +443,7 @@ const (
postpone_launch,
postpone_completion,
is_immediate_operation,
+ shadow_analyzed_timestamp,
reviewed_timestamp
FROM _vt.schema_migrations
WHERE
From 4980d6f70b7cf4e1a69c43b701efd1615c8bbfa0 Mon Sep 17 00:00:00 2001
From: vitess-bot <139342327+vitess-bot@users.noreply.github.com>
Date: Mon, 11 Nov 2024 13:00:29 -0600
Subject: [PATCH 54/78] [main] Upgrade the Golang version to `go1.23.3`
(#17199)
Signed-off-by: GitHub
Signed-off-by: Florent Poinsard
Co-authored-by: frouioui
Co-authored-by: Florent Poinsard
---
.github/workflows/update_golang_version.yml | 6 ++++--
Makefile | 2 +-
build.env | 2 +-
docker/bootstrap/CHANGELOG.md | 6 +++++-
docker/bootstrap/Dockerfile.common | 2 +-
docker/lite/Dockerfile | 2 +-
docker/lite/Dockerfile.percona80 | 2 +-
docker/vttestserver/Dockerfile.mysql80 | 2 +-
go.mod | 2 +-
test.go | 2 +-
test/templates/dockerfile.tpl | 2 +-
11 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/update_golang_version.yml b/.github/workflows/update_golang_version.yml
index 10ddbf9533c..503cad50ce8 100644
--- a/.github/workflows/update_golang_version.yml
+++ b/.github/workflows/update_golang_version.yml
@@ -15,7 +15,7 @@ jobs:
pull-requests: write
strategy:
matrix:
- branch: [ main, release-21.0, release-20.0, release-19.0, release-18.0 ]
+ branch: [ main, release-21.0, release-20.0, release-19.0 ]
name: Update Golang Version
runs-on: ubuntu-latest
steps:
@@ -39,8 +39,10 @@ jobs:
if [ ${{ matrix.branch }} == "main" ]; then
go run ./go/tools/go-upgrade/go-upgrade.go upgrade --main --allow-major-upgrade
- else
+ else if [ ${{ matrix.branch }} == "release-21.0" ]; then
go run ./go/tools/go-upgrade/go-upgrade.go upgrade
+ else
+ go run ./go/tools/go-upgrade/go-upgrade.go upgrade --workflow-update=false
fi
output=$(git status -s)
diff --git a/Makefile b/Makefile
index 02c5d7b8fc0..385a3238d47 100644
--- a/Makefile
+++ b/Makefile
@@ -286,7 +286,7 @@ $(PROTO_GO_OUTS): minimaltools install_protoc-gen-go proto/*.proto
# This rule builds the bootstrap images for all flavors.
DOCKER_IMAGES_FOR_TEST = mysql80 percona80
DOCKER_IMAGES = common $(DOCKER_IMAGES_FOR_TEST)
-BOOTSTRAP_VERSION=37
+BOOTSTRAP_VERSION=38
ensure_bootstrap_version:
find docker/ -type f -exec sed -i "s/^\(ARG bootstrap_version\)=.*/\1=${BOOTSTRAP_VERSION}/" {} \;
sed -i 's/\(^.*flag.String(\"bootstrap-version\",\) *\"[^\"]\+\"/\1 \"${BOOTSTRAP_VERSION}\"/' test.go
diff --git a/build.env b/build.env
index 4dbe682ac79..5c51b4dc660 100755
--- a/build.env
+++ b/build.env
@@ -17,7 +17,7 @@
source ./tools/shell_functions.inc
go version >/dev/null 2>&1 || fail "Go is not installed or is not in \$PATH. See https://vitess.io/contributing/build-from-source for install instructions."
-goversion_min 1.23.2 || echo "Go version reported: `go version`. Version 1.23.2+ recommended. See https://vitess.io/contributing/build-from-source for install instructions."
+goversion_min 1.23.3 || echo "Go version reported: `go version`. Version 1.23.3+ recommended. See https://vitess.io/contributing/build-from-source for install instructions."
mkdir -p dist
mkdir -p bin
diff --git a/docker/bootstrap/CHANGELOG.md b/docker/bootstrap/CHANGELOG.md
index 1a90bd1c37b..24ed5261df9 100644
--- a/docker/bootstrap/CHANGELOG.md
+++ b/docker/bootstrap/CHANGELOG.md
@@ -145,4 +145,8 @@ List of changes between bootstrap image versions.
## [37] - 2024-10-04
### Changes
-- Update build to golang 1.23.2
\ No newline at end of file
+- Update build to golang 1.23.2
+
+## [38] - 2024-11-10
+### Changes
+- Update build to golang 1.23.3
\ No newline at end of file
diff --git a/docker/bootstrap/Dockerfile.common b/docker/bootstrap/Dockerfile.common
index b95f3d37eda..f9654cc22d8 100644
--- a/docker/bootstrap/Dockerfile.common
+++ b/docker/bootstrap/Dockerfile.common
@@ -1,4 +1,4 @@
-FROM --platform=linux/amd64 golang:1.23.2-bullseye
+FROM --platform=linux/amd64 golang:1.23.3-bullseye
# Install Vitess build dependencies
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
diff --git a/docker/lite/Dockerfile b/docker/lite/Dockerfile
index 77235b09c27..59fd9297bbf 100644
--- a/docker/lite/Dockerfile
+++ b/docker/lite/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM --platform=linux/amd64 golang:1.23.2-bullseye AS builder
+FROM --platform=linux/amd64 golang:1.23.3-bullseye AS builder
# Allows docker builds to set the BUILD_NUMBER
ARG BUILD_NUMBER
diff --git a/docker/lite/Dockerfile.percona80 b/docker/lite/Dockerfile.percona80
index 462263093be..953a42c9fea 100644
--- a/docker/lite/Dockerfile.percona80
+++ b/docker/lite/Dockerfile.percona80
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM --platform=linux/amd64 golang:1.23.2-bullseye AS builder
+FROM --platform=linux/amd64 golang:1.23.3-bullseye AS builder
# Allows docker builds to set the BUILD_NUMBER
ARG BUILD_NUMBER
diff --git a/docker/vttestserver/Dockerfile.mysql80 b/docker/vttestserver/Dockerfile.mysql80
index 5e885be3422..ed5d0b78acb 100644
--- a/docker/vttestserver/Dockerfile.mysql80
+++ b/docker/vttestserver/Dockerfile.mysql80
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM --platform=linux/amd64 golang:1.23.2-bullseye AS builder
+FROM --platform=linux/amd64 golang:1.23.3-bullseye AS builder
# Allows docker builds to set the BUILD_NUMBER
ARG BUILD_NUMBER
diff --git a/go.mod b/go.mod
index 8e7a90f89c8..1d2d9201f04 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module vitess.io/vitess
-go 1.23.2
+go 1.23.3
require (
cloud.google.com/go/storage v1.43.0
diff --git a/test.go b/test.go
index aa4b2b5c4d0..14f51a06e9d 100755
--- a/test.go
+++ b/test.go
@@ -77,7 +77,7 @@ For example:
// Flags
var (
flavor = flag.String("flavor", "mysql80", "comma-separated bootstrap flavor(s) to run against (when using Docker mode). Available flavors: all,"+flavors)
- bootstrapVersion = flag.String("bootstrap-version", "37", "the version identifier to use for the docker images")
+ bootstrapVersion = flag.String("bootstrap-version", "38", "the version identifier to use for the docker images")
runCount = flag.Int("runs", 1, "run each test this many times")
retryMax = flag.Int("retry", 3, "max number of retries, to detect flaky tests")
logPass = flag.Bool("log-pass", false, "log test output even if it passes")
diff --git a/test/templates/dockerfile.tpl b/test/templates/dockerfile.tpl
index 70c15c8ae64..82388850947 100644
--- a/test/templates/dockerfile.tpl
+++ b/test/templates/dockerfile.tpl
@@ -1,4 +1,4 @@
-ARG bootstrap_version=37
+ARG bootstrap_version=38
ARG image="vitess/bootstrap:${bootstrap_version}-{{.Platform}}"
FROM "${image}"
From 04afd9a494ddffa089fc1419b8140efd0dbd966c Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Mon, 11 Nov 2024 23:58:13 -0600
Subject: [PATCH 55/78] Update the EOL documentation (#17215)
Signed-off-by: Florent Poinsard
---
doc/internal/release/eol-process.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/doc/internal/release/eol-process.md b/doc/internal/release/eol-process.md
index 98af2218d68..0ec20d30cd9 100644
--- a/doc/internal/release/eol-process.md
+++ b/doc/internal/release/eol-process.md
@@ -9,5 +9,7 @@ To properly deprecate a major of Vitess follow the following steps:
> - Add a redirect from the old URL to the new URL in `./layouts/index.redirects` under the `Redirect archived docs` section.
- **Delete the `Backport To: ...` label**
> - Delete the corresponding label for the EOL version, we do not want to motivate anymore backport to the EOL release branch.
+- **Update the Golang Upgrade GitHub Action Workflow**
+ > - The `Update Golang Version` workflow must be updated to stop upgrading the version we are EOLing.
- **Make proper announcement on Slack**
> - Notify the community of this deprecation.
From d512393492b1cfd1c7d10b27b2189d29af43b982 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Tue, 12 Nov 2024 18:55:20 +0530
Subject: [PATCH 56/78] Update Atomic Distributed Transaction Design (#17005)
Signed-off-by: Harshit Gangal
---
.../AtomicDistributedTransaction.md | 736 ++++++++++++++++++
.../AtomicTransactionsWithDisruptions.md | 61 --
doc/design-docs/TwoPhaseCommitDesign.md | 417 ----------
3 files changed, 736 insertions(+), 478 deletions(-)
create mode 100644 doc/design-docs/AtomicDistributedTransaction.md
delete mode 100644 doc/design-docs/AtomicTransactionsWithDisruptions.md
delete mode 100644 doc/design-docs/TwoPhaseCommitDesign.md
diff --git a/doc/design-docs/AtomicDistributedTransaction.md b/doc/design-docs/AtomicDistributedTransaction.md
new file mode 100644
index 00000000000..ea5ea358d72
--- /dev/null
+++ b/doc/design-docs/AtomicDistributedTransaction.md
@@ -0,0 +1,736 @@
+# Design Document: Atomic Distributed Transaction
+
+# Objective
+
+Provide a mechanism to support atomic commits for distributed transactions across multiple Vitess databases. Transactions should either complete successfully or rollback completely.
+
+# Background
+
+Vitess distributed transactions have so far been Best Effort Commit (BEC). An application is allowed to send DMLs that go to different shards or keyspaces in a single transaction. When a commit is issued, Vitess tries to individually commit each db transaction that was initiated. However, if a database goes down in the middle of a commit, that part of the transaction is lost. Moreover, with the support of lookup vindexes, VTGates could themselves open distributed transactions from single statements issued by the app.
+
+Two Phase Commit (2PC) is the de facto protocol for atomically committing distributed transactions. Unfortunately, this has been considered impractical, and has predominantly failed in the industry. There are a few reasons:
+
+* A database that goes down in the middle of a 2PC commit would hold transactions in other databases hostage till it was recovered. This is now a solved problem due to replication and fast failovers.
+* The ACID requirements of relational databases were too demanding and contentious for a pure implementation to practically scale.
+* The industry standard distributed transaction protocol (XA) overreached on flexibility and became too chatty.
+* Subpar schemes for transaction management: Some added too much additional overhead, and some paid lip service and defeated the reliability of 2PC.
+
+This document intends to address the above concerns with some practical trade-offs.
+
+Although MySQL supports the XA protocol, it’s been unusable due to bugs. There have been multiple fixes made on 8.0, but still there are many open bugs. Also, it's usage in production is hardly known.
+
+The most critical component of the 2PC protocol is the `Prepare` functionality. There is actually a way to implement Prepare on top of a transactional system. This is explained in a [Vitess Blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/), which will be used as foundation for this design.
+
+Familiarity with the blog and the [2PC algorithm](http://c2.com/cgi/wiki?TwoPhaseCommit) are required to understand the rest of the document.
+
+# Overview
+
+Vitess will add a few variations to the traditional 2PC algorithm:
+
+* There is a presumption that the Resource Managers (aka participants) must know upfront that they are involved in a 2PC transaction. Many APIs force the application to make this choice at the beginning of a transaction, but this is not actually required. In the case of Vitess, a distributed transaction will start off as usual, with a normal Begin. It will be converted only if the application requests a 2PC commit. This approach allows optimization of some common use cases.
+* The 2PC algorithm does not specify how the Transaction Manager maintains the metadata. If you work through all the failure modes, it becomes evident that the manager must also be a highly available (HA) transactional system that survives failures without data loss. Since the VTTablets are already built to be HA, there’s no reason to build yet another system. So, we will split the role of the Transaction Manager into two:
+ - The Coordinator will be stateless and will orchestrate the work. VTGates are the perfect fit for this role.
+ - One of the VTTablets will be designated as the Metadata Manager (MM). It will store the metadata and perform the necessary state transitions.
+* If we designate one of the participant VTTablets to be the MM, that database can avoid the prepare phase. If you assume there are N participants, the typical process is to perform prepares from 1 to N, followed by commits from 1 to N. Instead, we could go from 1->N for prepare, and N->1 for commit. Then, the Nth database would perform a Prepare->Decide to Commit->Commit. Instead, we execute the DML needed to transition the metadata state to "Decide to Commit" as part of the app transaction and commit it. If the commit fails, it is treated as the prepare having failed. If the commit succeeds, it is treated as all three operations having succeeded.
+* The Prepare functionality will be implemented as explained in the [blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/).
+
+Combining the above changes allows us to keep the most common use case efficient. A transaction that affects only one database incurs no additional cost due to 2PC.
+
+In the case of multi-database transactions, we can choose the participant with the highest number of statements to be the MM. That database will not incur the cost of going through the Prepare phase, and we also avoid requiring a separate transaction to persist the commit decision.
+
+## ACID trade-offs
+
+The core 2PC algorithm only guarantees Atomicity: either the entire transaction commits, or it’s rolled back completely.
+
+Consistency is an orthogonal property because it primarily ensures that the values in the database do not violate relational rules.
+
+Durability is guaranteed by each database, and the collective durability is inherited by the 2PC process.
+
+Isolation requires additional work. If a client tries to read data in the middle of a distributed commit, it could see partial commits. To prevent this, databases place read locks on rows involved in a 2PC. Consequently, anyone attempting to read them must wait until the transaction is resolved. This type of locking is so contentious that it often defeats the purpose of distributing the data.
+
+In reality, this level of Isolation guarantee is overkill for most application code paths. Therefore, it is more practical to relax this for the sake of scalability and allow the application to use explicit locks where it deems better Isolation is required.
+
+On the other hand, Atomicity is critical. Non-atomic transactions can result in partial commits, effectively corrupting the data. As mentioned earlier, Atomicity is guaranteed by 2PC.
+
+# Life of a 2PC transaction
+
+* The application issues a Begin to VTGate. At this time, the session is updated to indicate that it’s in a transaction.
+* The application sends DMLs to VTGate. As these DMLs are received, VTGate starts transactions against various VTTablets. The transaction id for each VTTablet (VTID) is stored in the session.
+* The application requests a 2PC commit. Until this point, there is no difference between a BEC and a 2PC. In the case of BEC, VTGate just sends the commit to all participating VTTablets. For 2PC, VTGate initiates and executes the workflow described in the subsequent steps.
+
+## Prepare
+
+* Generate a Distributed Transaction Identifier (DTID).
+* The VTTablet at the first position in the session transaction list is singled out as the MM. To this VTTablet, issue a CreateTransaction command with the DTID. This information will be monitored by the transaction resolution watcher.
+* Issue a Prepare to all other VTTablets. Send the DTID as part of the prepare request.
+
+## Commit
+
+* Execute the 3-in-1 action of Prepare->Decide->Commit (StartCommit) for the MM VTTablet. This will change the metadata state to ‘Commit’.
+* Issue a CommitPrepared commands to all the prepared VTTablets using the DTID.
+* Delete the transaction in the MM with ConcludeTransaction.
+
+## Rollback
+
+Any form of failure until the point of saving the commit decision will result in a decision to rollback.
+
+* Transition the metadata state to ‘Rollback’.
+* Issue RollbackPrepared commands to the prepared transactions using the DTID.
+* If the original VTGate is still orchestrating, rollback the unprepared transactions using their VTIDs. Otherwise, any unprepared transactions will be rolled back by the transaction killer.
+* Delete the transaction in the MM with ConcludeTransaction.
+
+## Transaction Resolution Watcher
+
+A Transaction Resolution watcher will kick in if a transaction remains unresolved for too long in the MM. If such a transaction is found, it will be in one of three states:
+
+1. Prepare
+2. Rollback
+3. Commit
+
+For #1 and #2, the Rollback workflow is initiated. For #3, the commit workflow is resumed.
+
+The following diagrams illustrates the life-cycle of a 2PC transaction in Metadata Manager (MM) and Resource Manager (RM).
+
+```mermaid
+---
+title: State Changes for Transaction Record in MM
+---
+stateDiagram-v2
+ classDef action font-style:italic,font-weight:bold,fill:white
+ state "Prepare" as p
+ state "Commit" as c
+ state "Rollback" as r
+
+ [*] --> p: Start Transaction
+ p --> c: Prepare Success
+ p --> r: Prepare Failed
+ c --> [*]: Conclude Transaction
+ r --> [*]: Conclude Transaction
+```
+
+```mermaid
+---
+title: State Changes for Redo Record in RM
+---
+stateDiagram-v2
+ classDef action font-style:italic,font-weight:bold,fill:white
+ state "Redo Prepared Logs" as rpl
+ state "Delete Redo Logs" as drl
+ state "Check Type of Failure" as ctf
+
+ state "Prepared" as p
+ state "Failure" as f
+ state commitRPC <>
+ state failureType <>
+ state redoSuccess <>
+
+ [*] --> p: Commit redo logs Prepare Call Succeeds
+ drl --> [*]
+ p --> drl:::action: Receive Rollback Rollback transaction
+ p --> commitRPC: Receive CommitRPC
+ commitRPC --> drl: If commit succeeds
+ ctf --> failureType
+ commitRPC --> ctf:::action: If commit fails
+ failureType --> f: Unretriable failure Wait for user intervention
+ f --> drl: User calls ConcludeTransaction
+ failureType --> rpl:::action: Failure because of MySQL restart
+ rpl --> redoSuccess: Check if redo prepare fails
+ redoSuccess --> p: Redo prepare succeeds
+ redoSuccess --> ctf: Redo prepare fails
+```
+
+A transaction generally begins as a single DB transaction, and a 2PC commit on a single DB transaction is treated as a normal commit. A transaction becomes a distributed transaction as soon as more than one VTTablet is involved. If an app issues a rollback, all participants are simply rolled back.
+A 2PC commit on a distributed transaction initiates the new commit flow. The transaction record is stored in the 'Prepare' state and remains so while Prepares are issued to the RMs.
+If the Prepares are successful, the state transitions to 'Commit'. In the Commit state, only commits are allowed. By the guarantee provided by the Prepare contract, all databases will eventually accept the commits.
+Any failure during the Prepare state results in the state transitioning to 'Rollback'. In this state, only rollbacks are allowed.
+# Component interactions
+
+Any error in the commit phase is indicated to the application with a warning flag. If an application's transaction receives a warning signal, it can execute a `show warnings` to know the distributed transaction ID for that transaction. It can watch the transaction status with `show transaction status for `.
+
+Case 1: All components respond with success.
+```mermaid
+sequenceDiagram
+ participant App as App
+ participant G as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ App ->>+ G: Commit
+ G ->> MM: Create Transaction Record
+ MM -->> G: Success
+ par
+ G ->> RM1: Prepare Transaction
+ G ->> RM2: Prepare Transaction
+ RM1 -->> G: Success
+ RM2 -->> G: Success
+ end
+ G ->> MM: Store Commit Decision
+ MM -->> G: Success
+ par
+ G ->> RM1: Commit Prepared Transaction
+ G ->> RM2: Commit Prepared Transaction
+ RM1 -->> G: Success
+ RM2 -->> G: Success
+ end
+ opt Any failure here does not impact the reponse to the application
+ G ->> MM: Delete Transaction Record
+ end
+ G ->>- App: OK Packet
+```
+
+Case 2: When the Commit Prepared Transaction from the RM responds with an error. In this case, the watcher service needs to resolve the transaction and commit the pending prepared transactions.
+```mermaid
+sequenceDiagram
+ participant App as App
+ participant G as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ App ->>+ G: Commit
+ G ->> MM: Create Transaction Record
+ MM -->> G: Success
+ par
+ G ->> RM1: Prepare Transaction
+ G ->> RM2: Prepare Transaction
+ RM1 -->> G: Success
+ RM2 -->> G: Success
+ end
+ G ->> MM: Store Commit Decision
+ MM -->> G: Success
+ par
+ G ->> RM1: Commit Prepared Transaction
+ G ->> RM2: Commit Prepared Transaction
+ RM1 -->> G: Success
+ RM2 -->> G: Failure
+ end
+ G ->>- App: Err Packet
+```
+
+Case 3: When the Commit Decision from MM responds with an error. In this case, the watcher service needs to resolve the transaction as it is not certain whether the commit decision persisted or not.
+```mermaid
+sequenceDiagram
+ participant App as App
+ participant G as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ App ->>+ G: Commit
+ G ->> MM: Create Transaction Record
+ MM -->> G: Success
+ par
+ G ->> RM1: Prepare Transaction
+ G ->> RM2: Prepare Transaction
+ RM1 -->> G: Success
+ RM2 -->> G: Success
+ end
+ G ->> MM: Store Commit Decision
+ MM -->> G: Failure
+ G ->>- App: Err Packet
+```
+
+Case 4: When a Prepare Transaction fails. TM will decide to roll back the transaction. If any rollback returns a failure, the watcher service will resolve the transaction.
+```mermaid
+sequenceDiagram
+ participant App as App
+ participant G as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ App ->>+ G: Commit
+ G ->> MM: Create Transaction Record
+ MM -->> G: Success
+ par
+ G ->> RM1: Prepare Transaction
+ G ->> RM2: Prepare Transaction
+ RM1 -->> G: Failure
+ RM2 -->> G: Success
+ end
+ par
+ G ->> MM: Store Rollback Decision
+ G ->> RM1: Rollback Prepared Transaction
+ G ->> RM2: Rollback Prepared Transaction
+ MM -->> G: Success / Failure
+ RM1 -->> G: Success / Failure
+ RM2 -->> G: Success / Failure
+ end
+ opt Rollback success on MM and RMs
+ G ->> MM: Delete Transaction Record
+ end
+ G ->>- App: Err Packet
+```
+
+Case 5: When Create Transaction Record fails. TM will roll back the transaction.
+```mermaid
+sequenceDiagram
+ participant App as App
+ participant G as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ App ->>+ G: Commit
+ G ->> MM: Create Transaction Record
+ MM -->> G: Failure
+ par
+ G ->> RM1: Rollback Transaction
+ G ->> RM2: Rollback Transaction
+ RM1 -->> G: Success / Failure
+ RM2 -->> G: Success / Failure
+ end
+ G ->>- App: Err Packet
+```
+
+## Transaction Resolution Watcher
+
+```mermaid
+sequenceDiagram
+ participant G1 as VTGate
+ participant G2 as VTGate
+ participant MM as VTTablet/MM
+ participant RM1 as VTTablet/RM1
+ participant RM2 as VTTablet/RM2
+
+ MM -) G1: Unresolved Transaction
+ MM -) G2: Unresolved Transaction
+ Note over G1,MM: MM sends this over health stream.
+ loop till no more unresolved transactions
+ G1 ->> MM: Provide Transaction details
+ G2 ->> MM: Provide Transaction details
+ MM -->> G2: Distributed Transaction ID details
+ Note over G2,MM: This VTGate recieves the transaction to resolve.
+ end
+ alt Transaction State: Commit
+ G2 ->> RM1: Commit Prepared Transaction
+ G2 ->> RM2: Commit Prepared Transaction
+ else Transaction State: Rollback
+ G2 ->> RM1: Rollback Prepared Transaction
+ G2 ->> RM2: Rollback Prepared Transaction
+ else Transaction State: Prepare
+ G2 ->> MM: Store Rollback Decision
+ MM -->> G2: Success
+ opt Only when Rollback Decision is stored
+ G2 ->> RM1: Rollback Prepared Transaction
+ G2 ->> RM2: Rollback Prepared Transaction
+ end
+ end
+ opt Commit / Rollback success on MM and RMs
+ G2 ->> MM: Delete Transaction Record
+ end
+```
+
+# Detailed Design
+
+The detailed design explains all the functionalities and interactions.
+
+## DTID generation
+
+Currently, transaction ids are issued by VTTablets (VTID), and those ids are considered local.
+In order to coordinate distributed transactions, a new system is needed to identify and track them.
+This is needed mainly so that the watchdog process can pick up an orphaned transaction and resolve it to completion.
+
+The DTID will be generated by taking the VTID of the MM and prefixing it with the keyspace and shard info to prevent collisions.
+If the MM’s VTID is ‘1234’ for keyspace ‘order’ and shard ‘40-80’, then the DTID will be ‘order:40-80:1234’.
+A collision could still happen if there is a failover and the new VTTablet’s starting VTID had overlaps with the previous instance.
+To prevent this, the starting VTID of the VTTablet will be adjusted to a value higher than any used by the prepared DTIDs.
+
+## Prepare API
+
+The Prepare API will be provided by VTTablet, and will follow the guidelines of the [blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/).
+It’s essentially three functions: Prepare, CommitPrepared and RollbackPrepared.
+
+### Statement list and state
+
+Every transaction will have to remember its DML statement list. VTTablet already records queries against each transaction (RecordQuery).
+However, it’s currently the original queries of the request. This has to be changed to the DMLs that are sent to the database.
+The current RecordQuery functionality is mainly for troubleshooting and diagnostics. So, it’s not very material if we changed it to record actual DMLs. It would remain equally useful.
+
+### Schema
+
+The tables will be in the sidecar database. All timestamps are represented as unix nanoseconds.
+
+The redo_state table needs to support the following use cases:
+
+* Prepare: Create row.
+* Recover & repair tool: Fetch all transactions: full joined table scan.
+* Resolve: Transition state for a DTID: update where dtid = :dtid and state = :prepared.
+* Watchdog: Count unresolved transactions that are older than X: select where time_created < X.
+* Delete a resolved transaction: delete where dtid = :dtid.
+
+```
+create table redo_state(
+ dtid varbinary(512),
+ state bigint, // state can be 0: Failed, 1: Prepared.
+ time_created bigint,
+ message text, // record any error message.
+ primary key(dtid)
+)
+```
+
+The redo_statement table is a detail of redo_log_transaction table.
+It needs the ability to read the statements of a dtid in the correct order (by id), and the ability to delete all statements for a given dtid.
+
+```
+create table redo_statement(
+ dtid varbinary(512),
+ id bigint,
+ statement mediumblob,
+ primary key(dtid, id)
+)
+```
+
+### Prepare
+
+This function is proposed to take a DTID and a VTID as input.
+
+* The function will retrieve the active transaction connection and move it to the prepared pool. If the prepared pool is full, the transaction will be rolled back, and an error will be returned.
+* Metadata will be saved to the redo logs as a separate transaction. If this step fails, the main transaction will also be rolled back, and an error will be returned.
+
+If VTTablet is being shut down or transitioned to a non-primary, the transaction pool handler will internally, rollback the prepared transactions and return them to the transaction pool.
+The rollback of prepared transactions must happen only after all the open transactions are resolved (rollback or commited).
+If a pending transaction is waiting on a lock held by a prepared transaction, it will eventually time out and get rolled back.
+
+Eventually, a different VTTablet will be transitioned to become the primary. At that point, it will recreate the unresolved transactions from redo logs.
+If the replays fail, we’ll raise an alert and start the query service anyway. Typically, a replay is not expected to fail because VTTablet does not allow writing to the database until the replays are done. Also, no external agent should be allowed to perform writes to MySQL, which is a loosely enforced Vitess requirement. Other vitess processes do write to MySQL directly, but they’re not the kind that interfere with the normal flow of transactions.
+
+VTTablet always execute DMLs with BEGIN-COMMIT. This will ensure that no autocommit statements can slip through if connections are inadvertently closed out of sequence.
+
+### CommitPrepared
+
+This function commits the prepared transaction for the given DTID.
+
+* Extract the transaction from the Prepare pool.
+ * If transaction is in the failed pool, return an error.
+ * If the transaction is not found, return success (it was already resolved).
+* As part of the current transaction, transition the state in redo_log to Committed and commit the transaction.
+ * On failure, log the error message in redo_state and move it to the failed pool for non-retryable error. Subsequent commits will permanently fail.
+* Return the connection to the transaction pool.
+
+### RollbackPrepared
+
+This function rolls back the prepared/un-prepared transaction for the given DTID and VTID.
+
+* Delete the redo log entries for the dtid in a separate transaction.
+* Extract the transaction from the Prepare pool.
+ * If present, rollback and return the connection to the transaction pool.
+* If VTID is provided, rollback the original transaction.
+
+## Metadata Manager API
+
+The MM functionality is provided by VTTablet. This could be implemented as a separate service, but designating one of the
+participants to act as the manager gives us some optimization opportunities.
+The supported functions are CreateTransaction, StartCommit, SetRollback, and ConcludeTransaction.
+
+### Schema
+
+The transaction metadata will consist of two tables. It will need to fulfil the following use cases:
+
+* CreateTransaction: Store transaction record metadata.
+* Transition state: update where dtid = :dtid and state = :prepare.
+* Resolve flow: select dt_state & dt_participant where dtid = :dtid.
+* Transaction Resolver Watcher: full table scan where time_created < X.
+* Delete a resolved transaction: delete where dtid = :dtid.
+
+```
+create table dt_state(
+ dtid varbinary(512),
+ state bigint, // state PREPARE, COMMIT, ROLLBACK
+ time_created bigint,
+ primary key(dtid),
+ key (time_created)
+)
+```
+
+```
+create table dt_participant(
+ dtid varbinary(512),
+ id bigint,
+ keyspace varchar(256),
+ shard varchar(256),
+ primary key (dtid, id)
+)
+```
+
+### CreateTransaction
+
+This function stores the transaction metadata record. The initial state will be `PREPARE`.
+A successful create starts the 2PC process. This will be followed by VTGate issuing prepares to the rest of the participants.
+
+### StartCommit
+
+This function will be called when transaction coordinator have taken a `COMMIT` decision.
+A transaction resolution on recovery cannot will not make a `StartCommit` call. So, we can assume the original transaction VTID for this VTTablet is still active.
+
+* Extract the connection for the given VTID.
+* Update the transaction state from PREPARE to COMMIT as part of the participant’s transaction (VTID).
+* Issue a commit and release the transaction back to transaction pool.
+
+If successful, VTGate will execute the commit decision on rest of the participants.
+If not successful, VTGate at this point will leave the transaction resolution to the watcher.
+
+### SetRollback
+
+This function transitions the state from PREPARE to ROLLBACK using an independent transaction.
+When this function is called, the MM’s transaction (VTID) may still be alive.
+So, it infers the transaction id from the dtid and perform the best effort rollback.
+If the transaction is not found, it’s a no-op.
+
+### ConcludeTransaction
+
+This function removes the transaction metadata record for the given DTID.
+
+### ReadTransaction
+
+This function returns the transaction metadata for the given DTID.
+
+### UnresolvedTransactions
+
+This function returns all unresolved transaction metadata older than certain age either provided in the request or the default set on the VTTablet.
+
+### ReadTwopcInflight
+
+This function returns all transaction metadata and the redo statement log.
+
+## Transaction Coordinator
+
+VTGate is already responsible for Best Effort Commit, aka `transaction_mode=MULTI`, it can naturally be extended to act as the coordinator for 2PC.
+It needs to support commit with `transaction_mode=twopc`.
+
+VTGate also has to listen on the VTTablet health stream to receive unresolved transaction signals and act on them to resolve them.
+
+### Commit(transaction_mode=twopc)
+
+This call is issued on an active transaction, whose Session info is known. The function will perform the workflow described in the life of a transaction:
+
+* Identify a VTTablet as MM, and generate a DTID based on the identity of the MM.
+* CreateTransaction on the MM
+* Prepare on all other participants
+* StartCommit on the MM
+* CommitPrepared on all other participants
+* ResolveTransaction on the MM
+
+Any failure before StartCommit will trigger the rollback workflow:
+
+* SetRollback on the MM
+* RollbackPrepared on all participants for which Prepare was sent
+* Rollback on all other participants
+* ResolveTransaction on the MM
+
+### Unresolved Transaction Signal
+
+This signal is received by VTGate from MM when there are unresolved transactions.
+
+The function starts off with calling UnresolvedTransactions on the VTTablet to read the transaction metadata.
+Based on the state, it performs the following actions:
+
+* Prepare: SetRollback and initiate rollback workflow.
+* Rollback: Initiate rollback workflow.
+* Commit: Initiate commit workflow.
+
+Commit workflow:
+
+* CommitPrepared on all participants.
+* ResolveTransaction on the MM
+
+Rollback workflow:
+
+* RollbackPrepared on all participants.
+* ResolveTransaction on the MM.
+
+## Transaction Resolution Watcher
+
+The stateless VTGates are considered ephemeral and can fail at any time, which means that transactions could be abandoned in the middle of a distributed commit.
+To mitigate this, every primary VTTablet will poll its dt_state table for distributed transactions that are lingering.
+If any such transaction is found, it will signal this to VTGate via health stream to resolve them.
+
+## Client API
+
+The client have to modify the `transaction_mode`.
+Default is `Multi`, they would need to set to `twopc` either as a VTGate flag or on the session with `SET` statement.
+
+# Production support
+
+Beyond the functionality, additional work is needed to make 2PC viable for production.
+The areas of concern are disruptions, monitoring, tooling and configuration.
+
+# Disruptions
+
+The atomic transactions should be resilient to the disruptions. Let us cover the different disruptions that can happen in a running cluster and how atomic transactions are engineered to handle them without breaking the Atomicity guarantee.
+
+### `PlannedReparentShard` and `EmergencyReparentShard`
+
+For both Planned and Emergency reparents, we call `DemotePrimary` on the primary tablet. For Planned reparent, this call has to succeed, while on Emergency reparent, if the primary is unreachable then this call can fail, and we would still proceed further.
+
+As part of the `DemotePrimary` flow, when we transition the tablet to a non-serving state, we wait for all the transactions to have completed (in `TxEngine.shutdownLocked()` we have `te.txPool.WaitForEmpty()`). If the user has specified a shutdown grace-period, then after that much time elapses, we go ahead and forcefully kill all running queries. We then also rollback the prepared transactions. It is crucial that we rollback the prepared transactions only after all other writes have been killed, because when we rollback a prepared transaction, it lets go of the locks it was holding. If there were some other conflicting write in progress that hadn't been killed, then it could potentially go through and cause data corruption since we won't be able to prepare the transaction again. All the code to kill queries can be found in `stateManager.terminateAllQueries()`.
+
+The above outlined steps ensure that we either wait for all prepared transactions to conclude or we rollback them safely so that they can be prepared again on the new primary.
+
+On the new primary, when we call `PromoteReplica`, we redo all the prepared transactions before we allow any new writes to go through. This ensures that the new primary is in the same state as the old primary was before the reparent. The code for redoing the prepared transactions can be found in `TxEngine.RedoPreparedTransactions()`.
+
+If everything goes as described above, there is no reason for redoing of prepared transactions to fail. But in case, something unexpected happens and preparing transactions fails, we still allow the VTTablet to accept new writes because we decided availability of the tablet is more important. We will however, build tooling and metrics for the users to be notified of these failures and let them handle this in the way they see fit.
+
+While Planned reparent is an operation where all the processes are running fine, Emergency reparent is called when something has gone wrong with the cluster. Because we call `DemotePrimary` in parallel with `StopReplicationAndBuildStatusMap`, we can run into a case wherein the primary tries to write something to the binlog after all the replicas have stopped replicating. If we were to run without semi-sync, then the primary could potentially commit a prepared transaction, and return a success to the VTGate trying to commit this transaction. The VTGate can then conclude that the transaction is safe to conclude and remove all the metadata information. However, on the new primary since the transaction commit didn't get replicated, it would re-prepare the transaction and would wait for a coordinator to either commit or rollback it, but that would never happen. Essentially we would have a transaction stuck in prepared state on a shard indefinitely. To avoid this situation, it is essential that we run with semi-sync, because this ensures that any write that is acknowledged as a success to the caller, would necessarily have to be replicated to at least one replica. This ensures that the transaction would also already be committed on the new primary.
+
+### MySQL Restarts
+
+When MySQL restarts, it loses all the ongoing transactions which includes all the prepared transactions. This is because the transaction logs are not persistent across restarts. This is a MySQL limitation and there is no way to get around this. However, at the Vitess level we must ensure that we can commit the prepared transactions even in case of MySQL restarts without any failures.
+
+Vttablet has the code to detect MySQL failures and call `stateManager.checkMySQL()` which transitions the tablet to a NotConnected state. This prevents any writes from going through until the VTTablet has transitioned back to a serving state.
+
+However, we cannot rely on `checkMySQL` to ensure that no conflicting writes go through. This is because the time between MySQL restart and the VTTablet transitioning to a NotConnected state can be large. During this time, the VTTablet would still be accepting writes and some of them could potentially conflict with the prepared transactions.
+
+To handle this, we rely on the fact that when MySQL restarts, it starts with super-read-only turned on. This means that no writes can go through. It is VTOrc that registers this as an issue and fixes it by calling `UndoDemotePrimary`. As part of that call, before we set MySQL to read-write, we ensure that all the prepared transactions are redone in the read_only state. We use the dba pool (that has admin permissions) to prepare the transactions. This is safe because we know that no conflicting writes can go through until we set MySQL to read-write. The code to set MySQL to read-write after redoing prepared transactions can be found in `TabletManager.redoPreparedTransactionsAndSetReadWrite()`.
+
+Handling MySQL restarts is the only reason we needed to add the code to redo prepared transactions whenever MySQL transitions from super-read-only to read-write state. Even though, we only need to do this in `UndoDemotePrimary`, it not necessary that it is `UndoDemotePrimary` that sets MySQL to read-write. If the user notices that the tablet is in a read-only state before VTOrc has a chance to fix it, they can manually call `SetReadWrite` on the tablet.
+Therefore, the safest option was to always check if we need to redo the prepared transactions whenever MySQL transitions from super-read-only to read-write state.
+
+### VTTablet Restarts
+
+When Vttabet restarts, all the previous connections are dropped. It starts in a non-serving state, and then after reading the shard and tablet records from the topo, it transitions to a serving state.
+As part of this transition we need to ensure that we redo the prepared transactions before we start accepting any writes. This is done as part of the `TxEngine.transition` function when we transition to an `AcceptingReadWrite` state. We call the same code for redoing the prepared transactions that we called for MySQL restarts, PRS and ERS.
+
+### VTGate Restarts
+
+There is no additional work needed for VTGate restarts. The atomic transaction will resume based on the last known state in the MM based and will kick of the unresolved transaction workflow.
+
+### Online DDL
+
+During an Online DDL cutover, we need to ensure that all the prepared transactions on the online DDL table needs to be completed before we can proceed with the cutover.
+This is because the cutover involves a schema change, and we cannot have any prepared transactions that are dependent on the old schema.
+
+As part of the cut-over process, Online DDL adds query rules to buffer new queries on the table.
+It then checks for any open prepared transaction on the table and waits for up to 100ms if found, then checks again.
+If it finds no prepared transaction of the table, it moves forward with the cut-over, otherwise it fails. The Online DDL mechanism will later retry the cut-over.
+
+In the Prepare code, we check the query rules before adding the transaction to the prepared list and re-check the rules before storing the transaction logs in the transaction redo table.
+Any transaction that went past the first check will fail the second check if the cutover proceeds.
+
+The check on both sides prevents either the cutover from proceeding or the transaction from being prepared.
+
+### MoveTables
+
+The only step of a `MoveTables` workflow that needs to synchronize with atomic transactions is `SwitchTraffic` for writes. As part of this step, we want to disallow writes to only the tables involved. We use `DeniedTables` in `ShardInfo` to accomplish this. After we update the topo server with the new `DeniedTables`, we make all the VTTablets refresh their topo to ensure that they've registered the change.
+
+On VTTablet, the `DeniedTables` are used to add query rules very similar to the ones in Online DDL. The only difference is that in Online DDL, we buffer the queries, but for `SwitchTraffic` we fail them altogether. Addition of these query rules, prevents any new atomic transactions from being prepared.
+
+Next, we try locking the tables to ensure no existing write is pending. This step blocks until all open prepared transactions have succeeded.
+
+After this step, `SwitchTraffic` can proceed without any issues, since we are guaranteed to reject any new atomic transactions until the `DeniedTables` has been reset, and having acquired the table lock, we know no write is currently in progress.
+
+
+## Monitoring
+
+To facilitate monitoring, new metrics will be published.
+
+### VTTablet
+
+* The Transactions hierarchy will be extended to report CommitPrepared and RollbackPrepared stats, which includes histograms. Since Prepare is an intermediate step, it will not be rolled up in this variable.
+* For Prepare, two new variables will be created:
+ * Prepare histogram will report prepare timings.
+ * PrepareStatements histogram will report the number of statements for each Prepare.
+* `UnresolvedTransaction` is a gauge that reports current number of open unresolved transactions in `ResourceManager` or `MetadataManager`.
+* Any CommitPrepared or RedoPrepared failure will raise the counter in respective `CommitPreparedFail` or `RedoPreparedFail` with retyable or non-retryable error. Alert should be raised for non-retryable error.
+* Any unexpected errors during a 2PC will increment a counter for InternalErrors, which should already be set to raise an alert.
+
+### VTGate
+
+* Transactions will report Commit mode timing histogram `Single`, `Multi` and `TwoPC` for single shard, best-effort multi shard and 2PC multi shard transactions.
+* 2PC transactions will report
+ * `CommitUnresolved` count on a failure after transactions is prepared on all RMs.
+ * `Participant` count to determine the average number of shards involved in a multi shard transaction.
+
+## Tooling
+
+On VTAdmin, `Transactions` tab will list all the unresolved TwoPC transactions. It will have option to change the abandon age time to limit the unresolved transactions older than the select time.
+The current action that can be done on these transactions is `Conclude`. It will clear out the state in all the shards about the selected transaction.
+Currently, the user have to take the corrective actions for the transactions that are lingering from long time and transaction resolver is not able to complete them.
+
+# Data Guarantees
+
+Although the above workflows are foolproof, they do rely on the data guarantees provided by the underlying systems and the fact that prepared transactions can get killed only together with VTTablet.
+In all the scenarios below, there is as possibility of irrecoverable data loss. But the system needs to alert correctly, and we must be able to make the best effort recovery and move on.
+For now, these scenarios require operator intervention, but the system could be made to automatically perform these as we gain confidence.
+
+## Prepared transaction gets killed
+
+It is possible for an external agent to kill the connection of a prepared transaction. If this happened, MySQL will roll it back. If the system is serving live traffic, it may make forward progress in such a way that the transaction may not be replayable, or may replay with different outcome.
+This is a very unlikely occurrence. But if something like this happen, then an alert will be raised when the coordinator finds that the transaction is missing. That transaction will be marked as Failed until an operator resolves it.
+But if there’s a failover before the transaction is marked as failed, it will be resurrected over future transaction possibly with incorrect changes. A failure like this will be undetectable.
+
+## Transaction Recovery Redo Reliability
+
+The current implementation stores the transaction recovery logs as DML statements.
+On transaction recovery, while applying the statements from these logs it is not expected to fail as the current shutdown and startup workflow ensure that no other DMLs leak into the database.
+Still, there remains a risk of statement failure during the redo log application, potentially resulting in lost modifications without clear tracking of modified rows.
+If something like this happen, then an alert will be raised which the operator have to look into.
+
+# Testing Plan
+
+The main workflow of 2PC is fairly straightforward and easy to test. What makes it complicated are the failure modes. We will classify these tests into different tests.
+
+## Basic Tests
+Commit or rollback of transactions, and handling prepare failures leading to transaction rollbacks.
+
+## Reliability tests
+This test should run over an extended period, potentially lasting a few days or a week, and must endure various scenarios including:
+
+* Failure of different components (e.g., VTGate, VTTablets, MySQL)
+* Reparenting (PRS & ERS)
+* Resharding
+* Online DDL operations
+
+### Fuzzy tests
+A fuzzy test suite, running continuous stream of multi-shard transactions and expecting events to be in specific sequence on terminating the long-running test.
+
+### Stress Tests
+A continuous stream of transactions (single and distributed) will be executed, with all successful commits recorded along with the expected rows.
+The binary log events will be streamed continuously and validated against the ordering of the change stream and the successful transactions.
+
+
+# Innovation
+This design has a bunch of innovative ideas. However, it’s possible that they’ve been used before under other circumstances, or even 2PC itself. Here’s a summary of all the new ideas in this document, some with more merit than others:
+
+* Moving away from the heavyweight XA standard.
+* Implementing Prepare functionality on top of a system that does not inherently support it.
+* Storing the Metadata in a transactional engine and making the coordinator stateless.
+* Storing the Metadata with one of the participants and avoiding the cost of a Prepare for that participant.
+* Choosing to relax Isolation guarantees while maintaining Atomicity.
+
+
+# Future Enhancements
+
+## Read Isolation Guarantee
+The current system lacks isolation guarantees, placing the burden on the application to manage it. Implementing read isolation will enable true cross-shard ACID transactions.
+
+## Distributed Deadlock Avoidance
+The current system can encounter cross-shard deadlocks, which are only resolved when one of the transactions times out and is rolled back. Implementing distributed deadlock avoidance will address this issue more efficiently.
+
+# Appendix
+
+## Glossary
+
+* Distributed Transaction: Any transaction that spans multiple databases is a distributed transaction. It does not imply any commit protocol.
+* Best Effort Commit (BEC): This protocol is what’s currently supported by Vitess, where commits are sent to all participants. This could result in partial commits if there are failures during the process.
+* Two-Phase Commit (2PC): This is the protocol that guarantees Atomic distributed commits.
+* Coordinator: This is a stateless process that is responsible for initiating, resuming and completing a 2PC transaction. This role is fulfilled by the VTGates.
+* Resource Manager (RM) aka Participant: Any database that’s involved in a distributed transaction. Only VTTablets can be participants.
+* Metadata Manager (MM): The database responsible for storing the metadata and performing its state transitions. In Vitess, one of the participants will be designated as the MM.
+* Watchdog: The watchdog looks for abandoned transactions and initiates the process to get them resolved.
+* Distributed Transaction ID (DTID): A unique identifier for a 2PC transaction.
+* VTTablet transaction id (VTID): This is the individual transaction ID for each VTTablet participant that contains the application’s statements to be committed/rolled back.
+* Decision: This is the irreversible decision to either commit or rollback the transaction. Although confusing, this is also referred to as the ‘Commit Decision’. We’ll also indirectly refer to this as ‘Metadata state transition’. This is because a transaction undergoes many state changes. The Decision is a critical transition. So, it warrants its own name.
+
+## Reworked Design
+This design is updated based on the new work carried on the Atomic Distributed Transactions.
+More details about the recent changes are present in the [RFC](https://github.com/vitessio/vitess/issues/16245).
+
+## Exploratory Work
+MySQL XA was considered as an alternative to having RMs manage the transaction recovery logs and hold up the row locks until a commit or rollback occurs.
+
+There are currently over 20 open bugs on XA. On MySQL 8.0.33, reproduction steps were followed for all these bugs, and 8 still persist. Out of these 8 bugs, 4 have patches attached that resolve the issues when applied.
+For the remaining 4 issues, changes will need to be made either in the code or the workflow to ensure they are resolved.
+
+MySQL’s XA seems a probable candidate if we encounter issues with our implementation of handling distributed transactions that XA can resolve. XA's chatty API and no known big production deployment have kept us away from using it.
\ No newline at end of file
diff --git a/doc/design-docs/AtomicTransactionsWithDisruptions.md b/doc/design-docs/AtomicTransactionsWithDisruptions.md
deleted file mode 100644
index 7b3e050ae0d..00000000000
--- a/doc/design-docs/AtomicTransactionsWithDisruptions.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Handling disruptions in atomic transactions
-
-## Overview
-
-This document describes how to make atomic transactions resilient in the face of disruptions. The basic design and components involved in an atomic transaction are described in [here](./TwoPhaseCommitDesign.md) The document describes each of the disruptions that can happen in a running cluster and how atomic transactions are engineered to handle them without breaking their guarantee of being atomic.
-
-## `PlannedReparentShard` and `EmergencyReparentShard`
-
-For both Planned and Emergency reparents, we call `DemotePrimary` on the primary tablet. For Planned reparent, this call has to succeed, while on Emergency reparent, if the primary is unreachable then this call can fail, and we would still proceed further.
-
-As part of the `DemotePrimary` flow, when we transition the tablet to a non-serving state, we wait for all the transactions to have completed (in `TxEngine.shutdownLocked()` we have `te.txPool.WaitForEmpty()`). If the user has specified a shutdown grace-period, then after that much time elapses, we go ahead and forcefully kill all running queries. We then also rollback the prepared transactions. It is crucial that we rollback the prepared transactions only after all other writes have been killed, because when we rollback a prepared transaction, it lets go of the locks it was holding. If there were some other conflicting write in progress that hadn't been killed, then it could potentially go through and cause data corruption since we won't be able to prepare the transaction again. All the code to kill queries can be found in `stateManager.terminateAllQueries()`.
-
-The above outlined steps ensure that we either wait for all prepared transactions to conclude or we rollback them safely so that they can be prepared again on the new primary.
-
-On the new primary, when we call `PromoteReplica`, we redo all the prepared transactions before we allow any new writes to go through. This ensures that the new primary is in the same state as the old primary was before the reparent. The code for redoing the prepared transactions can be found in `TxEngine.RedoPreparedTransactions()`.
-
-If everything goes as described above, there is no reason for redoing of prepared transactions to fail. But in case, something unexpected happens and preparing transactions fails, we still allow the vttablet to accept new writes because we decided availability of the tablet is more important. We will however, build tooling and metrics for the users to be notified of these failures and let them handle this in the way they see fit.
-
-While Planned reparent is an operation where all the processes are running fine, Emergency reparent is called when something has gone wrong with the cluster. Because we call `DemotePrimary` in parallel with `StopReplicationAndBuildStatusMap`, we can run into a case wherein the primary tries to write something to the binlog after all the replicas have stopped replicating. If we were to run without semi-sync, then the primary could potentially commit a prepared transaction, and return a success to the vtgate trying to commit this transaction. The vtgate can then conclude that the transaction is safe to conclude and remove all the metadata information. However, on the new primary since the transaction commit didn't get replicated, it would re-prepare the transaction and would wait for a coordinator to either commit or rollback it, but that would never happen. Essentially we would have a transaction stuck in prepared state on a shard indefinitely. To avoid this situation, it is essential that we run with semi-sync, because this ensures that any write that is acknowledged as a success to the caller, would necessarily have to be replicated to at least one replica. This ensures that the transaction would also already be committed on the new primary.
-
-## MySQL Restarts
-
-When MySQL restarts, it loses all the ongoing transactions which includes all the prepared transactions. This is because the transaction logs are not persistent across restarts. This is a MySQL limitation and there is no way to get around this. However, at the Vitess level we must ensure that we can commit the prepared transactions even in case of MySQL restarts without any failures.
-
-Vttablet has the code to detect MySQL failures and call `stateManager.checkMySQL()` which transitions the tablet to a NotConnected state. This prevents any writes from going through until the vttablet has transitioned back to a serving state.
-
-However, we cannot rely on `checkMySQL` to ensure that no conflicting writes go through. This is because the time between MySQL restart and the vttablet transitioning to a NotConnected state can be large. During this time, the vttablet would still be accepting writes and some of them could potentially conflict with the prepared transactions.
-
-To handle this, we rely on the fact that when MySQL restarts, it starts with super-read-only turned on. This means that no writes can go through. It is VTOrc that registers this as an issue and fixes it by calling `UndoDemotePrimary`. As part of that call, before we set MySQL to read-write, we ensure that all the prepared transactions are redone in the read_only state. We use the dba pool (that has admin permissions) to prepare the transactions. This is safe because we know that no conflicting writes can go through until we set MySQL to read-write. The code to set MySQL to read-write after redoing prepared transactions can be found in `TabletManager.redoPreparedTransactionsAndSetReadWrite()`.
-
-Handling MySQL restarts is the only reason we needed to add the code to redo prepared transactions whenever MySQL transitions from super-read-only to read-write state. Even though, we only need to do this in `UndoDemotePrimary`, it not necessary that it is `UndoDemotePrimary` that sets MySQL to read-write. If the user notices that the tablet is in a read-only state before VTOrc has a chance to fix it, they can manually call `SetReadWrite` on the tablet.
-Therefore, the safest option was to always check if we need to redo the prepared transactions whenever MySQL transitions from super-read-only to read-write state.
-
-## Vttablet Restarts
-
-When Vttabet restarts, all the previous connections are dropped. It starts in a non-serving state, and then after reading the shard and tablet records from the topo, it transitions to a serving state.
-As part of this transition we need to ensure that we redo the prepared transactions before we start accepting any writes. This is done as part of the `TxEngine.transition` function when we transition to an `AcceptingReadWrite` state. We call the same code for redoing the prepared transactions that we called for MySQL restarts, PRS and ERS.
-
-## Online DDL
-
-During an Online DDL cutover, we need to ensure that all the prepared transactions on the online DDL table needs to be completed before we can proceed with the cutover.
-This is because the cutover involves a schema change and we cannot have any prepared transactions that are dependent on the old schema.
-
-As part of the cut-over process, Online DDL adds query rules to buffer new queries on the table.
-It then checks for any open prepared transaction on the table and waits for up to 100ms if found, then checks again.
-If it finds no prepared transaction of the table, it moves forward with the cut-over, otherwise it fails. The Online DDL mechanism will later retry the cut-over.
-
-In the Prepare code, we check the query rules before adding the transaction to the prepared list and re-check the rules before storing the transaction logs in the transaction redo table.
-Any transaction that went past the first check will fail the second check if the cutover proceeds.
-
-The check on both sides prevents either the cutover from proceeding or the transaction from being prepared.
-
-## MoveTables
-
-The only step of a `MoveTables` workflow that needs to synchronize with atomic transactions is `SwitchTraffic` for writes. As part of this step, we want to disallow writes to only the tables involved. We use `DeniedTables` in `ShardInfo` to accomplish this. After we update the topo server with the new `DeniedTables`, we make all the vttablets refresh their topo to ensure that they've registered the change.
-
-On vttablet, the `DeniedTables` are used to add query rules very similar to the ones in Online DDL. The only difference is that in Online DDL, we buffer the queries, but for `SwitchTraffic` we fail them altogether. Addition of these query rules, prevents any new atomic transactions from being prepared.
-
-Next, we try locking the tables to ensure no existing write is pending. This step blocks until all open prepared transactions have succeeded.
-
-After this step, `SwitchTraffic` can proceed without any issues, since we are guaranteed to reject any new atomic transactions until the `DeniedTables` has been reset, and having acquired the table lock, we know no write is currently in progress.
diff --git a/doc/design-docs/TwoPhaseCommitDesign.md b/doc/design-docs/TwoPhaseCommitDesign.md
deleted file mode 100644
index e1376985a4a..00000000000
--- a/doc/design-docs/TwoPhaseCommitDesign.md
+++ /dev/null
@@ -1,417 +0,0 @@
-# Design doc: 2PC in Vitess
-
-# Objective
-
-Provide a mechanism to support atomic commits for distributed transactions across multiple Vitess databases. Transactions should either complete successfully or rollback completely.
-
-# Background
-
-Vitess distributed transactions have so far been Best Effort Commit (BEC). An application is allowed to send DMLs that go to different shards or keyspaces in a single transaction. When a commit is issued, Vitess tries to individually commit each db transaction that was initiated. However, if a database goes down in the middle of a commit, that part of the transaction is lost. Moreover, with the support of lookup vindexes, VTGates could themselves open distributed transactions from single statements issued by the app.
-
-2PC is the de facto protocol for atomically committing distributed transactions. Unfortunately, this has been considered impractical, and has predominantly failed in the industry. There are a few reasons:
-
-* A database that goes down in the middle of a 2PC commit would hold transactions in other databases hostage till it was recovered. This is now a solved problem due to replication and fast failovers.
-* The ACID requirements of relational databases were too demanding and contentious for a pure implementation to practically scale.
-* The industry standard distributed transaction protocol (XA) overreached on flexibility and became too chatty.
-* Subpar schemes for transaction management: Some added too much additional overhead, and some paid lip service and defeated the reliability of 2PC.
-
-This document intends to address the above concerns with some practical trade-offs.
-
-Although MySQL supports the XA protocol, it’s been unusable due to bugs. Version 5.7 claims to have fixed them all, but the more common versions in use are 5.6 and below, and we need to make 2PC work for those versions also. Even at 5.7, we still have to contend with the chattiness of XA, and the fact that it’s unused code.
-
-The most critical component of the 2PC protocol is the `Prepare` functionality. There is actually a way to implement Prepare on top of a transactional system. This is explained in a [Vitess Blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/), which will be used as foundation for this design.
-
-Familiarity with the blog and the [2PC algorithm](http://c2.com/cgi/wiki?TwoPhaseCommit) are required to understand the rest of the document.
-
-# Overview
-
-Vitess will add a few variations to the traditional 2PC algorithm:
-
-* There is a presumption that the Resource Managers (aka participants) have to know upfront that they’re involved in a 2PC transaction. Many of the APIs force the application to make this choice at the beginning of a transaction. This is actually not required. In the case of Vitess, a distributed transaction will start off just like before, with a normal Begin. It will be converted only if the application requests a 2PC commit. This approach allows us to optimize some common use cases.
-* The 2PC algorithm does not specify how the Transaction Manager maintains the metadata. If you work through all the failure modes, it will become evident that the manager must also be an HA transactional system that must survive failures without data loss. Since the VTTablets are already built to be HA, there’s no reason to build yet another system. So, we’ll split the role of the Transaction Manager into two:
- * The Coordinator will be stateless and will orchestrate the work. VTGates are the perfect fit for this role.
- * One of the VTTablets will be designated as the Metadata Manager (MM). It will be used to store the metadata and perform the necessary state transitions.
-* If we designate one of the participant VTTablets to be the MM, then that database can avoid the prepare phase: If you assume there are N participants, the typical explanation says that you perform prepares from 1->N, and then commit from 1->N. If we instead went from 1->N for prepare, and N->1 for commit. Then the N’th database would perform a Prepare->Decide to commit->Commit. Instead, we execute the DML needed to transition the metadata state to ‘Decide to Commit’ as part of the app transaction, and commit it. If the commit fails, then it’s treated as the prepare having failed. If the commit succeeds, then it’s treated as all three operations having succeeded.
-* The Prepare functionality will be implemented as explained in the [blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/).
-
-Combining the above changes allows us to keep the most common use case efficient: A transaction that affects only one database incurs no additional cost due to 2PC.
-
-In the case of multi-db transactions, we can choose the participant with the highest number of statements to be the MM; That database will not incur the cost of going through the Prepare phase, and we also avoid requiring a separate transaction to persist the commit decision.
-
-## ACID trade-offs
-
-The core 2PC algorithm only guarantees Atomicity. Either the entire transaction commits, or it’s rolled back completely.
-
-Consistency is an orthogonal property because it’s mainly related to making sure the values in the database don’t break relational rules.
-
-Durability is guaranteed by each database, and the collective durability is inherited by the 2PC process.
-
-Isolation requires additional work. If a client tries to read data in the middle of a distributed commit, it could see partial commits. In order to prevent this, databases put read locks on rows that are involved in a 2PC. So, anyone that tries to read them will have to wait till the transaction is resolved. This type of locking is so contentious that it often defeats the purpose of distributing the data.
-
-In reality, this level of Isolation guarantee is overkill for most code paths of an application. So, it’s more practical to relax this for the sake of scalability, and let the application use explicit locks where it thinks better Isolation is required.
-
-On the other hand, Atomicity is critical; Non-atomic transactions can result in partial commits, which is effectively corrupt data. As stated earlier, this is what we get from 2PC.
-
-# Glossary
-
-We introduced many terms in the previous sections. It’s time for a quick recap:
-
-* Distributed Transaction: Any transaction that spans multiple databases is a distributed transaction. It does not imply any commit protocol.
-* Best Effort Commit (BEC): This protocol is what’s currently supported by Vitess, where commits are sent to all participants. This could result in partial commits if there are failures during the process.
-* Two-Phase Commit (2PC): This is the protocol that guarantees Atomic distributed commits.
-* Coordinator: This is a stateless process that is responsible for initiating, resuming and completing a 2PC transaction. This role is fulfilled by the VTGates.
-* Resource Manager aka Participant: Any database that’s involved in a distributed transaction. Only VTTablets can be participants.
-* Metadata Manager (MM): The database responsible for storing the metadata and performing its state transitions. In Vitess, one of the participants will be designated as the MM.
-* Watchdog: The watchdog looks for abandoned transactions and initiates the process to get them resolved.
-* Distributed Transaction ID (DTID): A unique identifier for a 2PC transaction.
-* VTTablet transaction id (VTID): This is the individual transaction ID for each VTTablet participant that contains the application’s statements to be committed/rolled back.
-* Decision: This is the irreversible decision to either commit or rollback the transaction. Although confusing, this is also referred to as the ‘Commit Decision’. We’ll also indirectly refer to this as ‘Metadata state transition’. This is because a transaction undergoes many state changes. The Decision is a critical transition. So, it warrants its own name.
-
-# Life of a 2PC transaction
-
-* The application issues a Begin to VTGate. At this time, the Session proto is just updated to indicate that it’s in a transaction.
-* The application sends DMLs to VTGate. As these DMLs are received, VTGate starts transactions against various VTTablets. The transaction id for each VTTablet (VTID) is stored in the Session proto.
-* The application requests a 2PC. Until this point, there is no difference between a BEC and a 2PC. In the case of BEC, VTGate just sends the commit to all participating VTTablets. For 2PC, VTGate initiates and executes the workflow described in the subsequent steps.
-
-## Prepare
-
-* Generate a DTID.
-* The VTTablet with the most DMLs is singled out as the MM. To this VTTablet, issue a CreateTransaction command with the DTID. This information will be monitored by the watchdogs.
-* Issue a Prepare to all other VTTablets. Send the DTID as part of the prepare request.
-
-## Commit
-
-* Execute the 3-in-1 action of Prepare->Decide->Commit (StartCommit) for the MM VTTablet. This will change the metadata state to ‘Commit’.
-* Issue a CommitPrepared commands to all the prepared VTTablets using the DTID.
-* Delete the transaction in the MM (ConcludeTransaction).
-
-## Rollback
-
-Any form of failure until the point of saving the commit decision will result in a decision to rollback.
-
-* Transition the metadata state to ‘Rollback’.
-* Issue RollbackPrepared commands to the prepared transactions using the DTID.
-* If the original VTGate is still orchestrating, rollback the unprepared transactions using their VTIDs. The initial version will just execute RollbackPrepared on all participants with the assumption that any unprepared transactions will be rolled back by the transaction killer.
-* Delete the transaction in the MM (ConcludeTransaction).
-
-## Watchdog
-
-A watchdog will kick in if a transaction remains unresolved for too long. If such a transaction is found, it will be in one of three states:
-
-1. Prepare
-2. Rollback
-3. Commit
-
-For #1 and #2, the Rollback workflow is initiated. For #3, the commit is resumed.
-
-The following diagram illustrates the life-cycle of a Vitess transaction.
-
-![](https://raw.githubusercontent.com/vitessio/vitess/main/doc/design-docs/TxLifecycle.png)
-
-A transaction generally starts off as a single DB transaction. It becomes a distributed transaction as soon as more than one VTTablet is affected. If the app issues a rollback, then all participants are simply rolled back. If a BEC is issued, then all transactions are individually committed. These actions are the same irrespective of single or distributed transactions.
-
-In the case of a single DB transactions, a 2PC is also a BEC.
-
-If a 2PC is issued to a distributed transaction, the new machinery kicks in. Actual metadata is created. The state starts off as ‘Prepare’ and remains so while Prepares are issued. In this state, only Prepares are allowed.
-
-If Prepares are successful, then the state is transitioned to ‘Commit’. In the Commit state, only commits are allowed. By the guarantee given by the Prepare contract, all databases will eventually accept the commits.
-
-Any failure during the Prepare state will result in the state being transitioned to ‘Rollback’. In this state, only rollbacks are allowed.
-
-# Component interactions
-
-In order to make 2PC work, the following pieces of functionality have to be built:
-
-* DTID generation
-* Prepare API
-* Metadata Manager API
-* Coordinator
-* Watchdogs
-* Client API
-* Production support
-
-The diagram below show how the various components interact.
-
-![](https://raw.githubusercontent.com/vitessio/vitess/main/doc/design-docs/TxInteractions.png)
-
-The detailed design explains all the functionalities and interactions.
-
-# Detailed Design
-
-## DTID generation
-
-Currently, transaction ids are issued by VTTablets (VTID), and those ids are considered local. In order to coordinate distributed transactions, a new system is needed to identify and track them. This is needed mainly so that the watchdog process can pick up an orphaned transaction and resolve it to completion.
-
-The DTID will be generated by taking the VTID of the MM and prefixing it with the keyspace, shard info and a sequence to prevent collisions. If the MM’s VTID was ‘1234’ for keyspace ‘order’ and shard ‘40-80’, then the DTID would be ‘order:40-80:1234’. A collision could still happen if there is a failover and the new vttablet’s starting VTID had overlaps with the previous instance. To prevent this, the starting VTID of the vttablet will be adjusted to a value higher than any used by the prepared GTIDs.
-
-## Prepare API
-
-The Prepare API will be provided by VTTablet, and will follow the guidelines of the [blog](https://vitess.io/blog/2016-06-07-distributed-transactions-in-vitess/). It’s essentially three functions: Prepare, CommitPrepared and RollbackPrepared.
-
-### Statement list and state
-
-Every transaction will have to remember its statement list. VTTablet already records queries against each transaction (RecordQuery). However, it’s currently the original queries of the request. This has to be changed to the DMLs that are sent to the database.
-
-The current RecordQuery functionality is mainly for troubleshooting and diagnostics. So, it’s not very material if we changed it to record actual DMLs. It would remain equally useful.
-
-### Schema
-
-The tables will be in the \_vt database. All time stamps are represented as unix nanoseconds.
-
-The redo_state table needs to support the following use cases:
-
-* Prepare: Create row.
-* Recover & repair tool: Fetch all transactions: full joined table scan.
-* Resolve: Transition state for a DTID: update where dtid = :dtid and state = :prepared.
-* Watchdog: Count unresolved transactions that are older than X: select where time_created < X.
-* Delete a resolved transaction: delete where dtid = :dtid.
-
-```
-create table redo_state(
- dtid varbinary(512),
- state bigint, // state can be 0: Failed, 1: Prepared.
- time_created bigint,
- primary key(dtid)
-)
-```
-
-The redo_statement table is a detail of redo_log_transaction table. It needs the ability to read the statements of a dtid in the correct order (by id), and the ability to delete all statements for a given dtid:
-
-```
-create table redo_statement(
- dtid varbinary(512),
- id bigint,
- statement mediumblob,
- primary key(dtid, id)
-)
-```
-
-### Prepare
-
-This function will take a DTID and a VTID as input.
-
-* Get the tx conn for use, and move it to the prepared pool. If the prepared pool is full, rollback the transaction and return an error.
-* Save the metadata into the redo logs as a separate transaction. If this step fails, the main transaction is also rolled back and an error is returned.
-
-If VTTablet is asked to shut down or change state from primary, the code that waits for tx pool must internally rollback the prepared transactions and return them to the tx pool. Note that the rollback must happen only after the currently pending (non-prepared) transactions are resolved. If a pending transaction is waiting on a lock held by a prepared transaction, it will eventually timeout and get rolled back.
-
-Eventually, a different VTTablet will be transitioned to become the primary. At that point, it will recreate the unresolved transactions from redo logs. If the replays fail, we’ll raise an alert and start the query service anyway.
-
-Typically, a replay is not expected to fail because vttablet does not allow writing to the database until the replays are done. Also, no external agent should be allowed to perform writes to MySQL, which is a loosely enforced Vitess requirement. Other vitess processes do write to MySQL directly, but they’re not the kind that interfere with the normal flow of transactions.
-
-*Unresolved issue: If a resharding happens in the middle of a prepare, such a transaction potentially becomes multiple different transactions in a target shard. For now, this means that a resharding failover has to wait for all prepared transactions to be resolved. Special code has to be written in vttablet to handle this specific workflow.*
-
-VTTablet always brackets DMLs with BEGIN-COMMIT. This will ensure that no autocommit statements can slip through if connections are inadvertently closed out of sequence.
-
-### CommitPrepared
-
-* Extract the transaction from the Prepare pool.
- * If transaction is in the failed pool, return an error.
- * If not found, return success (it was already resolved).
-* As part of the current transaction (VTID), transition the state in redo_log to Committed and commit it.
- * On failure, move it to the failed pool. Subsequent commits will permanently fail.
-* Return the conn to the tx pool.
-
-### RollbackPrepared
-
-* Delete the redo log entries for the dtid in a separate transaction.
-* Extract the transaction from the Prepare pool, rollback and return the conn to the tx pool.
-
-## Metadata Manager API
-
-The MM functionality is provided by VTTablet. This could be implemented as a separate service, but designating one of the
-participants to act as the manager gives us some optimization opportunities. The supported functions are CreateTransaction, StartCommit, SetRollback, and ConcludeTransaction.
-
-### Schema
-
-The transaction metadata will consist of two tables. It will need to fulfil the following use cases:
-
-* CreateTransaction: Create row.
-* Transition state: update where dtid = :dtid and state = :prepare.
-* Resolve flow: select dt_state & dt_participant where dtid = :dtid.
-* Watchdog: full joined table scan where time_created < X.
-* Delete a resolved transaction: delete where dtid = :dtid.
-
-```
-create table dt_state(
- dtid varbinary(512),
- state bigint, // state PREPARE, COMMIT, ROLLBACK as defined in the protobuf for TransactionMetadata.
- time_created bigint,
- primary key(dtid)
-)
-```
-
-```
-create table dt_participant(
- dtid varbinary(512),
- id bigint,
- keyspace varchar(256),
- shard varchar(256),
- primary key (dtid, id)
-)
-```
-
-### CreateTransaction
-
-This statement creates a row in transaction. The initial state will be PREPARE. A successful create begins the 2PC process. This will be followed by VTGate issuing prepares to the rest of the participants.
-
-### StartCommit
-
-This function can only be called for a transaction that’s not been abandoned. A watchdog that initiates a recovery will never make a decision to commit. This means that we can assume that the participant’s transaction (VTID) is still alive.
-
-The function will issue a DML that will transition the state from PREPARE to COMMIT as part of the participant’s transaction (VTID). If not successful, it returns an error, which will be treated as failure to prepare, and will cause VTGate to rollback the rest of the transactions.
-
-If successful, a commit is issued, which will also finalize the decision to commit the rest of the transactions.
-
-### SetRollback
-
-SetRollback transitions the state from PREPARE to ROLLBACK using an independent transaction. When this function is called, the MM’s transaction (VTID) may still be alive. So, we infer the transaction id from the dtid and perform a best effort rollback. If the transaction is not found, it’s a no-op.
-
-### ConcludeTransaction
-
-This function just deletes the row.
-
-### ReadTransaction
-
-This function returns the transaction info given the dtid.
-
-### ReadTwopcInflight
-
-This function returns all transaction metadata including the info in the redo logs.
-
-## Coordinator
-
-VTGate is already responsible for BEC, aka Commit(Atomic=false), it can naturally be extended to act as the coordinator for 2PC. It needs to support Commit(Atomic=true), and ResolveTransaction.
-
-If there are operational errors before the commit decision, the transaction is rolled back. If the rollback fails, or if a failure happens after the commit decision, we give up. The watchdog will later pick it up and try to resolve it.
-
-### Commit(Atomic=true)
-
-This call is issued on an active transaction, whose Session info is known. The function will perform the workflow described in the life of a transaction:
-
-* Identify a VTTablet as MM, and generate a DTID based on the identity of the MM.
-* CreateTransaction on the MM
-* Prepare on all other participants
-* StartCommit on the MM
-* CommitPrepared on all other participants
-* ResolveTransaction on the MM
-
-Any non-operational failure before StartCommit will trigger the rollback workflow:
-
-* SetRollback on the MM
-* RollbackPrepared on all participants for which Prepare was sent
-* Rollback on all other participants
-* ResolveTransaction on the MM
-
-### ResolveTransaction
-
-This function is called by a watchdog if a VTGate had failed to complete a transaction. It could be due to VTGate crashing, or other unrecoverable errors.
-
-The function starts off with a ReadTransaction, and based on the state, it performs the following actions:
-
-* Prepare: SetRollback and initiate rollback workflow.
-* Rollback: initiate rollback workflow.
-* Commit: initiate commit workflow.
-
-Commit workflow:
-
-* CommitPrepared on all participants.
-* ResolveTransaction on the MM
-
-Rollback workflow:
-
-* RollbackPrepared on all participants.
-* ResolveTransaction on the MM.
-
-## Watchdogs
-
-The stateless VTGates are considered ephemeral and can fail at any time, which means that transactions could be abandoned in the middle of a distributed commit. To mitigate this, every primary vttablet will poll its dt_state table for distributed transactions that are lingering. If any such transaction is found, it invokes VTGate with that dtid for a Resolve to be retried.
-
-_This is not a clean design because it introduces a backward dependency from VTTablet to VTGate. However, it saves us the need to create yet another server that will add to the overall complexity of the deployment. It was decided that this is a worthy trade-off._
-
-## Client API
-
-The client API change will be an additional flag to the Commit call, where the app can set Atomic to true or false.
-
-## Production support
-
-Beyond the basic functionality, additional work is needed to make 2PC viable for production. The areas of concern are monitoring, tooling and configuration.
-
-### Monitoring
-
-To facilitate monitoring, new variables have to be exported.
-
-VTTablet
-
-* The Transactions hierarchy will be extended to report CommitPrepared and RollbackPrepared stats, which includes histograms. Since Prepare is an intermediate step, it will not be rolled up in this variable.
-* For Prepare, two new variables will be created:
- * Prepare histogram will report prepare timings.
- * PrepareStatements histogram will report the number of statements for each Prepare.
-* New histogram variables will be exported for all the new MM functions.
-* LingeringCount is a gauge that reports if a transaction has been unresolved for too long. This most likely means that it’s repeatedly failing. So, an alert should be raised. This applies to prepared transactions also.
-* Any unexpected errors during a 2PC will increment a counter for InternalErrors, which should already be set to raise an alert.
-
-VTGate
-
-* TwoPCTransactions will report Commit, Rollback, ResolveCommit and ResolveRollback stats. The Resolve subvars are for the ResolveTransaction function.
-* TwoPCParticipants will report the transaction count and the ParticipantCount. This is a way to track the average number of participants per 2PC transaction.
-
-### Tooling
-
-For vttablet, a new URL, /twopcz, will display unresolved twopc transactions and transactions that are in the Prepare state. It will also provide buttons to force the following actions:
-
-* Discard a Prepare that failed to commit.
-* Force a commit or rollback of a prepared transaction.
-* Resolve a distributed transaction.
-
-# Data guarantees
-
-Although the above workflows are foolproof, they do rely on the data guarantees provided by the underlying systems and the fact that prepared transactions can get killed only together with vttablet. Of these, one failure mode has to be visited: It’s possible that there’s data loss when a primary goes down and a new replica gets elected as the new primary. This loss is highly mitigated with semi-sync turned on, but it’s still possible. In such situations, we have to describe how 2PC will behave.
-
-In all of the scenarios below, there is irrecoverable data loss. But the system needs to alert correctly, and we must be able to make best effort recovery and move on. For now, these scenarios require operator intervention, but the system could be made to automatically perform these as we gain confidence.
-
-## Loss of MM’s transaction and metadata
-
-Scenario: An MM VTTablet experiences a network partition, and the coordinator continues to commit transactions. Eventually, there’s a reparent and all these transactions are lost.
-
-In this situation, it’s possible that the participants are in a prepared state, but if you looked for their metadata, you’ll not find it because it’s lost. These transactions will remain in the prepared state forever, holding locks. If this happened, a Lingering alert will be raised. An operator will then realize that there was data loss, and can manually rollback these transactions from the /twopcz dashboard.
-
-## Loss of a Prepared transaction
-
-The previous scenario could happen to one of the participants instead. If so, the 2PC transaction will become unresolvable because an attempt to commit the prepared transaction will repeatedly fail on the participant that lost the prepared transaction.
-
-This situation will raise a 2PC Lingering transaction alert. The operator can force the 2PC transaction as resolved.
-
-## Loss of MM’s transaction after commit decision
-
-Scenario: Network partition happened after metadata was created. VTGate performs a StartCommit, succeeds in a few commits and crashes. Now, some transactions are in the prepared state. After the recovery, the metadata of the 2PC transaction is also in the Prepared state.
-
-The watchdog will grab this transaction and invoke a ResolveTransaction. The VTGate will then make a decision to rollback, because all it sees is a 2PC in Prepare state. It will attempt to rollback all participants, while some might have already committed. A failure like this will be undetectable.
-
-## Prepared transaction gets killed
-
-It is possible for an external agent to kill the connection of a prepared transaction. If this happened, MySQL will roll it back. If the system is serving live traffic, it may make forward progress in such a way that the transaction may not be replayable, or may replay with different outcome.
-
-This is a very unlikely occurrence. But if something like this happen, then an alert will be raised when the coordinator finds that the transaction is missing. That transaction will be marked as Failed until an operator resolves it.
-
-But if there’s a failover before the transaction is marked as failed, it will be resurrected over future transaction possibly with incorrect changes. A failure like this will be undetectable.
-
-# Testing Plan
-
-The main workflow of 2PC is fairly straightforward and easy to test. What makes it complicated are the failure modes. But those have to be tested thoroughly. Otherwise, we’ll not be able to gain the confidence to take this to production.
-
-Some important failure scenarios that must be tested are:
-
-* Correct shutdown of vttablet when it has prepared transactions.
-* Resurrection of prepared transactions when a vttablet becomes a primary.
-* A reparent of a VTTablet that has prepared transactions. This is effectively tested by the previous two steps, but it will be nice as an integration test. It will be even nicer if we could go a step further and see if VTGate can still complete a transaction if a reparent happened in the middle of a commit.
-
-# Innovation
-
-This design has a bunch of innovative ideas. However, it’s possible that they’ve been used before under other circumstances, or even 2PC itself. Here’s a summary of all the new ideas in this document, some with more merit than others:
-
-* Moving away from the heavyweight XA standard.
-* Implementing Prepare functionality on top of a system that does not inherently support it.
-* Storing the Metadata in a transactional engine and making the coordinator stateless.
-* Storing the Metadata with one of the participants and avoiding the cost of a Prepare for that participant.
-* Choosing to relax Isolation guarantees while maintaining Atomicity.
From f6067e04dee063f4b6b254ca2b6caf7b2ba51df6 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Tue, 12 Nov 2024 15:53:18 +0200
Subject: [PATCH 57/78] Online DDL: `--singleton-table` DDL strategy flag
(#17169)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
.../scheduler/onlineddl_scheduler_test.go | 27 ++++++++++++++-----
go/vt/schema/ddl_strategy.go | 7 +++++
go/vt/schema/ddl_strategy_test.go | 18 +++++++++++++
go/vt/vttablet/onlineddl/executor.go | 11 +++++++-
4 files changed, 56 insertions(+), 7 deletions(-)
diff --git a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
index dca28e52a8c..7b8180e80fb 100644
--- a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
+++ b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
@@ -1685,7 +1685,7 @@ DROP TABLE IF EXISTS stress_test
t.Run("terminate throttled migration", func(t *testing.T) {
onlineddl.CheckMigrationStatus(t, &vtParams, shards, openEndedUUID, schema.OnlineDDLStatusRunning)
onlineddl.CheckCancelMigration(t, &vtParams, shards, openEndedUUID, true)
- status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, openEndedUUID, 20*time.Second, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
+ status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, openEndedUUID, normalWaitTime, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, openEndedUUID, schema.OnlineDDLStatusCancelled)
})
@@ -1718,6 +1718,21 @@ DROP TABLE IF EXISTS stress_test
checkTable(t, tableName, true)
})
+ // singleton-table
+ t.Run("fail singleton-table same table single submission", func(t *testing.T) {
+ _ = testOnlineDDLStatement(t, createParams(multiAlterTableThrottlingStatement, "vitess --singleton-table", "vtctl", "", "hint_col", "singleton-table migration rejected", false))
+ // The first of those migrations will make it, the other two will be rejected
+ onlineddl.CheckCancelAllMigrations(t, &vtParams, 1)
+ })
+ t.Run("fail singleton-table same table multi submission", func(t *testing.T) {
+ uuid := testOnlineDDLStatement(t, createParams(alterTableThrottlingStatement, "vitess --singleton-table --postpone-completion", "vtctl", "", "hint_col", "", false))
+ uuids = append(uuids, uuid)
+ onlineddl.WaitForMigrationStatus(t, &vtParams, shards, uuid, normalWaitTime, schema.OnlineDDLStatusRunning)
+
+ _ = testOnlineDDLStatement(t, createParams(alterTableThrottlingStatement, "vitess --singleton-table --postpone-completion", "vtctl", "", "hint_col", "singleton-table migration rejected", false))
+ onlineddl.CheckCancelAllMigrations(t, &vtParams, 1)
+ })
+
var throttledUUIDs []string
// singleton-context
t.Run("postponed migrations, singleton-context", func(t *testing.T) {
@@ -1774,29 +1789,29 @@ DROP TABLE IF EXISTS stress_test
uuids = append(uuids, uuid)
_ = testOnlineDDLStatement(t, createParams(dropNonexistentTableStatement, "vitess --singleton", "vtgate", "", "hint_col", "rejected", true))
onlineddl.CheckCompleteAllMigrations(t, &vtParams, len(shards))
- status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, uuid, 20*time.Second, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
+ status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, uuid, schema.OnlineDDLStatusComplete)
})
t.Run("fail concurrent singleton-context with revert", func(t *testing.T) {
revertUUID := testRevertMigration(t, createRevertParams(uuids[len(uuids)-1], "vitess --allow-concurrent --postpone-completion --singleton-context", "vtctl", "rev:ctx", "", false))
- onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, 20*time.Second, schema.OnlineDDLStatusRunning)
+ onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, normalWaitTime, schema.OnlineDDLStatusRunning)
// revert is running
_ = testOnlineDDLStatement(t, createParams(dropNonexistentTableStatement, "vitess --allow-concurrent --singleton-context", "vtctl", "migrate:ctx", "", "rejected", true))
onlineddl.CheckCancelMigration(t, &vtParams, shards, revertUUID, true)
- status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, 20*time.Second, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
+ status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, normalWaitTime, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, revertUUID, schema.OnlineDDLStatusCancelled)
})
t.Run("success concurrent singleton-context with no-context revert", func(t *testing.T) {
revertUUID := testRevertMigration(t, createRevertParams(uuids[len(uuids)-1], "vitess --allow-concurrent --postpone-completion", "vtctl", "rev:ctx", "", false))
- onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, 20*time.Second, schema.OnlineDDLStatusRunning)
+ onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, normalWaitTime, schema.OnlineDDLStatusRunning)
// revert is running but has no --singleton-context. Our next migration should be able to run.
uuid := testOnlineDDLStatement(t, createParams(dropNonexistentTableStatement, "vitess --allow-concurrent --singleton-context", "vtctl", "migrate:ctx", "", "", false))
uuids = append(uuids, uuid)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, uuid, schema.OnlineDDLStatusComplete)
onlineddl.CheckCancelMigration(t, &vtParams, shards, revertUUID, true)
- status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, 20*time.Second, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
+ status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, revertUUID, normalWaitTime, schema.OnlineDDLStatusFailed, schema.OnlineDDLStatusCancelled)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
onlineddl.CheckMigrationStatus(t, &vtParams, shards, revertUUID, schema.OnlineDDLStatusCancelled)
})
diff --git a/go/vt/schema/ddl_strategy.go b/go/vt/schema/ddl_strategy.go
index e3b03c3f330..4195c7da863 100644
--- a/go/vt/schema/ddl_strategy.go
+++ b/go/vt/schema/ddl_strategy.go
@@ -38,6 +38,7 @@ const (
skipTopoFlag = "skip-topo" // legacy. Kept for backwards compatibility, but unused
singletonFlag = "singleton"
singletonContextFlag = "singleton-context"
+ singletonTableFlag = "singleton-table"
allowZeroInDateFlag = "allow-zero-in-date"
postponeLaunchFlag = "postpone-launch"
postponeCompletionFlag = "postpone-completion"
@@ -177,6 +178,11 @@ func (setting *DDLStrategySetting) IsSingletonContext() bool {
return setting.hasFlag(singletonContextFlag)
}
+// IsSingletonTable checks if strategy options include --singleton-table
+func (setting *DDLStrategySetting) IsSingletonTable() bool {
+ return setting.hasFlag(singletonTableFlag)
+}
+
// IsAllowZeroInDateFlag checks if strategy options include --allow-zero-in-date
func (setting *DDLStrategySetting) IsAllowZeroInDateFlag() bool {
return setting.hasFlag(allowZeroInDateFlag)
@@ -322,6 +328,7 @@ func (setting *DDLStrategySetting) RuntimeOptions() []string {
case isFlag(opt, skipTopoFlag): // deprecated flag, parsed for backwards compatibility
case isFlag(opt, singletonFlag):
case isFlag(opt, singletonContextFlag):
+ case isFlag(opt, singletonTableFlag):
case isFlag(opt, allowZeroInDateFlag):
case isFlag(opt, postponeLaunchFlag):
case isFlag(opt, postponeCompletionFlag):
diff --git a/go/vt/schema/ddl_strategy_test.go b/go/vt/schema/ddl_strategy_test.go
index c394907b98a..dd8fec45351 100644
--- a/go/vt/schema/ddl_strategy_test.go
+++ b/go/vt/schema/ddl_strategy_test.go
@@ -189,6 +189,8 @@ func TestParseDDLStrategy(t *testing.T) {
options string
isDeclarative bool
isSingleton bool
+ isSingletonContext bool
+ isSingletonTable bool
isPostponeLaunch bool
isPostponeCompletion bool
isInOrderCompletion bool
@@ -258,6 +260,20 @@ func TestParseDDLStrategy(t *testing.T) {
runtimeOptions: "",
isSingleton: true,
},
+ {
+ strategyVariable: "vitess --singleton-context",
+ strategy: DDLStrategyVitess,
+ options: "--singleton-context",
+ runtimeOptions: "",
+ isSingletonContext: true,
+ },
+ {
+ strategyVariable: "vitess --singleton-table",
+ strategy: DDLStrategyVitess,
+ options: "--singleton-table",
+ runtimeOptions: "",
+ isSingletonTable: true,
+ },
{
strategyVariable: "online -postpone-launch",
strategy: DDLStrategyOnline,
@@ -387,6 +403,8 @@ func TestParseDDLStrategy(t *testing.T) {
assert.Equal(t, ts.options, setting.Options)
assert.Equal(t, ts.isDeclarative, setting.IsDeclarative())
assert.Equal(t, ts.isSingleton, setting.IsSingleton())
+ assert.Equal(t, ts.isSingletonContext, setting.IsSingletonContext())
+ assert.Equal(t, ts.isSingletonTable, setting.IsSingletonTable())
assert.Equal(t, ts.isPostponeCompletion, setting.IsPostponeCompletion())
assert.Equal(t, ts.isPostponeLaunch, setting.IsPostponeLaunch())
assert.Equal(t, ts.isAllowConcurrent, setting.IsAllowConcurrent())
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index 97a5597d71f..555cadd53ea 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -4901,7 +4901,7 @@ func (e *Executor) submitCallbackIfNonConflicting(
) (
result *sqltypes.Result, err error,
) {
- if !onlineDDL.StrategySetting().IsSingleton() && !onlineDDL.StrategySetting().IsSingletonContext() {
+ if !onlineDDL.StrategySetting().IsSingleton() && !onlineDDL.StrategySetting().IsSingletonContext() && !onlineDDL.StrategySetting().IsSingletonTable() {
// not a singleton. No conflict
return callback()
}
@@ -4947,6 +4947,15 @@ func (e *Executor) submitCallbackIfNonConflicting(
}
// no conflict? continue looking for other pending migrations
}
+ case onlineDDL.StrategySetting().IsSingletonTable():
+ // We will reject this migration if there's any pending migration for the same table
+ for _, row := range rows {
+ pendingTableName := row["mysql_table"].ToString()
+ if onlineDDL.Table == pendingTableName {
+ pendingUUID := row["migration_uuid"].ToString()
+ return vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "singleton-table migration rejected: found pending migration: %s for the same table: %s", pendingUUID, onlineDDL.Table)
+ }
+ }
}
return nil
}()
From c72bbdce9ea597fe4785496ebfd153ac3deb2b39 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Thu, 14 Nov 2024 14:18:30 +0530
Subject: [PATCH 58/78] e2e framework change to find empty throttler config
(#17228)
Signed-off-by: Harshit Gangal
---
go/vt/vttablet/endtoend/framework/server.go | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/go/vt/vttablet/endtoend/framework/server.go b/go/vt/vttablet/endtoend/framework/server.go
index 2cd3ccc354c..0124bb992ba 100644
--- a/go/vt/vttablet/endtoend/framework/server.go
+++ b/go/vt/vttablet/endtoend/framework/server.go
@@ -65,11 +65,16 @@ func StartCustomServer(ctx context.Context, connParams, connAppDebugParams mysql
TabletType: topodatapb.TabletType_PRIMARY,
}
TopoServer = memorytopo.NewServer(ctx, "")
+ // Create the serving keyspace for throttler.
+ err := TopoServer.UpdateSrvKeyspace(ctx, "", "vttest", &topodatapb.SrvKeyspace{})
+ if err != nil {
+ return vterrors.Wrap(err, "could not create serving keyspace in topo")
+ }
srvTopoCounts := stats.NewCountersWithSingleLabel("", "Resilient srvtopo server operations", "type")
Server = tabletserver.NewTabletServer(ctx, vtenv.NewTestEnv(), "", cfg, TopoServer, &topodatapb.TabletAlias{}, srvTopoCounts)
Server.Register()
- err := Server.StartService(Target, dbcfgs, nil /* mysqld */)
+ err = Server.StartService(Target, dbcfgs, nil /* mysqld */)
if err != nil {
return vterrors.Wrap(err, "could not start service")
}
From 3499a77294a36bc61a7f139dd5737194312f9f23 Mon Sep 17 00:00:00 2001
From: Harshit Gangal
Date: Thu, 14 Nov 2024 15:44:49 +0530
Subject: [PATCH 59/78] go mod update (#17227)
Signed-off-by: Harshit Gangal
---
go.mod | 170 +-
go.sum | 354 +-
go/vt/mysqlctl/s3backupstorage/s3_test.go | 2 +-
go/vt/proto/binlogdata/binlogdata.pb.go | 730 +-
.../proto/binlogdata/binlogdata_vtproto.pb.go | 2 +-
go/vt/proto/binlogservice/binlogservice.pb.go | 2 +-
go/vt/proto/logutil/logutil.pb.go | 26 +-
go/vt/proto/logutil/logutil_vtproto.pb.go | 2 +-
go/vt/proto/mysqlctl/mysqlctl.pb.go | 444 +-
go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go | 2 +-
go/vt/proto/query/query.pb.go | 1500 +----
go/vt/proto/query/query_vtproto.pb.go | 2 +-
go/vt/proto/queryservice/queryservice.pb.go | 2 +-
.../replicationdata/replicationdata.pb.go | 114 +-
.../replicationdata_vtproto.pb.go | 2 +-
go/vt/proto/tableacl/tableacl.pb.go | 48 +-
go/vt/proto/tableacl/tableacl_vtproto.pb.go | 2 +-
.../tabletmanagerdata/tabletmanagerdata.pb.go | 3282 ++-------
.../tabletmanagerdata_vtproto.pb.go | 2 +-
.../tabletmanagerservice.pb.go | 2 +-
go/vt/proto/throttlerdata/throttlerdata.pb.go | 246 +-
.../throttlerdata/throttlerdata_vtproto.pb.go | 2 +-
.../throttlerservice/throttlerservice.pb.go | 2 +-
go/vt/proto/topodata/topodata.pb.go | 488 +-
go/vt/proto/topodata/topodata_vtproto.pb.go | 2 +-
go/vt/proto/vschema/vschema.pb.go | 356 +-
go/vt/proto/vschema/vschema_vtproto.pb.go | 2 +-
go/vt/proto/vtadmin/vtadmin.pb.go | 2908 ++------
go/vt/proto/vtadmin/vtadmin_vtproto.pb.go | 2 +-
go/vt/proto/vtctldata/vtctldata.pb.go | 5988 +++--------------
go/vt/proto/vtctldata/vtctldata_vtproto.pb.go | 2 +-
go/vt/proto/vtctlservice/vtctlservice.pb.go | 2 +-
go/vt/proto/vtgate/vtgate.pb.go | 422 +-
go/vt/proto/vtgate/vtgate_vtproto.pb.go | 2 +-
go/vt/proto/vtgateservice/vtgateservice.pb.go | 2 +-
go/vt/proto/vtrpc/vtrpc.pb.go | 48 +-
go/vt/proto/vtrpc/vtrpc_vtproto.pb.go | 2 +-
go/vt/proto/vttest/vttest.pb.go | 70 +-
go/vt/proto/vttest/vttest_vtproto.pb.go | 2 +-
go/vt/proto/vttime/vttime.pb.go | 48 +-
go/vt/proto/vttime/vttime_vtproto.pb.go | 2 +-
41 files changed, 3351 insertions(+), 13937 deletions(-)
diff --git a/go.mod b/go.mod
index 1d2d9201f04..ccc4cc32b3b 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module vitess.io/vitess
go 1.23.3
require (
- cloud.google.com/go/storage v1.43.0
+ cloud.google.com/go/storage v1.46.0
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6
github.com/Azure/azure-pipeline-go v0.2.3
github.com/Azure/azure-storage-blob-go v0.15.0
@@ -15,9 +15,9 @@ require (
github.com/corpix/uarand v0.1.1 // indirect
github.com/dave/jennifer v1.7.1
github.com/evanphx/json-patch v5.9.0+incompatible
- github.com/fsnotify/fsnotify v1.7.0
+ github.com/fsnotify/fsnotify v1.8.0
github.com/go-sql-driver/mysql v1.7.1
- github.com/golang/glog v1.2.2
+ github.com/golang/glog v1.2.3
github.com/golang/protobuf v1.5.4 // indirect
github.com/golang/snappy v0.0.4
github.com/google/go-cmp v0.6.0
@@ -27,28 +27,28 @@ require (
github.com/gorilla/mux v1.8.1
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
- github.com/hashicorp/consul/api v1.29.4
+ github.com/hashicorp/consul/api v1.30.0
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
github.com/hashicorp/serf v0.10.1 // indirect
github.com/icrowley/fake v0.0.0-20180203215853-4178557ae428
- github.com/klauspost/compress v1.17.9
+ github.com/klauspost/compress v1.17.11
github.com/klauspost/pgzip v1.2.6
github.com/krishicks/yaml-patch v0.0.10
github.com/magiconair/properties v1.8.7 // indirect
github.com/minio/minio-go v0.0.0-20190131015406-c8a261de75c1
github.com/montanaflynn/stats v0.7.1
github.com/olekukonko/tablewriter v0.0.5
- github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8
+ github.com/opentracing-contrib/go-grpc v0.1.0
github.com/opentracing/opentracing-go v1.2.0
github.com/patrickmn/go-cache v2.1.0+incompatible
- github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986 // indirect
+ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
github.com/pierrec/lz4 v2.6.1+incompatible
- github.com/pires/go-proxyproto v0.7.0
+ github.com/pires/go-proxyproto v0.8.0
github.com/pkg/errors v0.9.1
github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a
- github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
- github.com/prometheus/client_golang v1.20.3
- github.com/prometheus/common v0.59.1
+ github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87
+ github.com/prometheus/client_golang v1.20.5
+ github.com/prometheus/common v0.60.1
github.com/sjmudd/stopwatch v0.1.1
github.com/soheilhy/cmux v0.1.5
github.com/spf13/cobra v1.8.1
@@ -56,32 +56,32 @@ require (
github.com/spf13/viper v1.19.0
github.com/stretchr/testify v1.9.0
github.com/tchap/go-patricia v2.3.0+incompatible
- github.com/tidwall/gjson v1.17.3
- github.com/tinylib/msgp v1.2.1 // indirect
+ github.com/tidwall/gjson v1.18.0
+ github.com/tinylib/msgp v1.2.4 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82
github.com/z-division/go-zookeeper v1.0.0
- go.etcd.io/etcd/api/v3 v3.5.16
- go.etcd.io/etcd/client/pkg/v3 v3.5.16
- go.etcd.io/etcd/client/v3 v3.5.16
+ go.etcd.io/etcd/api/v3 v3.5.17
+ go.etcd.io/etcd/client/pkg/v3 v3.5.17
+ go.etcd.io/etcd/client/v3 v3.5.17
go.uber.org/mock v0.2.0
- golang.org/x/crypto v0.27.0 // indirect
- golang.org/x/mod v0.21.0 // indirect
- golang.org/x/net v0.29.0
- golang.org/x/oauth2 v0.23.0
- golang.org/x/sys v0.25.0
- golang.org/x/term v0.24.0
- golang.org/x/text v0.18.0 // indirect
- golang.org/x/time v0.6.0
- golang.org/x/tools v0.25.0
- google.golang.org/api v0.197.0
- google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
- google.golang.org/grpc v1.66.2
+ golang.org/x/crypto v0.29.0 // indirect
+ golang.org/x/mod v0.22.0 // indirect
+ golang.org/x/net v0.31.0
+ golang.org/x/oauth2 v0.24.0
+ golang.org/x/sys v0.27.0
+ golang.org/x/term v0.26.0
+ golang.org/x/text v0.20.0 // indirect
+ golang.org/x/time v0.8.0
+ golang.org/x/tools v0.27.0
+ google.golang.org/api v0.205.0
+ google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect
+ google.golang.org/grpc v1.68.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0
google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b
- google.golang.org/protobuf v1.34.2
- gopkg.in/DataDog/dd-trace-go.v1 v1.67.1
+ google.golang.org/protobuf v1.35.1
+ gopkg.in/DataDog/dd-trace-go.v1 v1.69.1
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
gopkg.in/ldap.v2 v2.5.1
sigs.k8s.io/yaml v1.4.0
@@ -89,12 +89,12 @@ require (
require (
github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/Shopify/toxiproxy/v2 v2.9.0
- github.com/aws/aws-sdk-go-v2 v1.30.4
- github.com/aws/aws-sdk-go-v2/config v1.27.31
- github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15
- github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1
- github.com/aws/smithy-go v1.20.4
+ github.com/Shopify/toxiproxy/v2 v2.11.0
+ github.com/aws/aws-sdk-go-v2 v1.32.4
+ github.com/aws/aws-sdk-go-v2/config v1.28.3
+ github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3
+ github.com/aws/smithy-go v1.22.0
github.com/bndr/gotabulate v1.1.2
github.com/gammazero/deque v0.2.1
github.com/google/safehtml v0.1.0
@@ -107,48 +107,58 @@ require (
github.com/spf13/jwalterweatherman v1.1.0
github.com/xlab/treeprint v1.2.0
go.uber.org/goleak v1.3.0
- golang.org/x/exp v0.0.0-20240909161429-701f63a606c0
- golang.org/x/sync v0.8.0
+ golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f
+ golang.org/x/sync v0.9.0
gonum.org/v1/gonum v0.14.0
modernc.org/sqlite v1.33.1
)
require (
- cloud.google.com/go v0.115.1 // indirect
- cloud.google.com/go/auth v0.9.4 // indirect
- cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
- cloud.google.com/go/compute/metadata v0.5.1 // indirect
- cloud.google.com/go/iam v1.2.1 // indirect
- github.com/DataDog/appsec-internal-go v1.7.0 // indirect
- github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0 // indirect
- github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0 // indirect
- github.com/DataDog/go-libddwaf/v3 v3.4.0 // indirect
- github.com/DataDog/go-sqllexer v0.0.14 // indirect
+ cel.dev/expr v0.18.0 // indirect
+ cloud.google.com/go v0.116.0 // indirect
+ cloud.google.com/go/auth v0.10.2 // indirect
+ cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect
+ cloud.google.com/go/compute/metadata v0.5.2 // indirect
+ cloud.google.com/go/iam v1.2.2 // indirect
+ cloud.google.com/go/monitoring v1.21.2 // indirect
+ github.com/DataDog/appsec-internal-go v1.9.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 // indirect
+ github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect
+ github.com/DataDog/go-sqllexer v0.0.17 // indirect
github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect
- github.com/aws/aws-sdk-go-v2/credentials v1.17.30 // indirect
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 // indirect
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect
- github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect
- github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect
+ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect
github.com/beorn7/perks v1.0.1 // indirect
+ github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
+ github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect
github.com/coreos/go-semver v0.3.1 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
- github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
+ github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
- github.com/ebitengine/purego v0.7.1 // indirect
- github.com/fatih/color v1.17.0 // indirect
+ github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 // indirect
+ github.com/ebitengine/purego v0.8.1 // indirect
+ github.com/envoyproxy/go-control-plane v0.13.1 // indirect
+ github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
+ github.com/fatih/color v1.18.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
@@ -156,15 +166,18 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/google/s2a-go v0.1.8 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
- github.com/googleapis/gax-go/v2 v2.13.0 // indirect
+ github.com/googleapis/gax-go/v2 v2.14.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-hclog v1.6.3 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
+ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
+ github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
+ github.com/hashicorp/go-sockaddr v1.0.7 // indirect
github.com/hashicorp/golang-lru v1.0.2 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
- github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
+ github.com/hashicorp/hcl v1.0.1-vault-7 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-ieproxy v0.0.12 // indirect
@@ -182,8 +195,9 @@ require (
github.com/prometheus/procfs v0.15.1 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rivo/uniseg v0.4.7 // indirect
- github.com/rogpeppe/go-internal v1.12.0 // indirect
+ github.com/rogpeppe/go-internal v1.13.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
+ github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sagikazarmark/locafero v0.6.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
@@ -193,22 +207,26 @@ require (
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.1 // indirect
go.opencensus.io v0.24.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect
- go.opentelemetry.io/otel v1.30.0 // indirect
- go.opentelemetry.io/otel/metric v1.30.0 // indirect
- go.opentelemetry.io/otel/trace v1.30.0 // indirect
+ go.opentelemetry.io/contrib/detectors/gcp v1.32.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 // indirect
+ go.opentelemetry.io/otel v1.32.0 // indirect
+ go.opentelemetry.io/otel/metric v1.32.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.32.0 // indirect
+ go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect
+ go.opentelemetry.io/otel/trace v1.32.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect
+ google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect
- modernc.org/libc v1.60.1 // indirect
+ modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect
+ modernc.org/libc v1.61.0 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.8.0 // indirect
modernc.org/strutil v1.2.0 // indirect
diff --git a/go.sum b/go.sum
index 5258e8f05fa..167a620da78 100644
--- a/go.sum
+++ b/go.sum
@@ -1,19 +1,27 @@
+cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
+cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ=
-cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc=
-cloud.google.com/go/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI=
-cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA=
-cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY=
-cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc=
-cloud.google.com/go/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs=
-cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k=
-cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU=
-cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g=
-cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI=
-cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts=
-cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs=
-cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0=
+cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
+cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
+cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo=
+cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI=
+cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk=
+cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8=
+cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo=
+cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k=
+cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA=
+cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY=
+cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk=
+cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM=
+cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc=
+cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI=
+cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU=
+cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU=
+cloud.google.com/go/storage v1.46.0 h1:OTXISBpFd8KaA2ClT3K3oRk8UGOcTHtrZ1bW88xKiic=
+cloud.google.com/go/storage v1.46.0/go.mod h1:lM+gMAW91EfXIeMTBmixRsKL/XCxysytoAgduVikjMk=
+cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI=
+cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U=
@@ -32,25 +40,33 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/DataDog/appsec-internal-go v1.7.0 h1:iKRNLih83dJeVya3IoUfK+6HLD/hQsIbyBlfvLmAeb0=
-github.com/DataDog/appsec-internal-go v1.7.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g=
-github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0 h1:5hk3X9Ymna7RqYzoR3K15AZNgASJ89LvJY48tpTsjj0=
-github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0/go.mod h1:Po5HwoDd4FmT/EqgrE9x7Zz4LjxtGBSIuNY1C1lppBQ=
-github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0 h1:LplNAmMgZvGU7kKA0+4c1xWOjz828xweW5TCi8Mw9Q0=
-github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0/go.mod h1:4Vo3SJ24uzfKHUHLoFa8t8o+LH+7TCQ7sPcZDtOpSP4=
+github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw=
+github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g=
+github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 h1:uX6/XoKMS7KYXe+R+vwgw+eRdmn16xfa9PDF5dxgumE=
+github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0/go.mod h1:ATVw8kr3U1Eqz3qBz9kS6WFDKji9XyoAsHKSlj3hPTM=
+github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 h1:9C8TVNz0IiNoD6tuEKPY/vMIUjB7kN0OaLyImhatWjg=
+github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0/go.mod h1:c4th0IFaP0Q1ofRa0GcPB9hJWN+cmUoEfOI1Ub0O50A=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
-github.com/DataDog/go-libddwaf/v3 v3.4.0 h1:NJ2W2vhYaOm1OWr1LJCbdgp7ezG/XLJcQKBmjFwhSuM=
-github.com/DataDog/go-libddwaf/v3 v3.4.0/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4=
-github.com/DataDog/go-sqllexer v0.0.14 h1:xUQh2tLr/95LGxDzLmttLgTo/1gzFeOyuwrQa/Iig4Q=
-github.com/DataDog/go-sqllexer v0.0.14/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
+github.com/DataDog/go-libddwaf/v3 v3.5.1 h1:GWA4ln4DlLxiXm+X7HA/oj0ZLcdCwOS81KQitegRTyY=
+github.com/DataDog/go-libddwaf/v3 v3.5.1/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4=
+github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
+github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4=
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
github.com/DataDog/gostackparse v0.7.0 h1:i7dLkXHvYzHV308hnkvVGDL3BR4FWl7IsXNPz/IGQh4=
github.com/DataDog/gostackparse v0.7.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 h1:o90wcURuxekmXrtxmYWTyNla0+ZEHhud6DI1ZTxd1vI=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0/go.mod h1:6fTWu4m3jocfUZLYF5KsZC1TUfRvEjs7lM4crme/irw=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0 h1:jJKWl98inONJAr/IZrdFQUWcwUO95DLY1XMD1ZIut+g=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0/go.mod h1:l2fIqmwB+FKSfvn3bAD/0i+AXAxhIZjTK2svT/mgUXs=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 h1:GYUJLfvd++4DMuMhCFLgLXvFwofIxh/qOwoGuS/LTew=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI=
github.com/HdrHistogram/hdrhistogram-go v0.9.0 h1:dpujRju0R4M/QZzcnR1LH1qm+TVG3UzkWdp5tH1WMcg=
github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4=
github.com/Masterminds/glide v0.13.2/go.mod h1:STyF5vcenH/rUqTEv+/hBXlSTo7KYwg2oc2f4tzPWic=
@@ -59,8 +75,8 @@ github.com/Masterminds/vcs v1.13.0/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHS
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/Shopify/toxiproxy/v2 v2.9.0 h1:DIaDZG2/r/kv3Em6UxYBUVnnWl1mHlYTGFv+sTPV7VI=
-github.com/Shopify/toxiproxy/v2 v2.9.0/go.mod h1:2uPRyxR46fsx2yUr9i8zcejzdkWfK7p6G23jV/X6YNs=
+github.com/Shopify/toxiproxy/v2 v2.11.0 h1:iXm78nBN50T2BTs1Z8w1fdC0Y1kltkJZQEyMcYyCgGQ=
+github.com/Shopify/toxiproxy/v2 v2.11.0/go.mod h1:EPnGLFvhpcwVKCsbFZwyOq4PxnGg9cFbhMrVT3ROBEo=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -73,44 +89,44 @@ github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJ
github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8=
-github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw=
-github.com/aws/aws-sdk-go-v2/config v1.27.31 h1:kxBoRsjhT3pq0cKthgj6RU6bXTm/2SgdoUMyrVw0rAI=
-github.com/aws/aws-sdk-go-v2/config v1.27.31/go.mod h1:z04nZdSWFPaDwK3DdJOG2r+scLQzMYuJeW0CujEm9FM=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.30 h1:aau/oYFtibVovr2rDt8FHlU17BTicFEMAi29V1U+L5Q=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.30/go.mod h1:BPJ/yXV92ZVq6G8uYvbU0gSl8q94UB63nMT5ctNO38g=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 h1:yjwoSyDZF8Jth+mUk5lSPJCkMC0lMy6FaCD51jm6ayE=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12/go.mod h1:fuR57fAgMk7ot3WcNQfb6rSEn+SUffl7ri+aa8uKysI=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15 h1:ijB7hr56MngOiELJe0C5aQRaBQ11LveNgWFyG02AUto=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15/go.mod h1:0QEmQSSWMVfiAk93l1/ayR9DQ9+jwni7gHS2NARZXB0=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs=
+github.com/aws/aws-sdk-go-v2 v1.32.4 h1:S13INUiTxgrPueTmrm5DZ+MiAo99zYzHEFh1UNkOxNE=
+github.com/aws/aws-sdk-go-v2 v1.32.4/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA=
+github.com/aws/aws-sdk-go-v2/config v1.28.3 h1:kL5uAptPcPKaJ4q0sDUjUIdueO18Q7JDzl64GpVwdOM=
+github.com/aws/aws-sdk-go-v2/config v1.28.3/go.mod h1:SPEn1KA8YbgQnwiJ/OISU4fz7+F6Fe309Jf0QTsRCl4=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.44 h1:qqfs5kulLUHUEXlHEZXLJkgGoF3kkUeFUTVA585cFpU=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.44/go.mod h1:0Lm2YJ8etJdEdw23s+q/9wTpOeo2HhNE97XcRa7T8MA=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 h1:woXadbf0c7enQ2UGCi8gW/WuKmE0xIzxBF/eD94jMKQ=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19/go.mod h1:zminj5ucw7w0r65bP6nhyOd3xL6veAUMc3ElGMoLVb4=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 h1:jHKR76E81sZvz1+x1vYYrHMxphG5LFBJPhSqEr4CLlE=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37/go.mod h1:iMkyPkmoJWQKzSOtaX+8oEJxAuqr7s8laxcqGDSHeII=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 h1:A2w6m6Tmr+BNXjDsr7M90zkWjsu4JXHwrzPg235STs4=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23/go.mod h1:35EVp9wyeANdujZruvHiQUAo9E3vbhnIO1mTCAxMlY0=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 h1:pgYW9FCabt2M25MoHYCfMrVY2ghiiBKYWUVXfwZs+sU=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23/go.mod h1:c48kLgzO19wAu3CPkDWC28JbaJ+hfQlsdl7I2+oqIbk=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 h1:mx2ucgtv+MWzJesJY9Ig/8AFHgoE5FwLXwUVgW/FGdI=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI=
-github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 h1:zCsFCKvbj25i7p1u94imVoO447I/sFv8qq+lGJhRN0c=
-github.com/aws/aws-sdk-go-v2/service/sso v1.22.5/go.mod h1:ZeDX1SnKsVlejeuz41GiajjZpRSWR7/42q/EyA/QEiM=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 h1:SKvPgvdvmiTWoi0GAJ7AsJfOz3ngVkD/ERbs5pUnHNI=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5/go.mod h1:20sz31hv/WsPa3HhU3hfrIet2kxM4Pe0r20eBZ20Tac=
-github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 h1:OMsEmCyz2i89XwRwPouAJvhj81wINh+4UK+k/0Yo/q8=
-github.com/aws/aws-sdk-go-v2/service/sts v1.30.5/go.mod h1:vmSqFK+BVIwVpDAGZB3CoCXHzurt4qBE8lf+I/kRTh0=
-github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4=
-github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 h1:1SZBDiRzzs3sNhOMVApyWPduWYGAX0imGy06XiBnCAM=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23/go.mod h1:i9TkxgbZmHVh2S0La6CAXtnyFhlCX/pJ0JsOvBAS6Mk=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 h1:aaPpoG15S2qHkWm4KlEyF01zovK1nW4BBbyXuHNSE90=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4/go.mod h1:eD9gS2EARTKgGr/W5xwgY/ik9z/zqpW+m/xOQbVxrMk=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 h1:tHxQi/XHPK0ctd/wdOw0t7Xrc2OxcRCnVzv8lwWPu0c=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4/go.mod h1:4GQbF1vJzG60poZqWatZlhP31y8PGCCVTvIGPdaaYJ0=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 h1:E5ZAVOmI2apR8ADb72Q63KqwwwdW1XcMeXIlrZ1Psjg=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4/go.mod h1:wezzqVUOVVdk+2Z/JzQT4NxAU0NbhRe5W8pIE72jsWI=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 h1:neNOYJl72bHrz9ikAEED4VqWyND/Po0DnEx64RW6YM4=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3/go.mod h1:TMhLIyRIyoGVlaEMAt+ITMbwskSTpcGsCPDq91/ihY0=
+github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 h1:HJwZwRt2Z2Tdec+m+fPjvdmkq2s9Ra+VR0hjF7V2o40=
+github.com/aws/aws-sdk-go-v2/service/sso v1.24.5/go.mod h1:wrMCEwjFPms+V86TCQQeOxQF/If4vT44FGIOFiMC2ck=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 h1:zcx9LiGWZ6i6pjdcoE9oXAB6mUdeyC36Ia/QEiIvYdg=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4/go.mod h1:Tp/ly1cTjRLGBBmNccFumbZ8oqpZlpdhFf80SrRh4is=
+github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 h1:yDxvkz3/uOKfxnv8YhzOi9m+2OGIxF+on3KOISbK5IU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.32.4/go.mod h1:9XEUty5v5UAsMiFOBJrNibZgwCeOma73jgGwwhgffa8=
+github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM=
+github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
@@ -122,6 +138,8 @@ github.com/bndr/gotabulate v1.1.2/go.mod h1:0+8yUgaPTtLRTjf49E8oju7ojpU11YmXyvq1
github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=
+github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -129,6 +147,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI=
+github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
@@ -136,8 +156,9 @@ github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/corpix/uarand v0.1.1 h1:RMr1TWc9F4n5jiPDzFHtmaUXLKLNUFK0SgCLo4BhX/U=
github.com/corpix/uarand v0.1.1/go.mod h1:SFKZvkcRoLqVRFZ4u25xPmp6m9ktANfbpXZ7SJ0/FNU=
-github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc=
+github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo=
github.com/dave/jennifer v1.7.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc=
@@ -150,22 +171,25 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUn
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 h1:8EXxF+tCLqaVk8AOC29zl2mnhQjwyLxxOTuhUazWRsg=
github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4/go.mod h1:I5sHm0Y0T1u5YjlyqC5GVArM7aNZRUYtTjmJ8mPJFds=
-github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA=
-github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
+github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE=
+github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE=
+github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM=
+github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4=
github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
-github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
@@ -174,12 +198,10 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
-github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
+github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/gammazero/deque v0.2.1 h1:qSdsbG6pgp6nL7A0+K/B7s12mcCY/5l5SIUpMOl+dC0=
github.com/gammazero/deque v0.2.1/go.mod h1:LFroj8x4cMYCukHJDbxFCkT+r9AndaJnFMuZDV34tuU=
-github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ=
-github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
@@ -200,8 +222,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=
-github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
+github.com/golang/glog v1.2.3 h1:oDTdz9f5VGVVNGu/Q7UXKWYsD0873HXLHdJUNBsSEKM=
+github.com/golang/glog v1.2.3/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -254,8 +276,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw=
github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA=
-github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s=
-github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A=
+github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o=
+github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE=
github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w=
@@ -265,10 +287,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDa
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/hashicorp/consul/api v1.29.4 h1:P6slzxDLBOxUSj3fWo2o65VuKtbtOXFi7TSSgtXutuE=
-github.com/hashicorp/consul/api v1.29.4/go.mod h1:HUlfw+l2Zy68ceJavv2zAyArl2fqhGWnMycyt56sBgg=
-github.com/hashicorp/consul/proto-public v0.6.2 h1:+DA/3g/IiKlJZb88NBn0ZgXrxJp2NlvCZdEyl+qxvL0=
-github.com/hashicorp/consul/proto-public v0.6.2/go.mod h1:cXXbOg74KBNGajC+o8RlA502Esf0R9prcoJgiOX/2Tg=
+github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ=
+github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM=
github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg=
github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -292,13 +312,13 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
-github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs=
-github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8=
+github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSYmuZJGizr6/x/AEizP0CQc=
+github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0=
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts=
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc=
-github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=
+github.com/hashicorp/go-sockaddr v1.0.7 h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw=
+github.com/hashicorp/go-sockaddr v1.0.7/go.mod h1:FZQbEYa1pxkQ7WLpyXJ6cbjpT8q0YgQaK/JakXqGyWw=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
@@ -311,8 +331,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
-github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM=
-github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
+github.com/hashicorp/hcl v1.0.1-vault-7 h1:ag5OxFVy3QYTFTJODRzTKVZ6xvdfLLCA1cy/Y6xGI0I=
+github.com/hashicorp/hcl v1.0.1-vault-7/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM=
@@ -330,8 +350,8 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
-github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
+github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -411,8 +431,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys=
github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
-github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8 h1:gHTSPFezGeYzTWCvpPM6lBanwXfuksik5Hy5MEHtvUA=
-github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8/go.mod h1:z1k3YVSdAPSXtMUPS1TBWG5DaNWlT+VCbB0Qm3QJe74=
+github.com/opentracing-contrib/go-grpc v0.1.0 h1:9JHDtQXv6UL0tFF8KJB/4ApJgeOcaHp1h07d0PJjESc=
+github.com/opentracing-contrib/go-grpc v0.1.0/go.mod h1:i3/jx/TvJZ/HKidtT4XGIi/NosUEpzS9xjVJctbKZzI=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
@@ -425,12 +445,12 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
-github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986 h1:jYi87L8j62qkXzaYHAQAhEapgukhenIMZRBKTNRLHJ4=
-github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
+github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY=
+github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
-github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs=
-github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4=
+github.com/pires/go-proxyproto v0.8.0 h1:5unRmEAPbHXHuLjDg01CxJWf91cw3lKHc/0xzKpXEe0=
+github.com/pires/go-proxyproto v0.8.0/go.mod h1:iknsfgnH8EkjrMeMyvfKByp9TiBZCKZM0jx2xmKqnVY=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -438,8 +458,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a h1:y0OpQ4+5tKxeh9+H+2cVgASl9yMZYV9CILinKOiKafA=
github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a/go.mod h1:GJFUzQuXIoB2Kjn1ZfDhJr/42D5nWOqRcIQVgCxTuIE=
-github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
-github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
+github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87 h1:ejBLlgnQdFWS/QGVdGYBRKsorfWl8rOysCC6aUOlCZc=
+github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -448,8 +468,8 @@ github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSg
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4=
-github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
+github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
+github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -458,8 +478,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0=
-github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0=
+github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc=
+github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
@@ -473,8 +493,8 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
-github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
-github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
@@ -534,15 +554,15 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
github.com/tchap/go-patricia v2.3.0+incompatible h1:GkY4dP3cEfEASBPPkWd+AmjYxhmDkqO9/zg7R0lSQRs=
github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
-github.com/tidwall/gjson v1.17.3 h1:bwWLZU7icoKRG+C+0PNwIKC6FCJO/Q3p2pZvuP0jN94=
-github.com/tidwall/gjson v1.17.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
+github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
+github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
-github.com/tinylib/msgp v1.2.1 h1:6ypy2qcCznxpP4hpORzhtXyTqrBs7cfM9MCCWY8zsmU=
-github.com/tinylib/msgp v1.2.1/go.mod h1:2vIGs3lcUo8izAATNobrCHevYZC/LMsJtw4JPiYPHro=
+github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU=
+github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
@@ -557,26 +577,30 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/z-division/go-zookeeper v1.0.0 h1:ULsCj0nP6+U1liDFWe+2oEF6o4amixoDcDlwEUghVUY=
github.com/z-division/go-zookeeper v1.0.0/go.mod h1:6X4UioQXpvyezJJl4J9NHAJKsoffCwy5wCaaTktXjOA=
-go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
-go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
-go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
-go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
-go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
-go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
+go.etcd.io/etcd/api/v3 v3.5.17 h1:cQB8eb8bxwuxOilBpMJAEo8fAONyrdXTHUNcMd8yT1w=
+go.etcd.io/etcd/api/v3 v3.5.17/go.mod h1:d1hvkRuXkts6PmaYk2Vrgqbv7H4ADfAKhyJqHNLJCB4=
+go.etcd.io/etcd/client/pkg/v3 v3.5.17 h1:XxnDXAWq2pnxqx76ljWwiQ9jylbpC4rvkAeRVOUKKVw=
+go.etcd.io/etcd/client/pkg/v3 v3.5.17/go.mod h1:4DqK1TKacp/86nJk4FLQqo6Mn2vvQFBmruW3pP14H/w=
+go.etcd.io/etcd/client/v3 v3.5.17 h1:o48sINNeWz5+pjy/Z0+HKpj/xSnBkuVhVvXkjEXbqZY=
+go.etcd.io/etcd/client/v3 v3.5.17/go.mod h1:j2d4eXTHWkT2ClBgnnEPm/Wuu7jsqku41v9DZ3OtjQo=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 h1:hCq2hNMwsegUvPzI7sPOvtO9cqyy5GbWt/Ybp2xrx8Q=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0/go.mod h1:LqaApwGx/oUmzsbqxkzuBvyoPpkxk3JQWnqfVrJ3wCA=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI=
-go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts=
-go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc=
-go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w=
-go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ=
-go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
-go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
-go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc=
-go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o=
+go.opentelemetry.io/contrib/detectors/gcp v1.32.0 h1:P78qWqkLSShicHmAzfECaTgvslqHxblNE9j62Ws1NK8=
+go.opentelemetry.io/contrib/detectors/gcp v1.32.0/go.mod h1:TVqo0Sda4Cv8gCIixd7LuLwW4EylumVWfhjZJjDD4DU=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94=
+go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U=
+go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg=
+go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M=
+go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8=
+go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4=
+go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
+go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
+go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
+go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM=
+go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
@@ -600,11 +624,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
-golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
+golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ=
+golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
-golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
+golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo=
+golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -612,8 +636,8 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
-golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
+golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -636,12 +660,12 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
-golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
+golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo=
+golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
-golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
+golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -649,8 +673,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
-golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
+golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -688,19 +712,19 @@ golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
-golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
+golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
-golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
+golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU=
+golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
-golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
-golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
-golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
+golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
+golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
+golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -713,8 +737,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
-golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
+golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o=
+golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -723,8 +747,8 @@ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhS
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0=
gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU=
-google.golang.org/api v0.197.0 h1:x6CwqQLsFiA5JKAiGyGBjc2bNtHtLddhJCE2IKuhhcQ=
-google.golang.org/api v0.197.0/go.mod h1:AuOuo20GoQ331nq7DquGHlU6d+2wN2fZ8O0ta60nRNw=
+google.golang.org/api v0.205.0 h1:LFaxkAIpDb/GsrWV20dMMo5MR0h8UARTbn24LmD+0Pg=
+google.golang.org/api v0.205.0/go.mod h1:NrK1EMqO8Xk6l6QwRAmrXXg2v6dzukhlOyvkYtnvUuc=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
@@ -732,12 +756,12 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU=
-google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw=
+google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI=
+google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f h1:M65LEviCfuZTfrfzwwEoxVtgvfkFkBUbFnRbxCXuXhU=
+google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f/go.mod h1:Yo94eF2nj7igQt+TiJ49KxjIH8ndLYPZMIRSiRcEbg0=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f h1:C1QccEa9kUwvMgEUORqQD9S17QesQijxjZ84sO82mfo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
@@ -745,12 +769,14 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
-google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
+google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0=
+google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y=
google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b h1:D/GTYPo6I1oEo08Bfpuj3xl5XE+UGHj7//5fVyKxhsQ=
google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE=
+google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 h1:hUfOButuEtpc0UvYiaYRbNwxVYr0mQQOWq6X8beJ9Gc=
+google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3/go.mod h1:jzYlkSMbKypzuu6xoAEijsNVo9ZeDF1u/zCfFgsx7jg=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -761,10 +787,10 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
-google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
-gopkg.in/DataDog/dd-trace-go.v1 v1.67.1 h1:frgcpZ18wmpj+/TwyDJM8057M65aOdgaxLiZ8pb1PFU=
-gopkg.in/DataDog/dd-trace-go.v1 v1.67.1/go.mod h1:6DdiJPKOeJfZyd/IUGCAd5elY8qPGkztK6wbYYsMjag=
+google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
+google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+gopkg.in/DataDog/dd-trace-go.v1 v1.69.1 h1:grTElrPaCfxUsrJjyPLHlVPbmlKVzWMxVdcBrGZSzEk=
+gopkg.in/DataDog/dd-trace-go.v1 v1.69.1/go.mod h1:U9AOeBHNAL95JXcd/SPf4a7O5GNeF/yD13sJtli/yaU=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=
@@ -803,10 +829,10 @@ modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
modernc.org/gc/v2 v2.5.0 h1:bJ9ChznK1L1mUtAQtxi0wi5AtAs5jQuw4PrPHO5pb6M=
modernc.org/gc/v2 v2.5.0/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
-modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a h1:CfbpOLEo2IwNzJdMvE8aiRbPMxoTpgAJeyePh0SmO8M=
-modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
-modernc.org/libc v1.60.1 h1:at373l8IFRTkJIkAU85BIuUoBM4T1b51ds0E1ovPG2s=
-modernc.org/libc v1.60.1/go.mod h1:xJuobKuNxKH3RUatS7GjR+suWj+5c2K7bi4m/S5arOY=
+modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 h1:IYXPPTTjjoSHvUClZIYexDiO7g+4x+XveKT4gCIAwiY=
+modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
+modernc.org/libc v1.61.0 h1:eGFcvWpqlnoGwzZeZe3PWJkkKbM/3SUGyk1DVZQ0TpE=
+modernc.org/libc v1.61.0/go.mod h1:DvxVX89wtGTu+r72MLGhygpfi3aUGgZRdAYGCAVVud0=
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
diff --git a/go/vt/mysqlctl/s3backupstorage/s3_test.go b/go/vt/mysqlctl/s3backupstorage/s3_test.go
index 1acfddcce1e..84ef8de6e48 100644
--- a/go/vt/mysqlctl/s3backupstorage/s3_test.go
+++ b/go/vt/mysqlctl/s3backupstorage/s3_test.go
@@ -53,7 +53,7 @@ func (sfc *s3FakeClient) PutObject(ctx context.Context, in *s3.PutObjectInput, o
_ = apiOption(stack)
}
- handler := middleware.DecorateHandler(smithyhttp.NewClientHandler(&fakeClientDo{delay: sfc.delay}), stack)
+ handler := middleware.DecorateHandler(smithyhttp.NewClientHandlerWithOptions(&fakeClientDo{delay: sfc.delay}), stack)
_, _, err := handler.Handle(ctx, in)
if err != nil {
return nil, err
diff --git a/go/vt/proto/binlogdata/binlogdata.pb.go b/go/vt/proto/binlogdata/binlogdata.pb.go
index 544a45d3656..35e738f772e 100644
--- a/go/vt/proto/binlogdata/binlogdata.pb.go
+++ b/go/vt/proto/binlogdata/binlogdata.pb.go
@@ -19,7 +19,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: binlogdata.proto
@@ -562,11 +562,9 @@ type Charset struct {
func (x *Charset) Reset() {
*x = Charset{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Charset) String() string {
@@ -577,7 +575,7 @@ func (*Charset) ProtoMessage() {}
func (x *Charset) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -628,11 +626,9 @@ type BinlogTransaction struct {
func (x *BinlogTransaction) Reset() {
*x = BinlogTransaction{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BinlogTransaction) String() string {
@@ -643,7 +639,7 @@ func (*BinlogTransaction) ProtoMessage() {}
func (x *BinlogTransaction) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -688,11 +684,9 @@ type StreamKeyRangeRequest struct {
func (x *StreamKeyRangeRequest) Reset() {
*x = StreamKeyRangeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamKeyRangeRequest) String() string {
@@ -703,7 +697,7 @@ func (*StreamKeyRangeRequest) ProtoMessage() {}
func (x *StreamKeyRangeRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -750,11 +744,9 @@ type StreamKeyRangeResponse struct {
func (x *StreamKeyRangeResponse) Reset() {
*x = StreamKeyRangeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamKeyRangeResponse) String() string {
@@ -765,7 +757,7 @@ func (*StreamKeyRangeResponse) ProtoMessage() {}
func (x *StreamKeyRangeResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -803,11 +795,9 @@ type StreamTablesRequest struct {
func (x *StreamTablesRequest) Reset() {
*x = StreamTablesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamTablesRequest) String() string {
@@ -818,7 +808,7 @@ func (*StreamTablesRequest) ProtoMessage() {}
func (x *StreamTablesRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -865,11 +855,9 @@ type StreamTablesResponse struct {
func (x *StreamTablesResponse) Reset() {
*x = StreamTablesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamTablesResponse) String() string {
@@ -880,7 +868,7 @@ func (*StreamTablesResponse) ProtoMessage() {}
func (x *StreamTablesResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -916,11 +904,9 @@ type CharsetConversion struct {
func (x *CharsetConversion) Reset() {
*x = CharsetConversion{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CharsetConversion) String() string {
@@ -931,7 +917,7 @@ func (*CharsetConversion) ProtoMessage() {}
func (x *CharsetConversion) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1013,11 +999,9 @@ type Rule struct {
func (x *Rule) Reset() {
*x = Rule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Rule) String() string {
@@ -1028,7 +1012,7 @@ func (*Rule) ProtoMessage() {}
func (x *Rule) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1129,11 +1113,9 @@ type Filter struct {
func (x *Filter) Reset() {
*x = Filter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Filter) String() string {
@@ -1144,7 +1126,7 @@ func (*Filter) ProtoMessage() {}
func (x *Filter) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1228,11 +1210,9 @@ type BinlogSource struct {
func (x *BinlogSource) Reset() {
*x = BinlogSource{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BinlogSource) String() string {
@@ -1243,7 +1223,7 @@ func (*BinlogSource) ProtoMessage() {}
func (x *BinlogSource) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1359,11 +1339,9 @@ type RowChange struct {
func (x *RowChange) Reset() {
*x = RowChange{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RowChange) String() string {
@@ -1374,7 +1352,7 @@ func (*RowChange) ProtoMessage() {}
func (x *RowChange) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1426,11 +1404,9 @@ type RowEvent struct {
func (x *RowEvent) Reset() {
*x = RowEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RowEvent) String() string {
@@ -1441,7 +1417,7 @@ func (*RowEvent) ProtoMessage() {}
func (x *RowEvent) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1521,11 +1497,9 @@ type FieldEvent struct {
func (x *FieldEvent) Reset() {
*x = FieldEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FieldEvent) String() string {
@@ -1536,7 +1510,7 @@ func (*FieldEvent) ProtoMessage() {}
func (x *FieldEvent) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1611,11 +1585,9 @@ type ShardGtid struct {
func (x *ShardGtid) Reset() {
*x = ShardGtid{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardGtid) String() string {
@@ -1626,7 +1598,7 @@ func (*ShardGtid) ProtoMessage() {}
func (x *ShardGtid) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1680,11 +1652,9 @@ type VGtid struct {
func (x *VGtid) Reset() {
*x = VGtid{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VGtid) String() string {
@@ -1695,7 +1665,7 @@ func (*VGtid) ProtoMessage() {}
func (x *VGtid) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1729,11 +1699,9 @@ type KeyspaceShard struct {
func (x *KeyspaceShard) Reset() {
*x = KeyspaceShard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KeyspaceShard) String() string {
@@ -1744,7 +1712,7 @@ func (*KeyspaceShard) ProtoMessage() {}
func (x *KeyspaceShard) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1807,11 +1775,9 @@ type Journal struct {
func (x *Journal) Reset() {
*x = Journal{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Journal) String() string {
@@ -1822,7 +1788,7 @@ func (*Journal) ProtoMessage() {}
func (x *Journal) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1935,11 +1901,9 @@ type VEvent struct {
func (x *VEvent) Reset() {
*x = VEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VEvent) String() string {
@@ -1950,7 +1914,7 @@ func (*VEvent) ProtoMessage() {}
func (x *VEvent) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2086,11 +2050,9 @@ type MinimalTable struct {
func (x *MinimalTable) Reset() {
*x = MinimalTable{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MinimalTable) String() string {
@@ -2101,7 +2063,7 @@ func (*MinimalTable) ProtoMessage() {}
func (x *MinimalTable) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2154,11 +2116,9 @@ type MinimalSchema struct {
func (x *MinimalSchema) Reset() {
*x = MinimalSchema{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MinimalSchema) String() string {
@@ -2169,7 +2129,7 @@ func (*MinimalSchema) ProtoMessage() {}
func (x *MinimalSchema) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2202,11 +2162,9 @@ type VStreamOptions struct {
func (x *VStreamOptions) Reset() {
*x = VStreamOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamOptions) String() string {
@@ -2217,7 +2175,7 @@ func (*VStreamOptions) ProtoMessage() {}
func (x *VStreamOptions) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2263,11 +2221,9 @@ type VStreamRequest struct {
func (x *VStreamRequest) Reset() {
*x = VStreamRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamRequest) String() string {
@@ -2278,7 +2234,7 @@ func (*VStreamRequest) ProtoMessage() {}
func (x *VStreamRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2353,11 +2309,9 @@ type VStreamResponse struct {
func (x *VStreamResponse) Reset() {
*x = VStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamResponse) String() string {
@@ -2368,7 +2322,7 @@ func (*VStreamResponse) ProtoMessage() {}
func (x *VStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2406,11 +2360,9 @@ type VStreamRowsRequest struct {
func (x *VStreamRowsRequest) Reset() {
*x = VStreamRowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamRowsRequest) String() string {
@@ -2421,7 +2373,7 @@ func (*VStreamRowsRequest) ProtoMessage() {}
func (x *VStreamRowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2499,11 +2451,9 @@ type VStreamRowsResponse struct {
func (x *VStreamRowsResponse) Reset() {
*x = VStreamRowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamRowsResponse) String() string {
@@ -2514,7 +2464,7 @@ func (*VStreamRowsResponse) ProtoMessage() {}
func (x *VStreamRowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2599,11 +2549,9 @@ type VStreamTablesRequest struct {
func (x *VStreamTablesRequest) Reset() {
*x = VStreamTablesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamTablesRequest) String() string {
@@ -2614,7 +2562,7 @@ func (*VStreamTablesRequest) ProtoMessage() {}
func (x *VStreamTablesRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2673,11 +2621,9 @@ type VStreamTablesResponse struct {
func (x *VStreamTablesResponse) Reset() {
*x = VStreamTablesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamTablesResponse) String() string {
@@ -2688,7 +2634,7 @@ func (*VStreamTablesResponse) ProtoMessage() {}
func (x *VStreamTablesResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2756,11 +2702,9 @@ type LastPKEvent struct {
func (x *LastPKEvent) Reset() {
*x = LastPKEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LastPKEvent) String() string {
@@ -2771,7 +2715,7 @@ func (*LastPKEvent) ProtoMessage() {}
func (x *LastPKEvent) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[27]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2811,11 +2755,9 @@ type TableLastPK struct {
func (x *TableLastPK) Reset() {
*x = TableLastPK{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TableLastPK) String() string {
@@ -2826,7 +2768,7 @@ func (*TableLastPK) ProtoMessage() {}
func (x *TableLastPK) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[28]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2871,11 +2813,9 @@ type VStreamResultsRequest struct {
func (x *VStreamResultsRequest) Reset() {
*x = VStreamResultsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamResultsRequest) String() string {
@@ -2886,7 +2826,7 @@ func (*VStreamResultsRequest) ProtoMessage() {}
func (x *VStreamResultsRequest) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[29]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2943,11 +2883,9 @@ type VStreamResultsResponse struct {
func (x *VStreamResultsResponse) Reset() {
*x = VStreamResultsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamResultsResponse) String() string {
@@ -2958,7 +2896,7 @@ func (*VStreamResultsResponse) ProtoMessage() {}
func (x *VStreamResultsResponse) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[30]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3009,11 +2947,9 @@ type BinlogTransaction_Statement struct {
func (x *BinlogTransaction_Statement) Reset() {
*x = BinlogTransaction_Statement{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BinlogTransaction_Statement) String() string {
@@ -3024,7 +2960,7 @@ func (*BinlogTransaction_Statement) ProtoMessage() {}
func (x *BinlogTransaction_Statement) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[31]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3071,11 +3007,9 @@ type RowChange_Bitmap struct {
func (x *RowChange_Bitmap) Reset() {
*x = RowChange_Bitmap{}
- if protoimpl.UnsafeEnabled {
- mi := &file_binlogdata_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_binlogdata_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RowChange_Bitmap) String() string {
@@ -3086,7 +3020,7 @@ func (*RowChange_Bitmap) ProtoMessage() {}
func (x *RowChange_Bitmap) ProtoReflect() protoreflect.Message {
mi := &file_binlogdata_proto_msgTypes[35]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3759,404 +3693,6 @@ func file_binlogdata_proto_init() {
if File_binlogdata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_binlogdata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Charset); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*BinlogTransaction); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*StreamKeyRangeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*StreamKeyRangeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*StreamTablesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*StreamTablesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*CharsetConversion); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*Rule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*Filter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*BinlogSource); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*RowChange); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*RowEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*FieldEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*ShardGtid); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*VGtid); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*KeyspaceShard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*Journal); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*VEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*MinimalTable); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*MinimalSchema); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamRowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamRowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamTablesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamTablesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*LastPKEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*TableLastPK); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamResultsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamResultsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*BinlogTransaction_Statement); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_binlogdata_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*RowChange_Bitmap); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go b/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go
index fd76576fcb5..98fba617973 100644
--- a/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go
+++ b/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: binlogdata.proto
package binlogdata
diff --git a/go/vt/proto/binlogservice/binlogservice.pb.go b/go/vt/proto/binlogservice/binlogservice.pb.go
index 5ad07fcb3ea..9ac93adc872 100644
--- a/go/vt/proto/binlogservice/binlogservice.pb.go
+++ b/go/vt/proto/binlogservice/binlogservice.pb.go
@@ -19,7 +19,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: binlogservice.proto
diff --git a/go/vt/proto/logutil/logutil.pb.go b/go/vt/proto/logutil/logutil.pb.go
index ffba4cc2ad7..fff477ddf27 100644
--- a/go/vt/proto/logutil/logutil.pb.go
+++ b/go/vt/proto/logutil/logutil.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: logutil.proto
@@ -110,11 +110,9 @@ type Event struct {
func (x *Event) Reset() {
*x = Event{}
- if protoimpl.UnsafeEnabled {
- mi := &file_logutil_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_logutil_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Event) String() string {
@@ -125,7 +123,7 @@ func (*Event) ProtoMessage() {}
func (x *Event) ProtoReflect() protoreflect.Message {
mi := &file_logutil_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -232,20 +230,6 @@ func file_logutil_proto_init() {
if File_logutil_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_logutil_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Event); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/logutil/logutil_vtproto.pb.go b/go/vt/proto/logutil/logutil_vtproto.pb.go
index aeca94981f9..208d652cdaf 100644
--- a/go/vt/proto/logutil/logutil_vtproto.pb.go
+++ b/go/vt/proto/logutil/logutil_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: logutil.proto
package logutil
diff --git a/go/vt/proto/mysqlctl/mysqlctl.pb.go b/go/vt/proto/mysqlctl/mysqlctl.pb.go
index eaceeabad3e..1e7ca88f5fe 100644
--- a/go/vt/proto/mysqlctl/mysqlctl.pb.go
+++ b/go/vt/proto/mysqlctl/mysqlctl.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: mysqlctl.proto
@@ -111,11 +111,9 @@ type StartRequest struct {
func (x *StartRequest) Reset() {
*x = StartRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartRequest) String() string {
@@ -126,7 +124,7 @@ func (*StartRequest) ProtoMessage() {}
func (x *StartRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -156,11 +154,9 @@ type StartResponse struct {
func (x *StartResponse) Reset() {
*x = StartResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartResponse) String() string {
@@ -171,7 +167,7 @@ func (*StartResponse) ProtoMessage() {}
func (x *StartResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -197,11 +193,9 @@ type ShutdownRequest struct {
func (x *ShutdownRequest) Reset() {
*x = ShutdownRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShutdownRequest) String() string {
@@ -212,7 +206,7 @@ func (*ShutdownRequest) ProtoMessage() {}
func (x *ShutdownRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -249,11 +243,9 @@ type ShutdownResponse struct {
func (x *ShutdownResponse) Reset() {
*x = ShutdownResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShutdownResponse) String() string {
@@ -264,7 +256,7 @@ func (*ShutdownResponse) ProtoMessage() {}
func (x *ShutdownResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -287,11 +279,9 @@ type RunMysqlUpgradeRequest struct {
func (x *RunMysqlUpgradeRequest) Reset() {
*x = RunMysqlUpgradeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunMysqlUpgradeRequest) String() string {
@@ -302,7 +292,7 @@ func (*RunMysqlUpgradeRequest) ProtoMessage() {}
func (x *RunMysqlUpgradeRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -325,11 +315,9 @@ type RunMysqlUpgradeResponse struct {
func (x *RunMysqlUpgradeResponse) Reset() {
*x = RunMysqlUpgradeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunMysqlUpgradeResponse) String() string {
@@ -340,7 +328,7 @@ func (*RunMysqlUpgradeResponse) ProtoMessage() {}
func (x *RunMysqlUpgradeResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -367,11 +355,9 @@ type ApplyBinlogFileRequest struct {
func (x *ApplyBinlogFileRequest) Reset() {
*x = ApplyBinlogFileRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyBinlogFileRequest) String() string {
@@ -382,7 +368,7 @@ func (*ApplyBinlogFileRequest) ProtoMessage() {}
func (x *ApplyBinlogFileRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -426,11 +412,9 @@ type ApplyBinlogFileResponse struct {
func (x *ApplyBinlogFileResponse) Reset() {
*x = ApplyBinlogFileResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyBinlogFileResponse) String() string {
@@ -441,7 +425,7 @@ func (*ApplyBinlogFileResponse) ProtoMessage() {}
func (x *ApplyBinlogFileResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -466,11 +450,9 @@ type ReadBinlogFilesTimestampsRequest struct {
func (x *ReadBinlogFilesTimestampsRequest) Reset() {
*x = ReadBinlogFilesTimestampsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadBinlogFilesTimestampsRequest) String() string {
@@ -481,7 +463,7 @@ func (*ReadBinlogFilesTimestampsRequest) ProtoMessage() {}
func (x *ReadBinlogFilesTimestampsRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -520,11 +502,9 @@ type ReadBinlogFilesTimestampsResponse struct {
func (x *ReadBinlogFilesTimestampsResponse) Reset() {
*x = ReadBinlogFilesTimestampsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadBinlogFilesTimestampsResponse) String() string {
@@ -535,7 +515,7 @@ func (*ReadBinlogFilesTimestampsResponse) ProtoMessage() {}
func (x *ReadBinlogFilesTimestampsResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -586,11 +566,9 @@ type ReinitConfigRequest struct {
func (x *ReinitConfigRequest) Reset() {
*x = ReinitConfigRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReinitConfigRequest) String() string {
@@ -601,7 +579,7 @@ func (*ReinitConfigRequest) ProtoMessage() {}
func (x *ReinitConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -624,11 +602,9 @@ type ReinitConfigResponse struct {
func (x *ReinitConfigResponse) Reset() {
*x = ReinitConfigResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReinitConfigResponse) String() string {
@@ -639,7 +615,7 @@ func (*ReinitConfigResponse) ProtoMessage() {}
func (x *ReinitConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -662,11 +638,9 @@ type RefreshConfigRequest struct {
func (x *RefreshConfigRequest) Reset() {
*x = RefreshConfigRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshConfigRequest) String() string {
@@ -677,7 +651,7 @@ func (*RefreshConfigRequest) ProtoMessage() {}
func (x *RefreshConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -700,11 +674,9 @@ type RefreshConfigResponse struct {
func (x *RefreshConfigResponse) Reset() {
*x = RefreshConfigResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshConfigResponse) String() string {
@@ -715,7 +687,7 @@ func (*RefreshConfigResponse) ProtoMessage() {}
func (x *RefreshConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -738,11 +710,9 @@ type VersionStringRequest struct {
func (x *VersionStringRequest) Reset() {
*x = VersionStringRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VersionStringRequest) String() string {
@@ -753,7 +723,7 @@ func (*VersionStringRequest) ProtoMessage() {}
func (x *VersionStringRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -778,11 +748,9 @@ type VersionStringResponse struct {
func (x *VersionStringResponse) Reset() {
*x = VersionStringResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VersionStringResponse) String() string {
@@ -793,7 +761,7 @@ func (*VersionStringResponse) ProtoMessage() {}
func (x *VersionStringResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -823,11 +791,9 @@ type HostMetricsRequest struct {
func (x *HostMetricsRequest) Reset() {
*x = HostMetricsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HostMetricsRequest) String() string {
@@ -838,7 +804,7 @@ func (*HostMetricsRequest) ProtoMessage() {}
func (x *HostMetricsRequest) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -865,11 +831,9 @@ type HostMetricsResponse struct {
func (x *HostMetricsResponse) Reset() {
*x = HostMetricsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HostMetricsResponse) String() string {
@@ -880,7 +844,7 @@ func (*HostMetricsResponse) ProtoMessage() {}
func (x *HostMetricsResponse) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -922,11 +886,9 @@ type BackupInfo struct {
func (x *BackupInfo) Reset() {
*x = BackupInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupInfo) String() string {
@@ -937,7 +899,7 @@ func (*BackupInfo) ProtoMessage() {}
func (x *BackupInfo) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1023,11 +985,9 @@ type HostMetricsResponse_Metric struct {
func (x *HostMetricsResponse_Metric) Reset() {
*x = HostMetricsResponse_Metric{}
- if protoimpl.UnsafeEnabled {
- mi := &file_mysqlctl_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_mysqlctl_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HostMetricsResponse_Metric) String() string {
@@ -1038,7 +998,7 @@ func (*HostMetricsResponse_Metric) ProtoMessage() {}
func (x *HostMetricsResponse_Metric) ProtoReflect() protoreflect.Message {
mi := &file_mysqlctl_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1322,248 +1282,6 @@ func file_mysqlctl_proto_init() {
if File_mysqlctl_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_mysqlctl_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*StartRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*StartResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*ShutdownRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*ShutdownResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*RunMysqlUpgradeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*RunMysqlUpgradeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyBinlogFileRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyBinlogFileResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*ReadBinlogFilesTimestampsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*ReadBinlogFilesTimestampsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ReinitConfigRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ReinitConfigResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshConfigRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshConfigResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*VersionStringRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*VersionStringResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*HostMetricsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*HostMetricsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*BackupInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_mysqlctl_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*HostMetricsResponse_Metric); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go b/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go
index 656ace2bf36..f0c77770d50 100644
--- a/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go
+++ b/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: mysqlctl.proto
package mysqlctl
diff --git a/go/vt/proto/query/query.pb.go b/go/vt/proto/query/query.pb.go
index 68f99522584..8c4bcb93f47 100644
--- a/go/vt/proto/query/query.pb.go
+++ b/go/vt/proto/query/query.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: query.proto
@@ -984,11 +984,9 @@ type Target struct {
func (x *Target) Reset() {
*x = Target{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Target) String() string {
@@ -999,7 +997,7 @@ func (*Target) ProtoMessage() {}
func (x *Target) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1061,11 +1059,9 @@ type VTGateCallerID struct {
func (x *VTGateCallerID) Reset() {
*x = VTGateCallerID{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VTGateCallerID) String() string {
@@ -1076,7 +1072,7 @@ func (*VTGateCallerID) ProtoMessage() {}
func (x *VTGateCallerID) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1126,11 +1122,9 @@ type EventToken struct {
func (x *EventToken) Reset() {
*x = EventToken{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EventToken) String() string {
@@ -1141,7 +1135,7 @@ func (*EventToken) ProtoMessage() {}
func (x *EventToken) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1189,11 +1183,9 @@ type Value struct {
func (x *Value) Reset() {
*x = Value{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Value) String() string {
@@ -1204,7 +1196,7 @@ func (*Value) ProtoMessage() {}
func (x *Value) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1247,11 +1239,9 @@ type BindVariable struct {
func (x *BindVariable) Reset() {
*x = BindVariable{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BindVariable) String() string {
@@ -1262,7 +1252,7 @@ func (*BindVariable) ProtoMessage() {}
func (x *BindVariable) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1313,11 +1303,9 @@ type BoundQuery struct {
func (x *BoundQuery) Reset() {
*x = BoundQuery{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BoundQuery) String() string {
@@ -1328,7 +1316,7 @@ func (*BoundQuery) ProtoMessage() {}
func (x *BoundQuery) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1413,11 +1401,9 @@ type ExecuteOptions struct {
func (x *ExecuteOptions) Reset() {
*x = ExecuteOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteOptions) String() string {
@@ -1428,7 +1414,7 @@ func (*ExecuteOptions) ProtoMessage() {}
func (x *ExecuteOptions) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1582,11 +1568,9 @@ type Field struct {
func (x *Field) Reset() {
*x = Field{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Field) String() string {
@@ -1597,7 +1581,7 @@ func (*Field) ProtoMessage() {}
func (x *Field) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1706,11 +1690,9 @@ type Row struct {
func (x *Row) Reset() {
*x = Row{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Row) String() string {
@@ -1721,7 +1703,7 @@ func (*Row) ProtoMessage() {}
func (x *Row) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1774,11 +1756,9 @@ type QueryResult struct {
func (x *QueryResult) Reset() {
*x = QueryResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *QueryResult) String() string {
@@ -1789,7 +1769,7 @@ func (*QueryResult) ProtoMessage() {}
func (x *QueryResult) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1859,11 +1839,9 @@ type QueryWarning struct {
func (x *QueryWarning) Reset() {
*x = QueryWarning{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *QueryWarning) String() string {
@@ -1874,7 +1852,7 @@ func (*QueryWarning) ProtoMessage() {}
func (x *QueryWarning) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1919,11 +1897,9 @@ type StreamEvent struct {
func (x *StreamEvent) Reset() {
*x = StreamEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamEvent) String() string {
@@ -1934,7 +1910,7 @@ func (*StreamEvent) ProtoMessage() {}
func (x *StreamEvent) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1980,11 +1956,9 @@ type ExecuteRequest struct {
func (x *ExecuteRequest) Reset() {
*x = ExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteRequest) String() string {
@@ -1995,7 +1969,7 @@ func (*ExecuteRequest) ProtoMessage() {}
func (x *ExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2070,11 +2044,9 @@ type ExecuteResponse struct {
func (x *ExecuteResponse) Reset() {
*x = ExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteResponse) String() string {
@@ -2085,7 +2057,7 @@ func (*ExecuteResponse) ProtoMessage() {}
func (x *ExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2123,11 +2095,9 @@ type ResultWithError struct {
func (x *ResultWithError) Reset() {
*x = ResultWithError{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResultWithError) String() string {
@@ -2138,7 +2108,7 @@ func (*ResultWithError) ProtoMessage() {}
func (x *ResultWithError) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2184,11 +2154,9 @@ type StreamExecuteRequest struct {
func (x *StreamExecuteRequest) Reset() {
*x = StreamExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamExecuteRequest) String() string {
@@ -2199,7 +2167,7 @@ func (*StreamExecuteRequest) ProtoMessage() {}
func (x *StreamExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2274,11 +2242,9 @@ type StreamExecuteResponse struct {
func (x *StreamExecuteResponse) Reset() {
*x = StreamExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamExecuteResponse) String() string {
@@ -2289,7 +2255,7 @@ func (*StreamExecuteResponse) ProtoMessage() {}
func (x *StreamExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2325,11 +2291,9 @@ type BeginRequest struct {
func (x *BeginRequest) Reset() {
*x = BeginRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginRequest) String() string {
@@ -2340,7 +2304,7 @@ func (*BeginRequest) ProtoMessage() {}
func (x *BeginRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2398,11 +2362,9 @@ type BeginResponse struct {
func (x *BeginResponse) Reset() {
*x = BeginResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginResponse) String() string {
@@ -2413,7 +2375,7 @@ func (*BeginResponse) ProtoMessage() {}
func (x *BeginResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2463,11 +2425,9 @@ type CommitRequest struct {
func (x *CommitRequest) Reset() {
*x = CommitRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CommitRequest) String() string {
@@ -2478,7 +2438,7 @@ func (*CommitRequest) ProtoMessage() {}
func (x *CommitRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2532,11 +2492,9 @@ type CommitResponse struct {
func (x *CommitResponse) Reset() {
*x = CommitResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CommitResponse) String() string {
@@ -2547,7 +2505,7 @@ func (*CommitResponse) ProtoMessage() {}
func (x *CommitResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2583,11 +2541,9 @@ type RollbackRequest struct {
func (x *RollbackRequest) Reset() {
*x = RollbackRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RollbackRequest) String() string {
@@ -2598,7 +2554,7 @@ func (*RollbackRequest) ProtoMessage() {}
func (x *RollbackRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2652,11 +2608,9 @@ type RollbackResponse struct {
func (x *RollbackResponse) Reset() {
*x = RollbackResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RollbackResponse) String() string {
@@ -2667,7 +2621,7 @@ func (*RollbackResponse) ProtoMessage() {}
func (x *RollbackResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2704,11 +2658,9 @@ type PrepareRequest struct {
func (x *PrepareRequest) Reset() {
*x = PrepareRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrepareRequest) String() string {
@@ -2719,7 +2671,7 @@ func (*PrepareRequest) ProtoMessage() {}
func (x *PrepareRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2778,11 +2730,9 @@ type PrepareResponse struct {
func (x *PrepareResponse) Reset() {
*x = PrepareResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrepareResponse) String() string {
@@ -2793,7 +2743,7 @@ func (*PrepareResponse) ProtoMessage() {}
func (x *PrepareResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2822,11 +2772,9 @@ type CommitPreparedRequest struct {
func (x *CommitPreparedRequest) Reset() {
*x = CommitPreparedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CommitPreparedRequest) String() string {
@@ -2837,7 +2785,7 @@ func (*CommitPreparedRequest) ProtoMessage() {}
func (x *CommitPreparedRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2889,11 +2837,9 @@ type CommitPreparedResponse struct {
func (x *CommitPreparedResponse) Reset() {
*x = CommitPreparedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CommitPreparedResponse) String() string {
@@ -2904,7 +2850,7 @@ func (*CommitPreparedResponse) ProtoMessage() {}
func (x *CommitPreparedResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2934,11 +2880,9 @@ type RollbackPreparedRequest struct {
func (x *RollbackPreparedRequest) Reset() {
*x = RollbackPreparedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RollbackPreparedRequest) String() string {
@@ -2949,7 +2893,7 @@ func (*RollbackPreparedRequest) ProtoMessage() {}
func (x *RollbackPreparedRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[27]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3008,11 +2952,9 @@ type RollbackPreparedResponse struct {
func (x *RollbackPreparedResponse) Reset() {
*x = RollbackPreparedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RollbackPreparedResponse) String() string {
@@ -3023,7 +2965,7 @@ func (*RollbackPreparedResponse) ProtoMessage() {}
func (x *RollbackPreparedResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[28]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3053,11 +2995,9 @@ type CreateTransactionRequest struct {
func (x *CreateTransactionRequest) Reset() {
*x = CreateTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateTransactionRequest) String() string {
@@ -3068,7 +3008,7 @@ func (*CreateTransactionRequest) ProtoMessage() {}
func (x *CreateTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[29]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3127,11 +3067,9 @@ type CreateTransactionResponse struct {
func (x *CreateTransactionResponse) Reset() {
*x = CreateTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateTransactionResponse) String() string {
@@ -3142,7 +3080,7 @@ func (*CreateTransactionResponse) ProtoMessage() {}
func (x *CreateTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[30]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3172,11 +3110,9 @@ type StartCommitRequest struct {
func (x *StartCommitRequest) Reset() {
*x = StartCommitRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartCommitRequest) String() string {
@@ -3187,7 +3123,7 @@ func (*StartCommitRequest) ProtoMessage() {}
func (x *StartCommitRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[31]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3248,11 +3184,9 @@ type StartCommitResponse struct {
func (x *StartCommitResponse) Reset() {
*x = StartCommitResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[32]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartCommitResponse) String() string {
@@ -3263,7 +3197,7 @@ func (*StartCommitResponse) ProtoMessage() {}
func (x *StartCommitResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[32]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3300,11 +3234,9 @@ type SetRollbackRequest struct {
func (x *SetRollbackRequest) Reset() {
*x = SetRollbackRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[33]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetRollbackRequest) String() string {
@@ -3315,7 +3247,7 @@ func (*SetRollbackRequest) ProtoMessage() {}
func (x *SetRollbackRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[33]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3374,11 +3306,9 @@ type SetRollbackResponse struct {
func (x *SetRollbackResponse) Reset() {
*x = SetRollbackResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[34]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetRollbackResponse) String() string {
@@ -3389,7 +3319,7 @@ func (*SetRollbackResponse) ProtoMessage() {}
func (x *SetRollbackResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[34]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3418,11 +3348,9 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionRequest) String() string {
@@ -3433,7 +3361,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[35]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3485,11 +3413,9 @@ type ConcludeTransactionResponse struct {
func (x *ConcludeTransactionResponse) Reset() {
*x = ConcludeTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[36]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionResponse) String() string {
@@ -3500,7 +3426,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {}
func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[36]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3529,11 +3455,9 @@ type ReadTransactionRequest struct {
func (x *ReadTransactionRequest) Reset() {
*x = ReadTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[37]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadTransactionRequest) String() string {
@@ -3544,7 +3468,7 @@ func (*ReadTransactionRequest) ProtoMessage() {}
func (x *ReadTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[37]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3598,11 +3522,9 @@ type ReadTransactionResponse struct {
func (x *ReadTransactionResponse) Reset() {
*x = ReadTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[38]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadTransactionResponse) String() string {
@@ -3613,7 +3535,7 @@ func (*ReadTransactionResponse) ProtoMessage() {}
func (x *ReadTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[38]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3649,11 +3571,9 @@ type UnresolvedTransactionsRequest struct {
func (x *UnresolvedTransactionsRequest) Reset() {
*x = UnresolvedTransactionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[39]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UnresolvedTransactionsRequest) String() string {
@@ -3664,7 +3584,7 @@ func (*UnresolvedTransactionsRequest) ProtoMessage() {}
func (x *UnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[39]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3718,11 +3638,9 @@ type UnresolvedTransactionsResponse struct {
func (x *UnresolvedTransactionsResponse) Reset() {
*x = UnresolvedTransactionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[40]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UnresolvedTransactionsResponse) String() string {
@@ -3733,7 +3651,7 @@ func (*UnresolvedTransactionsResponse) ProtoMessage() {}
func (x *UnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[40]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3772,11 +3690,9 @@ type BeginExecuteRequest struct {
func (x *BeginExecuteRequest) Reset() {
*x = BeginExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[41]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginExecuteRequest) String() string {
@@ -3787,7 +3703,7 @@ func (*BeginExecuteRequest) ProtoMessage() {}
func (x *BeginExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[41]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3872,11 +3788,9 @@ type BeginExecuteResponse struct {
func (x *BeginExecuteResponse) Reset() {
*x = BeginExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[42]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginExecuteResponse) String() string {
@@ -3887,7 +3801,7 @@ func (*BeginExecuteResponse) ProtoMessage() {}
func (x *BeginExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[42]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3954,11 +3868,9 @@ type BeginStreamExecuteRequest struct {
func (x *BeginStreamExecuteRequest) Reset() {
*x = BeginStreamExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[43]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginStreamExecuteRequest) String() string {
@@ -3969,7 +3881,7 @@ func (*BeginStreamExecuteRequest) ProtoMessage() {}
func (x *BeginStreamExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[43]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4054,11 +3966,9 @@ type BeginStreamExecuteResponse struct {
func (x *BeginStreamExecuteResponse) Reset() {
*x = BeginStreamExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[44]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BeginStreamExecuteResponse) String() string {
@@ -4069,7 +3979,7 @@ func (*BeginStreamExecuteResponse) ProtoMessage() {}
func (x *BeginStreamExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[44]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4134,11 +4044,9 @@ type MessageStreamRequest struct {
func (x *MessageStreamRequest) Reset() {
*x = MessageStreamRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[45]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MessageStreamRequest) String() string {
@@ -4149,7 +4057,7 @@ func (*MessageStreamRequest) ProtoMessage() {}
func (x *MessageStreamRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[45]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4203,11 +4111,9 @@ type MessageStreamResponse struct {
func (x *MessageStreamResponse) Reset() {
*x = MessageStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[46]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MessageStreamResponse) String() string {
@@ -4218,7 +4124,7 @@ func (*MessageStreamResponse) ProtoMessage() {}
func (x *MessageStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[46]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4256,11 +4162,9 @@ type MessageAckRequest struct {
func (x *MessageAckRequest) Reset() {
*x = MessageAckRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[47]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MessageAckRequest) String() string {
@@ -4271,7 +4175,7 @@ func (*MessageAckRequest) ProtoMessage() {}
func (x *MessageAckRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[47]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4335,11 +4239,9 @@ type MessageAckResponse struct {
func (x *MessageAckResponse) Reset() {
*x = MessageAckResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[48]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MessageAckResponse) String() string {
@@ -4350,7 +4252,7 @@ func (*MessageAckResponse) ProtoMessage() {}
func (x *MessageAckResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[48]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4389,11 +4291,9 @@ type ReserveExecuteRequest struct {
func (x *ReserveExecuteRequest) Reset() {
*x = ReserveExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[49]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveExecuteRequest) String() string {
@@ -4404,7 +4304,7 @@ func (*ReserveExecuteRequest) ProtoMessage() {}
func (x *ReserveExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[49]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4483,11 +4383,9 @@ type ReserveExecuteResponse struct {
func (x *ReserveExecuteResponse) Reset() {
*x = ReserveExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[50]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveExecuteResponse) String() string {
@@ -4498,7 +4396,7 @@ func (*ReserveExecuteResponse) ProtoMessage() {}
func (x *ReserveExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[50]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4558,11 +4456,9 @@ type ReserveStreamExecuteRequest struct {
func (x *ReserveStreamExecuteRequest) Reset() {
*x = ReserveStreamExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[51]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveStreamExecuteRequest) String() string {
@@ -4573,7 +4469,7 @@ func (*ReserveStreamExecuteRequest) ProtoMessage() {}
func (x *ReserveStreamExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[51]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4652,11 +4548,9 @@ type ReserveStreamExecuteResponse struct {
func (x *ReserveStreamExecuteResponse) Reset() {
*x = ReserveStreamExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[52]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveStreamExecuteResponse) String() string {
@@ -4667,7 +4561,7 @@ func (*ReserveStreamExecuteResponse) ProtoMessage() {}
func (x *ReserveStreamExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[52]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4727,11 +4621,9 @@ type ReserveBeginExecuteRequest struct {
func (x *ReserveBeginExecuteRequest) Reset() {
*x = ReserveBeginExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[53]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveBeginExecuteRequest) String() string {
@@ -4742,7 +4634,7 @@ func (*ReserveBeginExecuteRequest) ProtoMessage() {}
func (x *ReserveBeginExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[53]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4828,11 +4720,9 @@ type ReserveBeginExecuteResponse struct {
func (x *ReserveBeginExecuteResponse) Reset() {
*x = ReserveBeginExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[54]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveBeginExecuteResponse) String() string {
@@ -4843,7 +4733,7 @@ func (*ReserveBeginExecuteResponse) ProtoMessage() {}
func (x *ReserveBeginExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[54]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4917,11 +4807,9 @@ type ReserveBeginStreamExecuteRequest struct {
func (x *ReserveBeginStreamExecuteRequest) Reset() {
*x = ReserveBeginStreamExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[55]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveBeginStreamExecuteRequest) String() string {
@@ -4932,7 +4820,7 @@ func (*ReserveBeginStreamExecuteRequest) ProtoMessage() {}
func (x *ReserveBeginStreamExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[55]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5018,11 +4906,9 @@ type ReserveBeginStreamExecuteResponse struct {
func (x *ReserveBeginStreamExecuteResponse) Reset() {
*x = ReserveBeginStreamExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[56]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReserveBeginStreamExecuteResponse) String() string {
@@ -5033,7 +4919,7 @@ func (*ReserveBeginStreamExecuteResponse) ProtoMessage() {}
func (x *ReserveBeginStreamExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[56]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5105,11 +4991,9 @@ type ReleaseRequest struct {
func (x *ReleaseRequest) Reset() {
*x = ReleaseRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[57]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReleaseRequest) String() string {
@@ -5120,7 +5004,7 @@ func (*ReleaseRequest) ProtoMessage() {}
func (x *ReleaseRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[57]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5179,11 +5063,9 @@ type ReleaseResponse struct {
func (x *ReleaseResponse) Reset() {
*x = ReleaseResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[58]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReleaseResponse) String() string {
@@ -5194,7 +5076,7 @@ func (*ReleaseResponse) ProtoMessage() {}
func (x *ReleaseResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[58]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5218,11 +5100,9 @@ type StreamHealthRequest struct {
func (x *StreamHealthRequest) Reset() {
*x = StreamHealthRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[59]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamHealthRequest) String() string {
@@ -5233,7 +5113,7 @@ func (*StreamHealthRequest) ProtoMessage() {}
func (x *StreamHealthRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[59]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5293,11 +5173,9 @@ type RealtimeStats struct {
func (x *RealtimeStats) Reset() {
*x = RealtimeStats{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[60]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RealtimeStats) String() string {
@@ -5308,7 +5186,7 @@ func (*RealtimeStats) ProtoMessage() {}
func (x *RealtimeStats) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[60]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5418,11 +5296,9 @@ type AggregateStats struct {
func (x *AggregateStats) Reset() {
*x = AggregateStats{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[61]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AggregateStats) String() string {
@@ -5433,7 +5309,7 @@ func (*AggregateStats) ProtoMessage() {}
func (x *AggregateStats) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[61]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5538,11 +5414,9 @@ type StreamHealthResponse struct {
func (x *StreamHealthResponse) Reset() {
*x = StreamHealthResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[62]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamHealthResponse) String() string {
@@ -5553,7 +5427,7 @@ func (*StreamHealthResponse) ProtoMessage() {}
func (x *StreamHealthResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[62]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5617,11 +5491,9 @@ type TransactionMetadata struct {
func (x *TransactionMetadata) Reset() {
*x = TransactionMetadata{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[63]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TransactionMetadata) String() string {
@@ -5632,7 +5504,7 @@ func (*TransactionMetadata) ProtoMessage() {}
func (x *TransactionMetadata) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[63]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5688,11 +5560,9 @@ type GetSchemaRequest struct {
func (x *GetSchemaRequest) Reset() {
*x = GetSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[64]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaRequest) String() string {
@@ -5703,7 +5573,7 @@ func (*GetSchemaRequest) ProtoMessage() {}
func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[64]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5752,11 +5622,9 @@ type UDFInfo struct {
func (x *UDFInfo) Reset() {
*x = UDFInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[65]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UDFInfo) String() string {
@@ -5767,7 +5635,7 @@ func (*UDFInfo) ProtoMessage() {}
func (x *UDFInfo) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[65]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5816,11 +5684,9 @@ type GetSchemaResponse struct {
func (x *GetSchemaResponse) Reset() {
*x = GetSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[66]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaResponse) String() string {
@@ -5831,7 +5697,7 @@ func (*GetSchemaResponse) ProtoMessage() {}
func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[66]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5878,11 +5744,9 @@ type StreamEvent_Statement struct {
func (x *StreamEvent_Statement) Reset() {
*x = StreamEvent_Statement{}
- if protoimpl.UnsafeEnabled {
- mi := &file_query_proto_msgTypes[68]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_query_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamEvent_Statement) String() string {
@@ -5893,7 +5757,7 @@ func (*StreamEvent_Statement) ProtoMessage() {}
func (x *StreamEvent_Statement) ProtoReflect() protoreflect.Message {
mi := &file_query_proto_msgTypes[68]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7171,824 +7035,6 @@ func file_query_proto_init() {
if File_query_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_query_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Target); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*VTGateCallerID); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*EventToken); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*Value); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*BindVariable); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*BoundQuery); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*Field); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*Row); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*QueryResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*QueryWarning); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*StreamEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*ResultWithError); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*StreamExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*StreamExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*BeginRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*BeginResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*CommitRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*CommitResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*RollbackRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*RollbackResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*PrepareRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*PrepareResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*CommitPreparedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*CommitPreparedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*RollbackPreparedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*RollbackPreparedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*CreateTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*CreateTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*StartCommitRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*StartCommitResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[33].Exporter = func(v any, i int) any {
- switch v := v.(*SetRollbackRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[34].Exporter = func(v any, i int) any {
- switch v := v.(*SetRollbackResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[36].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[37].Exporter = func(v any, i int) any {
- switch v := v.(*ReadTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[38].Exporter = func(v any, i int) any {
- switch v := v.(*ReadTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[39].Exporter = func(v any, i int) any {
- switch v := v.(*UnresolvedTransactionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[40].Exporter = func(v any, i int) any {
- switch v := v.(*UnresolvedTransactionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[41].Exporter = func(v any, i int) any {
- switch v := v.(*BeginExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[42].Exporter = func(v any, i int) any {
- switch v := v.(*BeginExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[43].Exporter = func(v any, i int) any {
- switch v := v.(*BeginStreamExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[44].Exporter = func(v any, i int) any {
- switch v := v.(*BeginStreamExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[45].Exporter = func(v any, i int) any {
- switch v := v.(*MessageStreamRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[46].Exporter = func(v any, i int) any {
- switch v := v.(*MessageStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[47].Exporter = func(v any, i int) any {
- switch v := v.(*MessageAckRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[48].Exporter = func(v any, i int) any {
- switch v := v.(*MessageAckResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[49].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[50].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[51].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveStreamExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[52].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveStreamExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[53].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveBeginExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[54].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveBeginExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[55].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveBeginStreamExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[56].Exporter = func(v any, i int) any {
- switch v := v.(*ReserveBeginStreamExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[57].Exporter = func(v any, i int) any {
- switch v := v.(*ReleaseRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[58].Exporter = func(v any, i int) any {
- switch v := v.(*ReleaseResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[59].Exporter = func(v any, i int) any {
- switch v := v.(*StreamHealthRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[60].Exporter = func(v any, i int) any {
- switch v := v.(*RealtimeStats); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[61].Exporter = func(v any, i int) any {
- switch v := v.(*AggregateStats); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[62].Exporter = func(v any, i int) any {
- switch v := v.(*StreamHealthResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[63].Exporter = func(v any, i int) any {
- switch v := v.(*TransactionMetadata); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[64].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*UDFInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_query_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*StreamEvent_Statement); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
file_query_proto_msgTypes[6].OneofWrappers = []any{
(*ExecuteOptions_AuthoritativeTimeout)(nil),
}
diff --git a/go/vt/proto/query/query_vtproto.pb.go b/go/vt/proto/query/query_vtproto.pb.go
index 7de7afc320b..2cb69d9406d 100644
--- a/go/vt/proto/query/query_vtproto.pb.go
+++ b/go/vt/proto/query/query_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: query.proto
package query
diff --git a/go/vt/proto/queryservice/queryservice.pb.go b/go/vt/proto/queryservice/queryservice.pb.go
index 3ef39575e60..b44c6becd5d 100644
--- a/go/vt/proto/queryservice/queryservice.pb.go
+++ b/go/vt/proto/queryservice/queryservice.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: queryservice.proto
diff --git a/go/vt/proto/replicationdata/replicationdata.pb.go b/go/vt/proto/replicationdata/replicationdata.pb.go
index 29ee0e5b67e..4568ae2d437 100644
--- a/go/vt/proto/replicationdata/replicationdata.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: replicationdata.proto
@@ -118,11 +118,9 @@ type Status struct {
func (x *Status) Reset() {
*x = Status{}
- if protoimpl.UnsafeEnabled {
- mi := &file_replicationdata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_replicationdata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Status) String() string {
@@ -133,7 +131,7 @@ func (*Status) ProtoMessage() {}
func (x *Status) ProtoReflect() protoreflect.Message {
mi := &file_replicationdata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -316,11 +314,9 @@ type Configuration struct {
func (x *Configuration) Reset() {
*x = Configuration{}
- if protoimpl.UnsafeEnabled {
- mi := &file_replicationdata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_replicationdata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Configuration) String() string {
@@ -331,7 +327,7 @@ func (*Configuration) ProtoMessage() {}
func (x *Configuration) ProtoReflect() protoreflect.Message {
mi := &file_replicationdata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -373,11 +369,9 @@ type StopReplicationStatus struct {
func (x *StopReplicationStatus) Reset() {
*x = StopReplicationStatus{}
- if protoimpl.UnsafeEnabled {
- mi := &file_replicationdata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_replicationdata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationStatus) String() string {
@@ -388,7 +382,7 @@ func (*StopReplicationStatus) ProtoMessage() {}
func (x *StopReplicationStatus) ProtoReflect() protoreflect.Message {
mi := &file_replicationdata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -430,11 +424,9 @@ type PrimaryStatus struct {
func (x *PrimaryStatus) Reset() {
*x = PrimaryStatus{}
- if protoimpl.UnsafeEnabled {
- mi := &file_replicationdata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_replicationdata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrimaryStatus) String() string {
@@ -445,7 +437,7 @@ func (*PrimaryStatus) ProtoMessage() {}
func (x *PrimaryStatus) ProtoReflect() protoreflect.Message {
mi := &file_replicationdata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -513,11 +505,9 @@ type FullStatus struct {
func (x *FullStatus) Reset() {
*x = FullStatus{}
- if protoimpl.UnsafeEnabled {
- mi := &file_replicationdata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_replicationdata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FullStatus) String() string {
@@ -528,7 +518,7 @@ func (*FullStatus) ProtoMessage() {}
func (x *FullStatus) ProtoReflect() protoreflect.Message {
mi := &file_replicationdata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -900,68 +890,6 @@ func file_replicationdata_proto_init() {
if File_replicationdata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_replicationdata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Status); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_replicationdata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*Configuration); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_replicationdata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationStatus); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_replicationdata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryStatus); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_replicationdata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatus); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
index b81b2125566..b1b771d1561 100644
--- a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: replicationdata.proto
package replicationdata
diff --git a/go/vt/proto/tableacl/tableacl.pb.go b/go/vt/proto/tableacl/tableacl.pb.go
index b6b7549e8fc..44281419028 100644
--- a/go/vt/proto/tableacl/tableacl.pb.go
+++ b/go/vt/proto/tableacl/tableacl.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: tableacl.proto
@@ -53,11 +53,9 @@ type TableGroupSpec struct {
func (x *TableGroupSpec) Reset() {
*x = TableGroupSpec{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tableacl_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tableacl_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TableGroupSpec) String() string {
@@ -68,7 +66,7 @@ func (*TableGroupSpec) ProtoMessage() {}
func (x *TableGroupSpec) ProtoReflect() protoreflect.Message {
mi := &file_tableacl_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -128,11 +126,9 @@ type Config struct {
func (x *Config) Reset() {
*x = Config{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tableacl_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tableacl_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Config) String() string {
@@ -143,7 +139,7 @@ func (*Config) ProtoMessage() {}
func (x *Config) ProtoReflect() protoreflect.Message {
mi := &file_tableacl_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -221,32 +217,6 @@ func file_tableacl_proto_init() {
if File_tableacl_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_tableacl_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*TableGroupSpec); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tableacl_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*Config); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/tableacl/tableacl_vtproto.pb.go b/go/vt/proto/tableacl/tableacl_vtproto.pb.go
index acf8b28b71c..60c9294706f 100644
--- a/go/vt/proto/tableacl/tableacl_vtproto.pb.go
+++ b/go/vt/proto/tableacl/tableacl_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: tableacl.proto
package tableacl
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
index eb29cd462c4..67eae2395ad 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: tabletmanagerdata.proto
@@ -181,11 +181,9 @@ type TableDefinition struct {
func (x *TableDefinition) Reset() {
*x = TableDefinition{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TableDefinition) String() string {
@@ -196,7 +194,7 @@ func (*TableDefinition) ProtoMessage() {}
func (x *TableDefinition) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -278,11 +276,9 @@ type SchemaDefinition struct {
func (x *SchemaDefinition) Reset() {
*x = SchemaDefinition{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SchemaDefinition) String() string {
@@ -293,7 +289,7 @@ func (*SchemaDefinition) ProtoMessage() {}
func (x *SchemaDefinition) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -335,11 +331,9 @@ type SchemaChangeResult struct {
func (x *SchemaChangeResult) Reset() {
*x = SchemaChangeResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SchemaChangeResult) String() string {
@@ -350,7 +344,7 @@ func (*SchemaChangeResult) ProtoMessage() {}
func (x *SchemaChangeResult) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -395,11 +389,9 @@ type UserPermission struct {
func (x *UserPermission) Reset() {
*x = UserPermission{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UserPermission) String() string {
@@ -410,7 +402,7 @@ func (*UserPermission) ProtoMessage() {}
func (x *UserPermission) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -468,11 +460,9 @@ type DbPermission struct {
func (x *DbPermission) Reset() {
*x = DbPermission{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DbPermission) String() string {
@@ -483,7 +473,7 @@ func (*DbPermission) ProtoMessage() {}
func (x *DbPermission) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -539,11 +529,9 @@ type Permissions struct {
func (x *Permissions) Reset() {
*x = Permissions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Permissions) String() string {
@@ -554,7 +542,7 @@ func (*Permissions) ProtoMessage() {}
func (x *Permissions) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -593,11 +581,9 @@ type PingRequest struct {
func (x *PingRequest) Reset() {
*x = PingRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingRequest) String() string {
@@ -608,7 +594,7 @@ func (*PingRequest) ProtoMessage() {}
func (x *PingRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -640,11 +626,9 @@ type PingResponse struct {
func (x *PingResponse) Reset() {
*x = PingResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingResponse) String() string {
@@ -655,7 +639,7 @@ func (*PingResponse) ProtoMessage() {}
func (x *PingResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -688,11 +672,9 @@ type SleepRequest struct {
func (x *SleepRequest) Reset() {
*x = SleepRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SleepRequest) String() string {
@@ -703,7 +685,7 @@ func (*SleepRequest) ProtoMessage() {}
func (x *SleepRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -733,11 +715,9 @@ type SleepResponse struct {
func (x *SleepResponse) Reset() {
*x = SleepResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SleepResponse) String() string {
@@ -748,7 +728,7 @@ func (*SleepResponse) ProtoMessage() {}
func (x *SleepResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -775,11 +755,9 @@ type ExecuteHookRequest struct {
func (x *ExecuteHookRequest) Reset() {
*x = ExecuteHookRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteHookRequest) String() string {
@@ -790,7 +768,7 @@ func (*ExecuteHookRequest) ProtoMessage() {}
func (x *ExecuteHookRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -838,11 +816,9 @@ type ExecuteHookResponse struct {
func (x *ExecuteHookResponse) Reset() {
*x = ExecuteHookResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteHookResponse) String() string {
@@ -853,7 +829,7 @@ func (*ExecuteHookResponse) ProtoMessage() {}
func (x *ExecuteHookResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -904,11 +880,9 @@ type GetSchemaRequest struct {
func (x *GetSchemaRequest) Reset() {
*x = GetSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaRequest) String() string {
@@ -919,7 +893,7 @@ func (*GetSchemaRequest) ProtoMessage() {}
func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -972,11 +946,9 @@ type GetSchemaResponse struct {
func (x *GetSchemaResponse) Reset() {
*x = GetSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaResponse) String() string {
@@ -987,7 +959,7 @@ func (*GetSchemaResponse) ProtoMessage() {}
func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1017,11 +989,9 @@ type GetPermissionsRequest struct {
func (x *GetPermissionsRequest) Reset() {
*x = GetPermissionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetPermissionsRequest) String() string {
@@ -1032,7 +1002,7 @@ func (*GetPermissionsRequest) ProtoMessage() {}
func (x *GetPermissionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1057,11 +1027,9 @@ type GetPermissionsResponse struct {
func (x *GetPermissionsResponse) Reset() {
*x = GetPermissionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetPermissionsResponse) String() string {
@@ -1072,7 +1040,7 @@ func (*GetPermissionsResponse) ProtoMessage() {}
func (x *GetPermissionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1104,11 +1072,9 @@ type GetGlobalStatusVarsRequest struct {
func (x *GetGlobalStatusVarsRequest) Reset() {
*x = GetGlobalStatusVarsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetGlobalStatusVarsRequest) String() string {
@@ -1119,7 +1085,7 @@ func (*GetGlobalStatusVarsRequest) ProtoMessage() {}
func (x *GetGlobalStatusVarsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1151,11 +1117,9 @@ type GetGlobalStatusVarsResponse struct {
func (x *GetGlobalStatusVarsResponse) Reset() {
*x = GetGlobalStatusVarsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetGlobalStatusVarsResponse) String() string {
@@ -1166,7 +1130,7 @@ func (*GetGlobalStatusVarsResponse) ProtoMessage() {}
func (x *GetGlobalStatusVarsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1196,11 +1160,9 @@ type SetReadOnlyRequest struct {
func (x *SetReadOnlyRequest) Reset() {
*x = SetReadOnlyRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadOnlyRequest) String() string {
@@ -1211,7 +1173,7 @@ func (*SetReadOnlyRequest) ProtoMessage() {}
func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1234,11 +1196,9 @@ type SetReadOnlyResponse struct {
func (x *SetReadOnlyResponse) Reset() {
*x = SetReadOnlyResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadOnlyResponse) String() string {
@@ -1249,7 +1209,7 @@ func (*SetReadOnlyResponse) ProtoMessage() {}
func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1272,11 +1232,9 @@ type SetReadWriteRequest struct {
func (x *SetReadWriteRequest) Reset() {
*x = SetReadWriteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadWriteRequest) String() string {
@@ -1287,7 +1245,7 @@ func (*SetReadWriteRequest) ProtoMessage() {}
func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1310,11 +1268,9 @@ type SetReadWriteResponse struct {
func (x *SetReadWriteResponse) Reset() {
*x = SetReadWriteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadWriteResponse) String() string {
@@ -1325,7 +1281,7 @@ func (*SetReadWriteResponse) ProtoMessage() {}
func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1351,11 +1307,9 @@ type ChangeTypeRequest struct {
func (x *ChangeTypeRequest) Reset() {
*x = ChangeTypeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTypeRequest) String() string {
@@ -1366,7 +1320,7 @@ func (*ChangeTypeRequest) ProtoMessage() {}
func (x *ChangeTypeRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1403,11 +1357,9 @@ type ChangeTypeResponse struct {
func (x *ChangeTypeResponse) Reset() {
*x = ChangeTypeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTypeResponse) String() string {
@@ -1418,7 +1370,7 @@ func (*ChangeTypeResponse) ProtoMessage() {}
func (x *ChangeTypeResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1441,11 +1393,9 @@ type RefreshStateRequest struct {
func (x *RefreshStateRequest) Reset() {
*x = RefreshStateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateRequest) String() string {
@@ -1456,7 +1406,7 @@ func (*RefreshStateRequest) ProtoMessage() {}
func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1479,11 +1429,9 @@ type RefreshStateResponse struct {
func (x *RefreshStateResponse) Reset() {
*x = RefreshStateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateResponse) String() string {
@@ -1494,7 +1442,7 @@ func (*RefreshStateResponse) ProtoMessage() {}
func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1517,11 +1465,9 @@ type RunHealthCheckRequest struct {
func (x *RunHealthCheckRequest) Reset() {
*x = RunHealthCheckRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckRequest) String() string {
@@ -1532,7 +1478,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {}
func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1555,11 +1501,9 @@ type RunHealthCheckResponse struct {
func (x *RunHealthCheckResponse) Reset() {
*x = RunHealthCheckResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckResponse) String() string {
@@ -1570,7 +1514,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {}
func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[27]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1598,11 +1542,9 @@ type ReloadSchemaRequest struct {
func (x *ReloadSchemaRequest) Reset() {
*x = ReloadSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaRequest) String() string {
@@ -1613,7 +1555,7 @@ func (*ReloadSchemaRequest) ProtoMessage() {}
func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[28]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1643,11 +1585,9 @@ type ReloadSchemaResponse struct {
func (x *ReloadSchemaResponse) Reset() {
*x = ReloadSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaResponse) String() string {
@@ -1658,7 +1598,7 @@ func (*ReloadSchemaResponse) ProtoMessage() {}
func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[29]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1683,11 +1623,9 @@ type PreflightSchemaRequest struct {
func (x *PreflightSchemaRequest) Reset() {
*x = PreflightSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PreflightSchemaRequest) String() string {
@@ -1698,7 +1636,7 @@ func (*PreflightSchemaRequest) ProtoMessage() {}
func (x *PreflightSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[30]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1732,11 +1670,9 @@ type PreflightSchemaResponse struct {
func (x *PreflightSchemaResponse) Reset() {
*x = PreflightSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PreflightSchemaResponse) String() string {
@@ -1747,7 +1683,7 @@ func (*PreflightSchemaResponse) ProtoMessage() {}
func (x *PreflightSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[31]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1788,11 +1724,9 @@ type ApplySchemaRequest struct {
func (x *ApplySchemaRequest) Reset() {
*x = ApplySchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[32]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplySchemaRequest) String() string {
@@ -1803,7 +1737,7 @@ func (*ApplySchemaRequest) ProtoMessage() {}
func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[32]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1885,11 +1819,9 @@ type ApplySchemaResponse struct {
func (x *ApplySchemaResponse) Reset() {
*x = ApplySchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[33]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplySchemaResponse) String() string {
@@ -1900,7 +1832,7 @@ func (*ApplySchemaResponse) ProtoMessage() {}
func (x *ApplySchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[33]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1937,11 +1869,9 @@ type LockTablesRequest struct {
func (x *LockTablesRequest) Reset() {
*x = LockTablesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[34]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LockTablesRequest) String() string {
@@ -1952,7 +1882,7 @@ func (*LockTablesRequest) ProtoMessage() {}
func (x *LockTablesRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[34]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1975,11 +1905,9 @@ type LockTablesResponse struct {
func (x *LockTablesResponse) Reset() {
*x = LockTablesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LockTablesResponse) String() string {
@@ -1990,7 +1918,7 @@ func (*LockTablesResponse) ProtoMessage() {}
func (x *LockTablesResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[35]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2013,11 +1941,9 @@ type UnlockTablesRequest struct {
func (x *UnlockTablesRequest) Reset() {
*x = UnlockTablesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[36]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UnlockTablesRequest) String() string {
@@ -2028,7 +1954,7 @@ func (*UnlockTablesRequest) ProtoMessage() {}
func (x *UnlockTablesRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[36]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2051,11 +1977,9 @@ type UnlockTablesResponse struct {
func (x *UnlockTablesResponse) Reset() {
*x = UnlockTablesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[37]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UnlockTablesResponse) String() string {
@@ -2066,7 +1990,7 @@ func (*UnlockTablesResponse) ProtoMessage() {}
func (x *UnlockTablesResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[37]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2096,11 +2020,9 @@ type ExecuteQueryRequest struct {
func (x *ExecuteQueryRequest) Reset() {
*x = ExecuteQueryRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[38]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteQueryRequest) String() string {
@@ -2111,7 +2033,7 @@ func (*ExecuteQueryRequest) ProtoMessage() {}
func (x *ExecuteQueryRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[38]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2164,11 +2086,9 @@ type ExecuteQueryResponse struct {
func (x *ExecuteQueryResponse) Reset() {
*x = ExecuteQueryResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[39]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteQueryResponse) String() string {
@@ -2179,7 +2099,7 @@ func (*ExecuteQueryResponse) ProtoMessage() {}
func (x *ExecuteQueryResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[39]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2216,11 +2136,9 @@ type ExecuteFetchAsDbaRequest struct {
func (x *ExecuteFetchAsDbaRequest) Reset() {
*x = ExecuteFetchAsDbaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[40]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsDbaRequest) String() string {
@@ -2231,7 +2149,7 @@ func (*ExecuteFetchAsDbaRequest) ProtoMessage() {}
func (x *ExecuteFetchAsDbaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[40]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2298,11 +2216,9 @@ type ExecuteFetchAsDbaResponse struct {
func (x *ExecuteFetchAsDbaResponse) Reset() {
*x = ExecuteFetchAsDbaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[41]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsDbaResponse) String() string {
@@ -2313,7 +2229,7 @@ func (*ExecuteFetchAsDbaResponse) ProtoMessage() {}
func (x *ExecuteFetchAsDbaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[41]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2350,11 +2266,9 @@ type ExecuteMultiFetchAsDbaRequest struct {
func (x *ExecuteMultiFetchAsDbaRequest) Reset() {
*x = ExecuteMultiFetchAsDbaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[42]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteMultiFetchAsDbaRequest) String() string {
@@ -2365,7 +2279,7 @@ func (*ExecuteMultiFetchAsDbaRequest) ProtoMessage() {}
func (x *ExecuteMultiFetchAsDbaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[42]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2432,11 +2346,9 @@ type ExecuteMultiFetchAsDbaResponse struct {
func (x *ExecuteMultiFetchAsDbaResponse) Reset() {
*x = ExecuteMultiFetchAsDbaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[43]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteMultiFetchAsDbaResponse) String() string {
@@ -2447,7 +2359,7 @@ func (*ExecuteMultiFetchAsDbaResponse) ProtoMessage() {}
func (x *ExecuteMultiFetchAsDbaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[43]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2482,11 +2394,9 @@ type ExecuteFetchAsAllPrivsRequest struct {
func (x *ExecuteFetchAsAllPrivsRequest) Reset() {
*x = ExecuteFetchAsAllPrivsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[44]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAllPrivsRequest) String() string {
@@ -2497,7 +2407,7 @@ func (*ExecuteFetchAsAllPrivsRequest) ProtoMessage() {}
func (x *ExecuteFetchAsAllPrivsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[44]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2550,11 +2460,9 @@ type ExecuteFetchAsAllPrivsResponse struct {
func (x *ExecuteFetchAsAllPrivsResponse) Reset() {
*x = ExecuteFetchAsAllPrivsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[45]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAllPrivsResponse) String() string {
@@ -2565,7 +2473,7 @@ func (*ExecuteFetchAsAllPrivsResponse) ProtoMessage() {}
func (x *ExecuteFetchAsAllPrivsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[45]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2598,11 +2506,9 @@ type ExecuteFetchAsAppRequest struct {
func (x *ExecuteFetchAsAppRequest) Reset() {
*x = ExecuteFetchAsAppRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[46]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAppRequest) String() string {
@@ -2613,7 +2519,7 @@ func (*ExecuteFetchAsAppRequest) ProtoMessage() {}
func (x *ExecuteFetchAsAppRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[46]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2652,11 +2558,9 @@ type ExecuteFetchAsAppResponse struct {
func (x *ExecuteFetchAsAppResponse) Reset() {
*x = ExecuteFetchAsAppResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[47]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAppResponse) String() string {
@@ -2667,7 +2571,7 @@ func (*ExecuteFetchAsAppResponse) ProtoMessage() {}
func (x *ExecuteFetchAsAppResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[47]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2699,11 +2603,9 @@ type GetUnresolvedTransactionsRequest struct {
func (x *GetUnresolvedTransactionsRequest) Reset() {
*x = GetUnresolvedTransactionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[48]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetUnresolvedTransactionsRequest) String() string {
@@ -2714,7 +2616,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {}
func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[48]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2746,11 +2648,9 @@ type GetUnresolvedTransactionsResponse struct {
func (x *GetUnresolvedTransactionsResponse) Reset() {
*x = GetUnresolvedTransactionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[49]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetUnresolvedTransactionsResponse) String() string {
@@ -2761,7 +2661,7 @@ func (*GetUnresolvedTransactionsResponse) ProtoMessage() {}
func (x *GetUnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[49]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2793,11 +2693,9 @@ type ReadTransactionRequest struct {
func (x *ReadTransactionRequest) Reset() {
*x = ReadTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[50]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadTransactionRequest) String() string {
@@ -2808,7 +2706,7 @@ func (*ReadTransactionRequest) ProtoMessage() {}
func (x *ReadTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[50]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2840,11 +2738,9 @@ type ReadTransactionResponse struct {
func (x *ReadTransactionResponse) Reset() {
*x = ReadTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[51]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadTransactionResponse) String() string {
@@ -2855,7 +2751,7 @@ func (*ReadTransactionResponse) ProtoMessage() {}
func (x *ReadTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[51]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2887,11 +2783,9 @@ type GetTransactionInfoRequest struct {
func (x *GetTransactionInfoRequest) Reset() {
*x = GetTransactionInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[52]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTransactionInfoRequest) String() string {
@@ -2902,7 +2796,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {}
func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[52]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2937,11 +2831,9 @@ type GetTransactionInfoResponse struct {
func (x *GetTransactionInfoResponse) Reset() {
*x = GetTransactionInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[53]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTransactionInfoResponse) String() string {
@@ -2952,7 +2844,7 @@ func (*GetTransactionInfoResponse) ProtoMessage() {}
func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[53]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3006,11 +2898,9 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[54]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionRequest) String() string {
@@ -3021,7 +2911,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[54]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3058,11 +2948,9 @@ type ConcludeTransactionResponse struct {
func (x *ConcludeTransactionResponse) Reset() {
*x = ConcludeTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[55]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionResponse) String() string {
@@ -3073,7 +2961,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {}
func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[55]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3096,11 +2984,9 @@ type MysqlHostMetricsRequest struct {
func (x *MysqlHostMetricsRequest) Reset() {
*x = MysqlHostMetricsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[56]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MysqlHostMetricsRequest) String() string {
@@ -3111,7 +2997,7 @@ func (*MysqlHostMetricsRequest) ProtoMessage() {}
func (x *MysqlHostMetricsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[56]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3136,11 +3022,9 @@ type MysqlHostMetricsResponse struct {
func (x *MysqlHostMetricsResponse) Reset() {
*x = MysqlHostMetricsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[57]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MysqlHostMetricsResponse) String() string {
@@ -3151,7 +3035,7 @@ func (*MysqlHostMetricsResponse) ProtoMessage() {}
func (x *MysqlHostMetricsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[57]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3181,11 +3065,9 @@ type ReplicationStatusRequest struct {
func (x *ReplicationStatusRequest) Reset() {
*x = ReplicationStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[58]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicationStatusRequest) String() string {
@@ -3196,7 +3078,7 @@ func (*ReplicationStatusRequest) ProtoMessage() {}
func (x *ReplicationStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[58]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3221,11 +3103,9 @@ type ReplicationStatusResponse struct {
func (x *ReplicationStatusResponse) Reset() {
*x = ReplicationStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[59]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicationStatusResponse) String() string {
@@ -3236,7 +3116,7 @@ func (*ReplicationStatusResponse) ProtoMessage() {}
func (x *ReplicationStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[59]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3266,11 +3146,9 @@ type PrimaryStatusRequest struct {
func (x *PrimaryStatusRequest) Reset() {
*x = PrimaryStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[60]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrimaryStatusRequest) String() string {
@@ -3281,7 +3159,7 @@ func (*PrimaryStatusRequest) ProtoMessage() {}
func (x *PrimaryStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[60]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3306,11 +3184,9 @@ type PrimaryStatusResponse struct {
func (x *PrimaryStatusResponse) Reset() {
*x = PrimaryStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[61]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrimaryStatusResponse) String() string {
@@ -3321,7 +3197,7 @@ func (*PrimaryStatusResponse) ProtoMessage() {}
func (x *PrimaryStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[61]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3351,11 +3227,9 @@ type PrimaryPositionRequest struct {
func (x *PrimaryPositionRequest) Reset() {
*x = PrimaryPositionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[62]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrimaryPositionRequest) String() string {
@@ -3366,7 +3240,7 @@ func (*PrimaryPositionRequest) ProtoMessage() {}
func (x *PrimaryPositionRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[62]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3391,11 +3265,9 @@ type PrimaryPositionResponse struct {
func (x *PrimaryPositionResponse) Reset() {
*x = PrimaryPositionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[63]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrimaryPositionResponse) String() string {
@@ -3406,7 +3278,7 @@ func (*PrimaryPositionResponse) ProtoMessage() {}
func (x *PrimaryPositionResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[63]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3438,11 +3310,9 @@ type WaitForPositionRequest struct {
func (x *WaitForPositionRequest) Reset() {
*x = WaitForPositionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[64]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WaitForPositionRequest) String() string {
@@ -3453,7 +3323,7 @@ func (*WaitForPositionRequest) ProtoMessage() {}
func (x *WaitForPositionRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[64]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3483,11 +3353,9 @@ type WaitForPositionResponse struct {
func (x *WaitForPositionResponse) Reset() {
*x = WaitForPositionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[65]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WaitForPositionResponse) String() string {
@@ -3498,7 +3366,7 @@ func (*WaitForPositionResponse) ProtoMessage() {}
func (x *WaitForPositionResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[65]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3521,11 +3389,9 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[66]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationRequest) String() string {
@@ -3536,7 +3402,7 @@ func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[66]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3559,11 +3425,9 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[67]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[67]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationResponse) String() string {
@@ -3574,7 +3438,7 @@ func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[67]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3600,11 +3464,9 @@ type StopReplicationMinimumRequest struct {
func (x *StopReplicationMinimumRequest) Reset() {
*x = StopReplicationMinimumRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[68]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationMinimumRequest) String() string {
@@ -3615,7 +3477,7 @@ func (*StopReplicationMinimumRequest) ProtoMessage() {}
func (x *StopReplicationMinimumRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[68]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3654,11 +3516,9 @@ type StopReplicationMinimumResponse struct {
func (x *StopReplicationMinimumResponse) Reset() {
*x = StopReplicationMinimumResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[69]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[69]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationMinimumResponse) String() string {
@@ -3669,7 +3529,7 @@ func (*StopReplicationMinimumResponse) ProtoMessage() {}
func (x *StopReplicationMinimumResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[69]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3701,11 +3561,9 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[70]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[70]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationRequest) String() string {
@@ -3716,7 +3574,7 @@ func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[70]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3746,11 +3604,9 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[71]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[71]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationResponse) String() string {
@@ -3761,7 +3617,7 @@ func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[71]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3787,11 +3643,9 @@ type StartReplicationUntilAfterRequest struct {
func (x *StartReplicationUntilAfterRequest) Reset() {
*x = StartReplicationUntilAfterRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[72]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[72]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationUntilAfterRequest) String() string {
@@ -3802,7 +3656,7 @@ func (*StartReplicationUntilAfterRequest) ProtoMessage() {}
func (x *StartReplicationUntilAfterRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[72]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3839,11 +3693,9 @@ type StartReplicationUntilAfterResponse struct {
func (x *StartReplicationUntilAfterResponse) Reset() {
*x = StartReplicationUntilAfterResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[73]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[73]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationUntilAfterResponse) String() string {
@@ -3854,7 +3706,7 @@ func (*StartReplicationUntilAfterResponse) ProtoMessage() {}
func (x *StartReplicationUntilAfterResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[73]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3877,11 +3729,9 @@ type GetReplicasRequest struct {
func (x *GetReplicasRequest) Reset() {
*x = GetReplicasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[74]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[74]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetReplicasRequest) String() string {
@@ -3892,7 +3742,7 @@ func (*GetReplicasRequest) ProtoMessage() {}
func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[74]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3917,11 +3767,9 @@ type GetReplicasResponse struct {
func (x *GetReplicasResponse) Reset() {
*x = GetReplicasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[75]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[75]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetReplicasResponse) String() string {
@@ -3932,7 +3780,7 @@ func (*GetReplicasResponse) ProtoMessage() {}
func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[75]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3962,11 +3810,9 @@ type ResetReplicationRequest struct {
func (x *ResetReplicationRequest) Reset() {
*x = ResetReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[76]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[76]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetReplicationRequest) String() string {
@@ -3977,7 +3823,7 @@ func (*ResetReplicationRequest) ProtoMessage() {}
func (x *ResetReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[76]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4000,11 +3846,9 @@ type ResetReplicationResponse struct {
func (x *ResetReplicationResponse) Reset() {
*x = ResetReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[77]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[77]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetReplicationResponse) String() string {
@@ -4015,7 +3859,7 @@ func (*ResetReplicationResponse) ProtoMessage() {}
func (x *ResetReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[77]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4040,11 +3884,9 @@ type VReplicationExecRequest struct {
func (x *VReplicationExecRequest) Reset() {
*x = VReplicationExecRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[78]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[78]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VReplicationExecRequest) String() string {
@@ -4055,7 +3897,7 @@ func (*VReplicationExecRequest) ProtoMessage() {}
func (x *VReplicationExecRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[78]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4087,11 +3929,9 @@ type VReplicationExecResponse struct {
func (x *VReplicationExecResponse) Reset() {
*x = VReplicationExecResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[79]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[79]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VReplicationExecResponse) String() string {
@@ -4102,7 +3942,7 @@ func (*VReplicationExecResponse) ProtoMessage() {}
func (x *VReplicationExecResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[79]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4135,11 +3975,9 @@ type VReplicationWaitForPosRequest struct {
func (x *VReplicationWaitForPosRequest) Reset() {
*x = VReplicationWaitForPosRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[80]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[80]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VReplicationWaitForPosRequest) String() string {
@@ -4150,7 +3988,7 @@ func (*VReplicationWaitForPosRequest) ProtoMessage() {}
func (x *VReplicationWaitForPosRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[80]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4187,11 +4025,9 @@ type VReplicationWaitForPosResponse struct {
func (x *VReplicationWaitForPosResponse) Reset() {
*x = VReplicationWaitForPosResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[81]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[81]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VReplicationWaitForPosResponse) String() string {
@@ -4202,7 +4038,7 @@ func (*VReplicationWaitForPosResponse) ProtoMessage() {}
func (x *VReplicationWaitForPosResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[81]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4227,11 +4063,9 @@ type InitPrimaryRequest struct {
func (x *InitPrimaryRequest) Reset() {
*x = InitPrimaryRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[82]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[82]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitPrimaryRequest) String() string {
@@ -4242,7 +4076,7 @@ func (*InitPrimaryRequest) ProtoMessage() {}
func (x *InitPrimaryRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[82]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4274,11 +4108,9 @@ type InitPrimaryResponse struct {
func (x *InitPrimaryResponse) Reset() {
*x = InitPrimaryResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[83]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[83]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitPrimaryResponse) String() string {
@@ -4289,7 +4121,7 @@ func (*InitPrimaryResponse) ProtoMessage() {}
func (x *InitPrimaryResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[83]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4324,11 +4156,9 @@ type PopulateReparentJournalRequest struct {
func (x *PopulateReparentJournalRequest) Reset() {
*x = PopulateReparentJournalRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[84]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[84]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PopulateReparentJournalRequest) String() string {
@@ -4339,7 +4169,7 @@ func (*PopulateReparentJournalRequest) ProtoMessage() {}
func (x *PopulateReparentJournalRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[84]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4390,11 +4220,9 @@ type PopulateReparentJournalResponse struct {
func (x *PopulateReparentJournalResponse) Reset() {
*x = PopulateReparentJournalResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[85]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[85]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PopulateReparentJournalResponse) String() string {
@@ -4405,7 +4233,7 @@ func (*PopulateReparentJournalResponse) ProtoMessage() {}
func (x *PopulateReparentJournalResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[85]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4428,11 +4256,9 @@ type ReadReparentJournalInfoRequest struct {
func (x *ReadReparentJournalInfoRequest) Reset() {
*x = ReadReparentJournalInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[86]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[86]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadReparentJournalInfoRequest) String() string {
@@ -4443,7 +4269,7 @@ func (*ReadReparentJournalInfoRequest) ProtoMessage() {}
func (x *ReadReparentJournalInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[86]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4468,11 +4294,9 @@ type ReadReparentJournalInfoResponse struct {
func (x *ReadReparentJournalInfoResponse) Reset() {
*x = ReadReparentJournalInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[87]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[87]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadReparentJournalInfoResponse) String() string {
@@ -4483,7 +4307,7 @@ func (*ReadReparentJournalInfoResponse) ProtoMessage() {}
func (x *ReadReparentJournalInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[87]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4518,11 +4342,9 @@ type InitReplicaRequest struct {
func (x *InitReplicaRequest) Reset() {
*x = InitReplicaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[88]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[88]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitReplicaRequest) String() string {
@@ -4533,7 +4355,7 @@ func (*InitReplicaRequest) ProtoMessage() {}
func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[88]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4584,11 +4406,9 @@ type InitReplicaResponse struct {
func (x *InitReplicaResponse) Reset() {
*x = InitReplicaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[89]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[89]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitReplicaResponse) String() string {
@@ -4599,7 +4419,7 @@ func (*InitReplicaResponse) ProtoMessage() {}
func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[89]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4622,11 +4442,9 @@ type DemotePrimaryRequest struct {
func (x *DemotePrimaryRequest) Reset() {
*x = DemotePrimaryRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[90]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[90]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DemotePrimaryRequest) String() string {
@@ -4637,7 +4455,7 @@ func (*DemotePrimaryRequest) ProtoMessage() {}
func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[90]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4663,11 +4481,9 @@ type DemotePrimaryResponse struct {
func (x *DemotePrimaryResponse) Reset() {
*x = DemotePrimaryResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[91]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[91]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DemotePrimaryResponse) String() string {
@@ -4678,7 +4494,7 @@ func (*DemotePrimaryResponse) ProtoMessage() {}
func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[91]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4710,11 +4526,9 @@ type UndoDemotePrimaryRequest struct {
func (x *UndoDemotePrimaryRequest) Reset() {
*x = UndoDemotePrimaryRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[92]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[92]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UndoDemotePrimaryRequest) String() string {
@@ -4725,7 +4539,7 @@ func (*UndoDemotePrimaryRequest) ProtoMessage() {}
func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[92]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4755,11 +4569,9 @@ type UndoDemotePrimaryResponse struct {
func (x *UndoDemotePrimaryResponse) Reset() {
*x = UndoDemotePrimaryResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[93]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[93]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UndoDemotePrimaryResponse) String() string {
@@ -4770,7 +4582,7 @@ func (*UndoDemotePrimaryResponse) ProtoMessage() {}
func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[93]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4793,11 +4605,9 @@ type ReplicaWasPromotedRequest struct {
func (x *ReplicaWasPromotedRequest) Reset() {
*x = ReplicaWasPromotedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[94]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[94]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicaWasPromotedRequest) String() string {
@@ -4808,7 +4618,7 @@ func (*ReplicaWasPromotedRequest) ProtoMessage() {}
func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[94]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4831,11 +4641,9 @@ type ReplicaWasPromotedResponse struct {
func (x *ReplicaWasPromotedResponse) Reset() {
*x = ReplicaWasPromotedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[95]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[95]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicaWasPromotedResponse) String() string {
@@ -4846,7 +4654,7 @@ func (*ReplicaWasPromotedResponse) ProtoMessage() {}
func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[95]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4869,11 +4677,9 @@ type ResetReplicationParametersRequest struct {
func (x *ResetReplicationParametersRequest) Reset() {
*x = ResetReplicationParametersRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[96]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[96]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetReplicationParametersRequest) String() string {
@@ -4884,7 +4690,7 @@ func (*ResetReplicationParametersRequest) ProtoMessage() {}
func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[96]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4907,11 +4713,9 @@ type ResetReplicationParametersResponse struct {
func (x *ResetReplicationParametersResponse) Reset() {
*x = ResetReplicationParametersResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[97]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[97]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetReplicationParametersResponse) String() string {
@@ -4922,7 +4726,7 @@ func (*ResetReplicationParametersResponse) ProtoMessage() {}
func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[97]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4945,11 +4749,9 @@ type FullStatusRequest struct {
func (x *FullStatusRequest) Reset() {
*x = FullStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[98]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[98]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FullStatusRequest) String() string {
@@ -4960,7 +4762,7 @@ func (*FullStatusRequest) ProtoMessage() {}
func (x *FullStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[98]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4985,11 +4787,9 @@ type FullStatusResponse struct {
func (x *FullStatusResponse) Reset() {
*x = FullStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[99]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[99]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FullStatusResponse) String() string {
@@ -5000,7 +4800,7 @@ func (*FullStatusResponse) ProtoMessage() {}
func (x *FullStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[99]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5037,11 +4837,9 @@ type SetReplicationSourceRequest struct {
func (x *SetReplicationSourceRequest) Reset() {
*x = SetReplicationSourceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[100]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[100]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReplicationSourceRequest) String() string {
@@ -5052,7 +4850,7 @@ func (*SetReplicationSourceRequest) ProtoMessage() {}
func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[100]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5117,11 +4915,9 @@ type SetReplicationSourceResponse struct {
func (x *SetReplicationSourceResponse) Reset() {
*x = SetReplicationSourceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[101]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[101]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReplicationSourceResponse) String() string {
@@ -5132,7 +4928,7 @@ func (*SetReplicationSourceResponse) ProtoMessage() {}
func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[101]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5158,11 +4954,9 @@ type ReplicaWasRestartedRequest struct {
func (x *ReplicaWasRestartedRequest) Reset() {
*x = ReplicaWasRestartedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[102]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[102]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicaWasRestartedRequest) String() string {
@@ -5173,7 +4967,7 @@ func (*ReplicaWasRestartedRequest) ProtoMessage() {}
func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[102]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5203,11 +4997,9 @@ type ReplicaWasRestartedResponse struct {
func (x *ReplicaWasRestartedResponse) Reset() {
*x = ReplicaWasRestartedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[103]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[103]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReplicaWasRestartedResponse) String() string {
@@ -5218,7 +5010,7 @@ func (*ReplicaWasRestartedResponse) ProtoMessage() {}
func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[103]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5243,11 +5035,9 @@ type StopReplicationAndGetStatusRequest struct {
func (x *StopReplicationAndGetStatusRequest) Reset() {
*x = StopReplicationAndGetStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[104]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[104]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationAndGetStatusRequest) String() string {
@@ -5258,7 +5048,7 @@ func (*StopReplicationAndGetStatusRequest) ProtoMessage() {}
func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[104]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5291,11 +5081,9 @@ type StopReplicationAndGetStatusResponse struct {
func (x *StopReplicationAndGetStatusResponse) Reset() {
*x = StopReplicationAndGetStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[105]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[105]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationAndGetStatusResponse) String() string {
@@ -5306,7 +5094,7 @@ func (*StopReplicationAndGetStatusResponse) ProtoMessage() {}
func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[105]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5338,11 +5126,9 @@ type PromoteReplicaRequest struct {
func (x *PromoteReplicaRequest) Reset() {
*x = PromoteReplicaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[106]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[106]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PromoteReplicaRequest) String() string {
@@ -5353,7 +5139,7 @@ func (*PromoteReplicaRequest) ProtoMessage() {}
func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[106]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5385,11 +5171,9 @@ type PromoteReplicaResponse struct {
func (x *PromoteReplicaResponse) Reset() {
*x = PromoteReplicaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[107]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[107]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PromoteReplicaResponse) String() string {
@@ -5400,7 +5184,7 @@ func (*PromoteReplicaResponse) ProtoMessage() {}
func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[107]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5441,11 +5225,9 @@ type BackupRequest struct {
func (x *BackupRequest) Reset() {
*x = BackupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[108]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[108]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupRequest) String() string {
@@ -5456,7 +5238,7 @@ func (*BackupRequest) ProtoMessage() {}
func (x *BackupRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[108]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5516,11 +5298,9 @@ type BackupResponse struct {
func (x *BackupResponse) Reset() {
*x = BackupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[109]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[109]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupResponse) String() string {
@@ -5531,7 +5311,7 @@ func (*BackupResponse) ProtoMessage() {}
func (x *BackupResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[109]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5574,11 +5354,9 @@ type RestoreFromBackupRequest struct {
func (x *RestoreFromBackupRequest) Reset() {
*x = RestoreFromBackupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[110]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[110]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RestoreFromBackupRequest) String() string {
@@ -5589,7 +5367,7 @@ func (*RestoreFromBackupRequest) ProtoMessage() {}
func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[110]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5649,11 +5427,9 @@ type RestoreFromBackupResponse struct {
func (x *RestoreFromBackupResponse) Reset() {
*x = RestoreFromBackupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[111]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[111]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RestoreFromBackupResponse) String() string {
@@ -5664,7 +5440,7 @@ func (*RestoreFromBackupResponse) ProtoMessage() {}
func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[111]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5712,11 +5488,9 @@ type CreateVReplicationWorkflowRequest struct {
func (x *CreateVReplicationWorkflowRequest) Reset() {
*x = CreateVReplicationWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[112]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[112]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateVReplicationWorkflowRequest) String() string {
@@ -5727,7 +5501,7 @@ func (*CreateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[112]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5829,11 +5603,9 @@ type CreateVReplicationWorkflowResponse struct {
func (x *CreateVReplicationWorkflowResponse) Reset() {
*x = CreateVReplicationWorkflowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[113]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[113]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateVReplicationWorkflowResponse) String() string {
@@ -5844,7 +5616,7 @@ func (*CreateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[113]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5881,11 +5653,9 @@ type DeleteTableDataRequest struct {
func (x *DeleteTableDataRequest) Reset() {
*x = DeleteTableDataRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[114]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[114]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTableDataRequest) String() string {
@@ -5896,7 +5666,7 @@ func (*DeleteTableDataRequest) ProtoMessage() {}
func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[114]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5933,11 +5703,9 @@ type DeleteTableDataResponse struct {
func (x *DeleteTableDataResponse) Reset() {
*x = DeleteTableDataResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[115]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[115]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTableDataResponse) String() string {
@@ -5948,7 +5716,7 @@ func (*DeleteTableDataResponse) ProtoMessage() {}
func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[115]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5973,11 +5741,9 @@ type DeleteVReplicationWorkflowRequest struct {
func (x *DeleteVReplicationWorkflowRequest) Reset() {
*x = DeleteVReplicationWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[116]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[116]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteVReplicationWorkflowRequest) String() string {
@@ -5988,7 +5754,7 @@ func (*DeleteVReplicationWorkflowRequest) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[116]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6020,11 +5786,9 @@ type DeleteVReplicationWorkflowResponse struct {
func (x *DeleteVReplicationWorkflowResponse) Reset() {
*x = DeleteVReplicationWorkflowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[117]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[117]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteVReplicationWorkflowResponse) String() string {
@@ -6035,7 +5799,7 @@ func (*DeleteVReplicationWorkflowResponse) ProtoMessage() {}
func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[117]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6065,11 +5829,9 @@ type HasVReplicationWorkflowsRequest struct {
func (x *HasVReplicationWorkflowsRequest) Reset() {
*x = HasVReplicationWorkflowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[118]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[118]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HasVReplicationWorkflowsRequest) String() string {
@@ -6080,7 +5842,7 @@ func (*HasVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[118]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6105,11 +5867,9 @@ type HasVReplicationWorkflowsResponse struct {
func (x *HasVReplicationWorkflowsResponse) Reset() {
*x = HasVReplicationWorkflowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[119]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[119]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HasVReplicationWorkflowsResponse) String() string {
@@ -6120,7 +5880,7 @@ func (*HasVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[119]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6157,11 +5917,9 @@ type ReadVReplicationWorkflowsRequest struct {
func (x *ReadVReplicationWorkflowsRequest) Reset() {
*x = ReadVReplicationWorkflowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[120]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[120]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadVReplicationWorkflowsRequest) String() string {
@@ -6172,7 +5930,7 @@ func (*ReadVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[120]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6239,11 +5997,9 @@ type ReadVReplicationWorkflowsResponse struct {
func (x *ReadVReplicationWorkflowsResponse) Reset() {
*x = ReadVReplicationWorkflowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[121]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[121]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadVReplicationWorkflowsResponse) String() string {
@@ -6254,7 +6010,7 @@ func (*ReadVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[121]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6286,11 +6042,9 @@ type ReadVReplicationWorkflowRequest struct {
func (x *ReadVReplicationWorkflowRequest) Reset() {
*x = ReadVReplicationWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[122]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[122]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadVReplicationWorkflowRequest) String() string {
@@ -6301,7 +6055,7 @@ func (*ReadVReplicationWorkflowRequest) ProtoMessage() {}
func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[122]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6344,11 +6098,9 @@ type ReadVReplicationWorkflowResponse struct {
func (x *ReadVReplicationWorkflowResponse) Reset() {
*x = ReadVReplicationWorkflowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[123]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[123]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadVReplicationWorkflowResponse) String() string {
@@ -6359,7 +6111,7 @@ func (*ReadVReplicationWorkflowResponse) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[123]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6466,11 +6218,9 @@ type ValidateVReplicationPermissionsRequest struct {
func (x *ValidateVReplicationPermissionsRequest) Reset() {
*x = ValidateVReplicationPermissionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[124]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[124]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVReplicationPermissionsRequest) String() string {
@@ -6481,7 +6231,7 @@ func (*ValidateVReplicationPermissionsRequest) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[124]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6510,11 +6260,9 @@ type ValidateVReplicationPermissionsResponse struct {
func (x *ValidateVReplicationPermissionsResponse) Reset() {
*x = ValidateVReplicationPermissionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[125]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[125]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVReplicationPermissionsResponse) String() string {
@@ -6525,7 +6273,7 @@ func (*ValidateVReplicationPermissionsResponse) ProtoMessage() {}
func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[125]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6569,11 +6317,9 @@ type VDiffRequest struct {
func (x *VDiffRequest) Reset() {
*x = VDiffRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[126]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[126]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffRequest) String() string {
@@ -6584,7 +6330,7 @@ func (*VDiffRequest) ProtoMessage() {}
func (x *VDiffRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[126]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6653,11 +6399,9 @@ type VDiffResponse struct {
func (x *VDiffResponse) Reset() {
*x = VDiffResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[127]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[127]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffResponse) String() string {
@@ -6668,7 +6412,7 @@ func (*VDiffResponse) ProtoMessage() {}
func (x *VDiffResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[127]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6717,11 +6461,9 @@ type VDiffPickerOptions struct {
func (x *VDiffPickerOptions) Reset() {
*x = VDiffPickerOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[128]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[128]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffPickerOptions) String() string {
@@ -6732,7 +6474,7 @@ func (*VDiffPickerOptions) ProtoMessage() {}
func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[128]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6783,11 +6525,9 @@ type VDiffReportOptions struct {
func (x *VDiffReportOptions) Reset() {
*x = VDiffReportOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[129]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[129]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffReportOptions) String() string {
@@ -6798,7 +6538,7 @@ func (*VDiffReportOptions) ProtoMessage() {}
func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[129]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6867,11 +6607,9 @@ type VDiffCoreOptions struct {
func (x *VDiffCoreOptions) Reset() {
*x = VDiffCoreOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[130]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[130]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffCoreOptions) String() string {
@@ -6882,7 +6620,7 @@ func (*VDiffCoreOptions) ProtoMessage() {}
func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[130]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6979,11 +6717,9 @@ type VDiffOptions struct {
func (x *VDiffOptions) Reset() {
*x = VDiffOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[131]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[131]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffOptions) String() string {
@@ -6994,7 +6730,7 @@ func (*VDiffOptions) ProtoMessage() {}
func (x *VDiffOptions) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[131]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7052,11 +6788,9 @@ type UpdateVReplicationWorkflowRequest struct {
func (x *UpdateVReplicationWorkflowRequest) Reset() {
*x = UpdateVReplicationWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[132]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[132]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateVReplicationWorkflowRequest) String() string {
@@ -7067,7 +6801,7 @@ func (*UpdateVReplicationWorkflowRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[132]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7141,11 +6875,9 @@ type UpdateVReplicationWorkflowResponse struct {
func (x *UpdateVReplicationWorkflowResponse) Reset() {
*x = UpdateVReplicationWorkflowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[133]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[133]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateVReplicationWorkflowResponse) String() string {
@@ -7156,7 +6888,7 @@ func (*UpdateVReplicationWorkflowResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[133]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7199,11 +6931,9 @@ type UpdateVReplicationWorkflowsRequest struct {
func (x *UpdateVReplicationWorkflowsRequest) Reset() {
*x = UpdateVReplicationWorkflowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[134]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[134]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateVReplicationWorkflowsRequest) String() string {
@@ -7214,7 +6944,7 @@ func (*UpdateVReplicationWorkflowsRequest) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[134]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7281,11 +7011,9 @@ type UpdateVReplicationWorkflowsResponse struct {
func (x *UpdateVReplicationWorkflowsResponse) Reset() {
*x = UpdateVReplicationWorkflowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[135]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[135]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateVReplicationWorkflowsResponse) String() string {
@@ -7296,7 +7024,7 @@ func (*UpdateVReplicationWorkflowsResponse) ProtoMessage() {}
func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[135]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7328,11 +7056,9 @@ type ResetSequencesRequest struct {
func (x *ResetSequencesRequest) Reset() {
*x = ResetSequencesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[136]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[136]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetSequencesRequest) String() string {
@@ -7343,7 +7069,7 @@ func (*ResetSequencesRequest) ProtoMessage() {}
func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[136]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7373,11 +7099,9 @@ type ResetSequencesResponse struct {
func (x *ResetSequencesResponse) Reset() {
*x = ResetSequencesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[137]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[137]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetSequencesResponse) String() string {
@@ -7388,7 +7112,7 @@ func (*ResetSequencesResponse) ProtoMessage() {}
func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[137]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7421,11 +7145,9 @@ type CheckThrottlerRequest struct {
func (x *CheckThrottlerRequest) Reset() {
*x = CheckThrottlerRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[138]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[138]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CheckThrottlerRequest) String() string {
@@ -7436,7 +7158,7 @@ func (*CheckThrottlerRequest) ProtoMessage() {}
func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[138]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7517,11 +7239,9 @@ type CheckThrottlerResponse struct {
func (x *CheckThrottlerResponse) Reset() {
*x = CheckThrottlerResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[139]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[139]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CheckThrottlerResponse) String() string {
@@ -7532,7 +7252,7 @@ func (*CheckThrottlerResponse) ProtoMessage() {}
func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[139]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7625,11 +7345,9 @@ type GetThrottlerStatusRequest struct {
func (x *GetThrottlerStatusRequest) Reset() {
*x = GetThrottlerStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[140]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[140]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusRequest) String() string {
@@ -7640,7 +7358,7 @@ func (*GetThrottlerStatusRequest) ProtoMessage() {}
func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[140]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7700,11 +7418,9 @@ type GetThrottlerStatusResponse struct {
func (x *GetThrottlerStatusResponse) Reset() {
*x = GetThrottlerStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[141]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[141]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusResponse) String() string {
@@ -7715,7 +7431,7 @@ func (*GetThrottlerStatusResponse) ProtoMessage() {}
func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[141]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7867,11 +7583,9 @@ type ChangeTagsRequest struct {
func (x *ChangeTagsRequest) Reset() {
*x = ChangeTagsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[142]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[142]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTagsRequest) String() string {
@@ -7882,7 +7596,7 @@ func (*ChangeTagsRequest) ProtoMessage() {}
func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[142]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7921,11 +7635,9 @@ type ChangeTagsResponse struct {
func (x *ChangeTagsResponse) Reset() {
*x = ChangeTagsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[143]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[143]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTagsResponse) String() string {
@@ -7936,7 +7648,7 @@ func (*ChangeTagsResponse) ProtoMessage() {}
func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[143]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7981,11 +7693,9 @@ type ReadVReplicationWorkflowResponse_Stream struct {
func (x *ReadVReplicationWorkflowResponse_Stream) Reset() {
*x = ReadVReplicationWorkflowResponse_Stream{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[149]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[149]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadVReplicationWorkflowResponse_Stream) String() string {
@@ -7996,7 +7706,7 @@ func (*ReadVReplicationWorkflowResponse_Stream) ProtoMessage() {}
func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[149]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8134,11 +7844,9 @@ type CheckThrottlerResponse_Metric struct {
func (x *CheckThrottlerResponse_Metric) Reset() {
*x = CheckThrottlerResponse_Metric{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[152]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[152]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CheckThrottlerResponse_Metric) String() string {
@@ -8149,7 +7857,7 @@ func (*CheckThrottlerResponse_Metric) ProtoMessage() {}
func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[152]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8231,11 +7939,9 @@ type GetThrottlerStatusResponse_MetricResult struct {
func (x *GetThrottlerStatusResponse_MetricResult) Reset() {
*x = GetThrottlerStatusResponse_MetricResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[154]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[154]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusResponse_MetricResult) String() string {
@@ -8246,7 +7952,7 @@ func (*GetThrottlerStatusResponse_MetricResult) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[154]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8286,11 +7992,9 @@ type GetThrottlerStatusResponse_MetricHealth struct {
func (x *GetThrottlerStatusResponse_MetricHealth) Reset() {
*x = GetThrottlerStatusResponse_MetricHealth{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[157]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[157]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusResponse_MetricHealth) String() string {
@@ -8301,7 +8005,7 @@ func (*GetThrottlerStatusResponse_MetricHealth) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[157]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8343,11 +8047,9 @@ type GetThrottlerStatusResponse_RecentApp struct {
func (x *GetThrottlerStatusResponse_RecentApp) Reset() {
*x = GetThrottlerStatusResponse_RecentApp{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tabletmanagerdata_proto_msgTypes[161]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_tabletmanagerdata_proto_msgTypes[161]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusResponse_RecentApp) String() string {
@@ -8358,7 +8060,7 @@ func (*GetThrottlerStatusResponse_RecentApp) ProtoMessage() {}
func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Message {
mi := &file_tabletmanagerdata_proto_msgTypes[161]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9885,1796 +9587,6 @@ func file_tabletmanagerdata_proto_init() {
if File_tabletmanagerdata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_tabletmanagerdata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*TableDefinition); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*SchemaDefinition); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*SchemaChangeResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*UserPermission); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*DbPermission); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*Permissions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*PingRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*PingResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*SleepRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*SleepResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteHookRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteHookResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*GetPermissionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*GetPermissionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*GetGlobalStatusVarsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*GetGlobalStatusVarsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTypeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTypeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*PreflightSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*PreflightSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*ApplySchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[33].Exporter = func(v any, i int) any {
- switch v := v.(*ApplySchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[34].Exporter = func(v any, i int) any {
- switch v := v.(*LockTablesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*LockTablesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[36].Exporter = func(v any, i int) any {
- switch v := v.(*UnlockTablesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[37].Exporter = func(v any, i int) any {
- switch v := v.(*UnlockTablesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[38].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteQueryRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[39].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteQueryResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[40].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsDbaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[41].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsDbaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[42].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteMultiFetchAsDbaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[43].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteMultiFetchAsDbaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[44].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAllPrivsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[45].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAllPrivsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[46].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAppRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[47].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAppResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[48].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[49].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[50].Exporter = func(v any, i int) any {
- switch v := v.(*ReadTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[51].Exporter = func(v any, i int) any {
- switch v := v.(*ReadTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[52].Exporter = func(v any, i int) any {
- switch v := v.(*GetTransactionInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[53].Exporter = func(v any, i int) any {
- switch v := v.(*GetTransactionInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[54].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[55].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[56].Exporter = func(v any, i int) any {
- switch v := v.(*MysqlHostMetricsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[57].Exporter = func(v any, i int) any {
- switch v := v.(*MysqlHostMetricsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[58].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicationStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[59].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicationStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[60].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[61].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[62].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryPositionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[63].Exporter = func(v any, i int) any {
- switch v := v.(*PrimaryPositionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[64].Exporter = func(v any, i int) any {
- switch v := v.(*WaitForPositionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*WaitForPositionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[67].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationMinimumRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[69].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationMinimumResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[70].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[71].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[72].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationUntilAfterRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[73].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationUntilAfterResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[74].Exporter = func(v any, i int) any {
- switch v := v.(*GetReplicasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[75].Exporter = func(v any, i int) any {
- switch v := v.(*GetReplicasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[76].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[77].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[78].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationExecRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[79].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationExecResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[80].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationWaitForPosRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[81].Exporter = func(v any, i int) any {
- switch v := v.(*VReplicationWaitForPosResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[82].Exporter = func(v any, i int) any {
- switch v := v.(*InitPrimaryRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[83].Exporter = func(v any, i int) any {
- switch v := v.(*InitPrimaryResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*PopulateReparentJournalRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*PopulateReparentJournalResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*ReadReparentJournalInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*ReadReparentJournalInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*InitReplicaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*DemotePrimaryResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*UndoDemotePrimaryResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasPromotedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*ResetReplicationParametersResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*FullStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*SetReplicationSourceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*ReplicaWasRestartedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationAndGetStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*PromoteReplicaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*BackupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*BackupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*CreateVReplicationWorkflowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTableDataResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteVReplicationWorkflowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*HasVReplicationWorkflowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVReplicationPermissionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffPickerOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffReportOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCoreOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[133].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[134].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateVReplicationWorkflowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[137].Exporter = func(v any, i int) any {
- switch v := v.(*ResetSequencesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[138].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[139].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[140].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[141].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[142].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTagsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[143].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTagsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[149].Exporter = func(v any, i int) any {
- switch v := v.(*ReadVReplicationWorkflowResponse_Stream); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[152].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse_Metric); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[154].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse_MetricResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[157].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse_MetricHealth); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_tabletmanagerdata_proto_msgTypes[161].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse_RecentApp); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
file_tabletmanagerdata_proto_msgTypes[108].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[130].OneofWrappers = []any{}
file_tabletmanagerdata_proto_msgTypes[132].OneofWrappers = []any{}
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
index 3a327143ad8..9f6b0df851b 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: tabletmanagerdata.proto
package tabletmanagerdata
diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
index 2ecda04dfb0..7fc337a9da2 100644
--- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
+++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: tabletmanagerservice.proto
diff --git a/go/vt/proto/throttlerdata/throttlerdata.pb.go b/go/vt/proto/throttlerdata/throttlerdata.pb.go
index 4ce28c924c8..9a51319692f 100644
--- a/go/vt/proto/throttlerdata/throttlerdata.pb.go
+++ b/go/vt/proto/throttlerdata/throttlerdata.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: throttlerdata.proto
@@ -46,11 +46,9 @@ type MaxRatesRequest struct {
func (x *MaxRatesRequest) Reset() {
*x = MaxRatesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaxRatesRequest) String() string {
@@ -61,7 +59,7 @@ func (*MaxRatesRequest) ProtoMessage() {}
func (x *MaxRatesRequest) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -89,11 +87,9 @@ type MaxRatesResponse struct {
func (x *MaxRatesResponse) Reset() {
*x = MaxRatesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaxRatesResponse) String() string {
@@ -104,7 +100,7 @@ func (*MaxRatesResponse) ProtoMessage() {}
func (x *MaxRatesResponse) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -137,11 +133,9 @@ type SetMaxRateRequest struct {
func (x *SetMaxRateRequest) Reset() {
*x = SetMaxRateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetMaxRateRequest) String() string {
@@ -152,7 +146,7 @@ func (*SetMaxRateRequest) ProtoMessage() {}
func (x *SetMaxRateRequest) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -186,11 +180,9 @@ type SetMaxRateResponse struct {
func (x *SetMaxRateResponse) Reset() {
*x = SetMaxRateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetMaxRateResponse) String() string {
@@ -201,7 +193,7 @@ func (*SetMaxRateResponse) ProtoMessage() {}
func (x *SetMaxRateResponse) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -312,11 +304,9 @@ type Configuration struct {
func (x *Configuration) Reset() {
*x = Configuration{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Configuration) String() string {
@@ -327,7 +317,7 @@ func (*Configuration) ProtoMessage() {}
func (x *Configuration) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -453,11 +443,9 @@ type GetConfigurationRequest struct {
func (x *GetConfigurationRequest) Reset() {
*x = GetConfigurationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetConfigurationRequest) String() string {
@@ -468,7 +456,7 @@ func (*GetConfigurationRequest) ProtoMessage() {}
func (x *GetConfigurationRequest) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -503,11 +491,9 @@ type GetConfigurationResponse struct {
func (x *GetConfigurationResponse) Reset() {
*x = GetConfigurationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetConfigurationResponse) String() string {
@@ -518,7 +504,7 @@ func (*GetConfigurationResponse) ProtoMessage() {}
func (x *GetConfigurationResponse) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -558,11 +544,9 @@ type UpdateConfigurationRequest struct {
func (x *UpdateConfigurationRequest) Reset() {
*x = UpdateConfigurationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateConfigurationRequest) String() string {
@@ -573,7 +557,7 @@ func (*UpdateConfigurationRequest) ProtoMessage() {}
func (x *UpdateConfigurationRequest) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -621,11 +605,9 @@ type UpdateConfigurationResponse struct {
func (x *UpdateConfigurationResponse) Reset() {
*x = UpdateConfigurationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateConfigurationResponse) String() string {
@@ -636,7 +618,7 @@ func (*UpdateConfigurationResponse) ProtoMessage() {}
func (x *UpdateConfigurationResponse) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -671,11 +653,9 @@ type ResetConfigurationRequest struct {
func (x *ResetConfigurationRequest) Reset() {
*x = ResetConfigurationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetConfigurationRequest) String() string {
@@ -686,7 +666,7 @@ func (*ResetConfigurationRequest) ProtoMessage() {}
func (x *ResetConfigurationRequest) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -720,11 +700,9 @@ type ResetConfigurationResponse struct {
func (x *ResetConfigurationResponse) Reset() {
*x = ResetConfigurationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_throttlerdata_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_throttlerdata_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResetConfigurationResponse) String() string {
@@ -735,7 +713,7 @@ func (*ResetConfigurationResponse) ProtoMessage() {}
func (x *ResetConfigurationResponse) ProtoReflect() protoreflect.Message {
mi := &file_throttlerdata_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -920,140 +898,6 @@ func file_throttlerdata_proto_init() {
if File_throttlerdata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_throttlerdata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*MaxRatesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*MaxRatesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*SetMaxRateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*SetMaxRateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*Configuration); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*GetConfigurationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*GetConfigurationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateConfigurationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateConfigurationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*ResetConfigurationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_throttlerdata_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ResetConfigurationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go b/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go
index c7e3369b6cd..cdfb6ee66f8 100644
--- a/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go
+++ b/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: throttlerdata.proto
package throttlerdata
diff --git a/go/vt/proto/throttlerservice/throttlerservice.pb.go b/go/vt/proto/throttlerservice/throttlerservice.pb.go
index 9d41991ac0f..ffa3808cf6b 100644
--- a/go/vt/proto/throttlerservice/throttlerservice.pb.go
+++ b/go/vt/proto/throttlerservice/throttlerservice.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: throttlerservice.proto
diff --git a/go/vt/proto/topodata/topodata.pb.go b/go/vt/proto/topodata/topodata.pb.go
index 31fbcd5cfb4..fb0d8ec0ab8 100644
--- a/go/vt/proto/topodata/topodata.pb.go
+++ b/go/vt/proto/topodata/topodata.pb.go
@@ -20,7 +20,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: topodata.proto
@@ -254,11 +254,9 @@ type KeyRange struct {
func (x *KeyRange) Reset() {
*x = KeyRange{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KeyRange) String() string {
@@ -269,7 +267,7 @@ func (*KeyRange) ProtoMessage() {}
func (x *KeyRange) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -313,11 +311,9 @@ type TabletAlias struct {
func (x *TabletAlias) Reset() {
*x = TabletAlias{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletAlias) String() string {
@@ -328,7 +324,7 @@ func (*TabletAlias) ProtoMessage() {}
func (x *TabletAlias) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -409,11 +405,9 @@ type Tablet struct {
func (x *Tablet) Reset() {
*x = Tablet{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Tablet) String() string {
@@ -424,7 +418,7 @@ func (*Tablet) ProtoMessage() {}
func (x *Tablet) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -578,11 +572,9 @@ type Shard struct {
func (x *Shard) Reset() {
*x = Shard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard) String() string {
@@ -593,7 +585,7 @@ func (*Shard) ProtoMessage() {}
func (x *Shard) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -683,11 +675,9 @@ type Keyspace struct {
func (x *Keyspace) Reset() {
*x = Keyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Keyspace) String() string {
@@ -698,7 +688,7 @@ func (*Keyspace) ProtoMessage() {}
func (x *Keyspace) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -769,11 +759,9 @@ type ShardReplication struct {
func (x *ShardReplication) Reset() {
*x = ShardReplication{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplication) String() string {
@@ -784,7 +772,7 @@ func (*ShardReplication) ProtoMessage() {}
func (x *ShardReplication) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -821,11 +809,9 @@ type ShardReplicationError struct {
func (x *ShardReplicationError) Reset() {
*x = ShardReplicationError{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationError) String() string {
@@ -836,7 +822,7 @@ func (*ShardReplicationError) ProtoMessage() {}
func (x *ShardReplicationError) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -878,11 +864,9 @@ type ShardReference struct {
func (x *ShardReference) Reset() {
*x = ShardReference{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReference) String() string {
@@ -893,7 +877,7 @@ func (*ShardReference) ProtoMessage() {}
func (x *ShardReference) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -937,11 +921,9 @@ type ShardTabletControl struct {
func (x *ShardTabletControl) Reset() {
*x = ShardTabletControl{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardTabletControl) String() string {
@@ -952,7 +934,7 @@ func (*ShardTabletControl) ProtoMessage() {}
func (x *ShardTabletControl) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1007,11 +989,9 @@ type ThrottledAppRule struct {
func (x *ThrottledAppRule) Reset() {
*x = ThrottledAppRule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ThrottledAppRule) String() string {
@@ -1022,7 +1002,7 @@ func (*ThrottledAppRule) ProtoMessage() {}
func (x *ThrottledAppRule) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1093,11 +1073,9 @@ type ThrottlerConfig struct {
func (x *ThrottlerConfig) Reset() {
*x = ThrottlerConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ThrottlerConfig) String() string {
@@ -1108,7 +1086,7 @@ func (*ThrottlerConfig) ProtoMessage() {}
func (x *ThrottlerConfig) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1189,11 +1167,9 @@ type SrvKeyspace struct {
func (x *SrvKeyspace) Reset() {
*x = SrvKeyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SrvKeyspace) String() string {
@@ -1204,7 +1180,7 @@ func (*SrvKeyspace) ProtoMessage() {}
func (x *SrvKeyspace) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1253,11 +1229,9 @@ type CellInfo struct {
func (x *CellInfo) Reset() {
*x = CellInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CellInfo) String() string {
@@ -1268,7 +1242,7 @@ func (*CellInfo) ProtoMessage() {}
func (x *CellInfo) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1309,11 +1283,9 @@ type CellsAlias struct {
func (x *CellsAlias) Reset() {
*x = CellsAlias{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CellsAlias) String() string {
@@ -1324,7 +1296,7 @@ func (*CellsAlias) ProtoMessage() {}
func (x *CellsAlias) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1358,11 +1330,9 @@ type TopoConfig struct {
func (x *TopoConfig) Reset() {
*x = TopoConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TopoConfig) String() string {
@@ -1373,7 +1343,7 @@ func (*TopoConfig) ProtoMessage() {}
func (x *TopoConfig) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1419,11 +1389,9 @@ type ExternalVitessCluster struct {
func (x *ExternalVitessCluster) Reset() {
*x = ExternalVitessCluster{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExternalVitessCluster) String() string {
@@ -1434,7 +1402,7 @@ func (*ExternalVitessCluster) ProtoMessage() {}
func (x *ExternalVitessCluster) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1467,11 +1435,9 @@ type ExternalClusters struct {
func (x *ExternalClusters) Reset() {
*x = ExternalClusters{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExternalClusters) String() string {
@@ -1482,7 +1448,7 @@ func (*ExternalClusters) ProtoMessage() {}
func (x *ExternalClusters) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1526,11 +1492,9 @@ type Shard_SourceShard struct {
func (x *Shard_SourceShard) Reset() {
*x = Shard_SourceShard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard_SourceShard) String() string {
@@ -1541,7 +1505,7 @@ func (*Shard_SourceShard) ProtoMessage() {}
func (x *Shard_SourceShard) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1608,11 +1572,9 @@ type Shard_TabletControl struct {
func (x *Shard_TabletControl) Reset() {
*x = Shard_TabletControl{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard_TabletControl) String() string {
@@ -1623,7 +1585,7 @@ func (*Shard_TabletControl) ProtoMessage() {}
func (x *Shard_TabletControl) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1677,11 +1639,9 @@ type ShardReplication_Node struct {
func (x *ShardReplication_Node) Reset() {
*x = ShardReplication_Node{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplication_Node) String() string {
@@ -1692,7 +1652,7 @@ func (*ShardReplication_Node) ProtoMessage() {}
func (x *ShardReplication_Node) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1724,11 +1684,9 @@ type ThrottlerConfig_MetricNames struct {
func (x *ThrottlerConfig_MetricNames) Reset() {
*x = ThrottlerConfig_MetricNames{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ThrottlerConfig_MetricNames) String() string {
@@ -1739,7 +1697,7 @@ func (*ThrottlerConfig_MetricNames) ProtoMessage() {}
func (x *ThrottlerConfig_MetricNames) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1776,11 +1734,9 @@ type SrvKeyspace_KeyspacePartition struct {
func (x *SrvKeyspace_KeyspacePartition) Reset() {
*x = SrvKeyspace_KeyspacePartition{}
- if protoimpl.UnsafeEnabled {
- mi := &file_topodata_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_topodata_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SrvKeyspace_KeyspacePartition) String() string {
@@ -1791,7 +1747,7 @@ func (*SrvKeyspace_KeyspacePartition) ProtoMessage() {}
func (x *SrvKeyspace_KeyspacePartition) ProtoReflect() protoreflect.Message {
mi := &file_topodata_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2202,272 +2158,6 @@ func file_topodata_proto_init() {
if File_topodata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_topodata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*KeyRange); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*TabletAlias); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*Tablet); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*Shard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*Keyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplication); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationError); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReference); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*ShardTabletControl); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*ThrottledAppRule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ThrottlerConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*SrvKeyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*CellInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*CellsAlias); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*TopoConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*ExternalVitessCluster); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*ExternalClusters); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*Shard_SourceShard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*Shard_TabletControl); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplication_Node); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*ThrottlerConfig_MetricNames); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_topodata_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*SrvKeyspace_KeyspacePartition); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/topodata/topodata_vtproto.pb.go b/go/vt/proto/topodata/topodata_vtproto.pb.go
index 9defb49a6be..564a55ea82b 100644
--- a/go/vt/proto/topodata/topodata_vtproto.pb.go
+++ b/go/vt/proto/topodata/topodata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: topodata.proto
package topodata
diff --git a/go/vt/proto/vschema/vschema.pb.go b/go/vt/proto/vschema/vschema.pb.go
index 131622aaf5b..c4348cae92d 100644
--- a/go/vt/proto/vschema/vschema.pb.go
+++ b/go/vt/proto/vschema/vschema.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vschema.proto
@@ -104,11 +104,9 @@ type RoutingRules struct {
func (x *RoutingRules) Reset() {
*x = RoutingRules{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RoutingRules) String() string {
@@ -119,7 +117,7 @@ func (*RoutingRules) ProtoMessage() {}
func (x *RoutingRules) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -153,11 +151,9 @@ type RoutingRule struct {
func (x *RoutingRule) Reset() {
*x = RoutingRule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RoutingRule) String() string {
@@ -168,7 +164,7 @@ func (*RoutingRule) ProtoMessage() {}
func (x *RoutingRule) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -217,11 +213,9 @@ type Keyspace struct {
func (x *Keyspace) Reset() {
*x = Keyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Keyspace) String() string {
@@ -232,7 +226,7 @@ func (*Keyspace) ProtoMessage() {}
func (x *Keyspace) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -302,11 +296,9 @@ type MultiTenantSpec struct {
func (x *MultiTenantSpec) Reset() {
*x = MultiTenantSpec{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MultiTenantSpec) String() string {
@@ -317,7 +309,7 @@ func (*MultiTenantSpec) ProtoMessage() {}
func (x *MultiTenantSpec) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -369,11 +361,9 @@ type Vindex struct {
func (x *Vindex) Reset() {
*x = Vindex{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Vindex) String() string {
@@ -384,7 +374,7 @@ func (*Vindex) ProtoMessage() {}
func (x *Vindex) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -457,11 +447,9 @@ type Table struct {
func (x *Table) Reset() {
*x = Table{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Table) String() string {
@@ -472,7 +460,7 @@ func (*Table) ProtoMessage() {}
func (x *Table) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -552,11 +540,9 @@ type ColumnVindex struct {
func (x *ColumnVindex) Reset() {
*x = ColumnVindex{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ColumnVindex) String() string {
@@ -567,7 +553,7 @@ func (*ColumnVindex) ProtoMessage() {}
func (x *ColumnVindex) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -616,11 +602,9 @@ type AutoIncrement struct {
func (x *AutoIncrement) Reset() {
*x = AutoIncrement{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AutoIncrement) String() string {
@@ -631,7 +615,7 @@ func (*AutoIncrement) ProtoMessage() {}
func (x *AutoIncrement) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -680,11 +664,9 @@ type Column struct {
func (x *Column) Reset() {
*x = Column{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Column) String() string {
@@ -695,7 +677,7 @@ func (*Column) ProtoMessage() {}
func (x *Column) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -789,11 +771,9 @@ type SrvVSchema struct {
func (x *SrvVSchema) Reset() {
*x = SrvVSchema{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SrvVSchema) String() string {
@@ -804,7 +784,7 @@ func (*SrvVSchema) ProtoMessage() {}
func (x *SrvVSchema) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -865,11 +845,9 @@ type ShardRoutingRules struct {
func (x *ShardRoutingRules) Reset() {
*x = ShardRoutingRules{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardRoutingRules) String() string {
@@ -880,7 +858,7 @@ func (*ShardRoutingRules) ProtoMessage() {}
func (x *ShardRoutingRules) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -915,11 +893,9 @@ type ShardRoutingRule struct {
func (x *ShardRoutingRule) Reset() {
*x = ShardRoutingRule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardRoutingRule) String() string {
@@ -930,7 +906,7 @@ func (*ShardRoutingRule) ProtoMessage() {}
func (x *ShardRoutingRule) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -976,11 +952,9 @@ type KeyspaceRoutingRules struct {
func (x *KeyspaceRoutingRules) Reset() {
*x = KeyspaceRoutingRules{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KeyspaceRoutingRules) String() string {
@@ -991,7 +965,7 @@ func (*KeyspaceRoutingRules) ProtoMessage() {}
func (x *KeyspaceRoutingRules) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1024,11 +998,9 @@ type KeyspaceRoutingRule struct {
func (x *KeyspaceRoutingRule) Reset() {
*x = KeyspaceRoutingRule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KeyspaceRoutingRule) String() string {
@@ -1039,7 +1011,7 @@ func (*KeyspaceRoutingRule) ProtoMessage() {}
func (x *KeyspaceRoutingRule) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1082,11 +1054,9 @@ type MirrorRules struct {
func (x *MirrorRules) Reset() {
*x = MirrorRules{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MirrorRules) String() string {
@@ -1097,7 +1067,7 @@ func (*MirrorRules) ProtoMessage() {}
func (x *MirrorRules) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1132,11 +1102,9 @@ type MirrorRule struct {
func (x *MirrorRule) Reset() {
*x = MirrorRule{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vschema_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vschema_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MirrorRule) String() string {
@@ -1147,7 +1115,7 @@ func (*MirrorRule) ProtoMessage() {}
func (x *MirrorRule) ProtoReflect() protoreflect.Message {
mi := &file_vschema_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1436,200 +1404,6 @@ func file_vschema_proto_init() {
if File_vschema_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vschema_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*RoutingRules); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*RoutingRule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*Keyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*MultiTenantSpec); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*Vindex); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*Table); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ColumnVindex); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*AutoIncrement); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*Column); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*SrvVSchema); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ShardRoutingRules); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ShardRoutingRule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*KeyspaceRoutingRules); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*KeyspaceRoutingRule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*MirrorRules); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vschema_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*MirrorRule); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
file_vschema_proto_msgTypes[8].OneofWrappers = []any{}
type x struct{}
out := protoimpl.TypeBuilder{
diff --git a/go/vt/proto/vschema/vschema_vtproto.pb.go b/go/vt/proto/vschema/vschema_vtproto.pb.go
index 54347631260..a970ccf49c6 100644
--- a/go/vt/proto/vschema/vschema_vtproto.pb.go
+++ b/go/vt/proto/vschema/vschema_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vschema.proto
package vschema
diff --git a/go/vt/proto/vtadmin/vtadmin.pb.go b/go/vt/proto/vtadmin/vtadmin.pb.go
index 8cdb420002d..e85385ec409 100644
--- a/go/vt/proto/vtadmin/vtadmin.pb.go
+++ b/go/vt/proto/vtadmin/vtadmin.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtadmin.proto
@@ -104,11 +104,9 @@ type Cluster struct {
func (x *Cluster) Reset() {
*x = Cluster{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Cluster) String() string {
@@ -119,7 +117,7 @@ func (*Cluster) ProtoMessage() {}
func (x *Cluster) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -159,11 +157,9 @@ type ClusterBackup struct {
func (x *ClusterBackup) Reset() {
*x = ClusterBackup{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClusterBackup) String() string {
@@ -174,7 +170,7 @@ func (*ClusterBackup) ProtoMessage() {}
func (x *ClusterBackup) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -214,11 +210,9 @@ type ClusterCellsAliases struct {
func (x *ClusterCellsAliases) Reset() {
*x = ClusterCellsAliases{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClusterCellsAliases) String() string {
@@ -229,7 +223,7 @@ func (*ClusterCellsAliases) ProtoMessage() {}
func (x *ClusterCellsAliases) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -273,11 +267,9 @@ type ClusterCellInfo struct {
func (x *ClusterCellInfo) Reset() {
*x = ClusterCellInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClusterCellInfo) String() string {
@@ -288,7 +280,7 @@ func (*ClusterCellInfo) ProtoMessage() {}
func (x *ClusterCellInfo) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -337,11 +329,9 @@ type ClusterShardReplicationPosition struct {
func (x *ClusterShardReplicationPosition) Reset() {
*x = ClusterShardReplicationPosition{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClusterShardReplicationPosition) String() string {
@@ -352,7 +342,7 @@ func (*ClusterShardReplicationPosition) ProtoMessage() {}
func (x *ClusterShardReplicationPosition) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -408,11 +398,9 @@ type ClusterWorkflows struct {
func (x *ClusterWorkflows) Reset() {
*x = ClusterWorkflows{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClusterWorkflows) String() string {
@@ -423,7 +411,7 @@ func (*ClusterWorkflows) ProtoMessage() {}
func (x *ClusterWorkflows) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -466,11 +454,9 @@ type Keyspace struct {
func (x *Keyspace) Reset() {
*x = Keyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Keyspace) String() string {
@@ -481,7 +467,7 @@ func (*Keyspace) ProtoMessage() {}
func (x *Keyspace) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -531,11 +517,9 @@ type Schema struct {
func (x *Schema) Reset() {
*x = Schema{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Schema) String() string {
@@ -546,7 +530,7 @@ func (*Schema) ProtoMessage() {}
func (x *Schema) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -600,11 +584,9 @@ type SchemaMigration struct {
func (x *SchemaMigration) Reset() {
*x = SchemaMigration{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SchemaMigration) String() string {
@@ -615,7 +597,7 @@ func (*SchemaMigration) ProtoMessage() {}
func (x *SchemaMigration) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -657,11 +639,9 @@ type Shard struct {
func (x *Shard) Reset() {
*x = Shard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard) String() string {
@@ -672,7 +652,7 @@ func (*Shard) ProtoMessage() {}
func (x *Shard) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -713,11 +693,9 @@ type SrvVSchema struct {
func (x *SrvVSchema) Reset() {
*x = SrvVSchema{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SrvVSchema) String() string {
@@ -728,7 +706,7 @@ func (*SrvVSchema) ProtoMessage() {}
func (x *SrvVSchema) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -779,11 +757,9 @@ type Tablet struct {
func (x *Tablet) Reset() {
*x = Tablet{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Tablet) String() string {
@@ -794,7 +770,7 @@ func (*Tablet) ProtoMessage() {}
func (x *Tablet) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -851,11 +827,9 @@ type VSchema struct {
func (x *VSchema) Reset() {
*x = VSchema{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VSchema) String() string {
@@ -866,7 +840,7 @@ func (*VSchema) ProtoMessage() {}
func (x *VSchema) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -915,11 +889,9 @@ type Vtctld struct {
func (x *Vtctld) Reset() {
*x = Vtctld{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Vtctld) String() string {
@@ -930,7 +902,7 @@ func (*Vtctld) ProtoMessage() {}
func (x *Vtctld) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -989,11 +961,9 @@ type VTGate struct {
func (x *VTGate) Reset() {
*x = VTGate{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VTGate) String() string {
@@ -1004,7 +974,7 @@ func (*VTGate) ProtoMessage() {}
func (x *VTGate) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1073,11 +1043,9 @@ type Workflow struct {
func (x *Workflow) Reset() {
*x = Workflow{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow) String() string {
@@ -1088,7 +1056,7 @@ func (*Workflow) ProtoMessage() {}
func (x *Workflow) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1135,11 +1103,9 @@ type WorkflowDeleteRequest struct {
func (x *WorkflowDeleteRequest) Reset() {
*x = WorkflowDeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowDeleteRequest) String() string {
@@ -1150,7 +1116,7 @@ func (*WorkflowDeleteRequest) ProtoMessage() {}
func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1190,11 +1156,9 @@ type WorkflowSwitchTrafficRequest struct {
func (x *WorkflowSwitchTrafficRequest) Reset() {
*x = WorkflowSwitchTrafficRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowSwitchTrafficRequest) String() string {
@@ -1205,7 +1169,7 @@ func (*WorkflowSwitchTrafficRequest) ProtoMessage() {}
func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1245,11 +1209,9 @@ type ApplySchemaRequest struct {
func (x *ApplySchemaRequest) Reset() {
*x = ApplySchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplySchemaRequest) String() string {
@@ -1260,7 +1222,7 @@ func (*ApplySchemaRequest) ProtoMessage() {}
func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1300,11 +1262,9 @@ type CancelSchemaMigrationRequest struct {
func (x *CancelSchemaMigrationRequest) Reset() {
*x = CancelSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CancelSchemaMigrationRequest) String() string {
@@ -1315,7 +1275,7 @@ func (*CancelSchemaMigrationRequest) ProtoMessage() {}
func (x *CancelSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1355,11 +1315,9 @@ type CleanupSchemaMigrationRequest struct {
func (x *CleanupSchemaMigrationRequest) Reset() {
*x = CleanupSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CleanupSchemaMigrationRequest) String() string {
@@ -1370,7 +1328,7 @@ func (*CleanupSchemaMigrationRequest) ProtoMessage() {}
func (x *CleanupSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1410,11 +1368,9 @@ type CompleteSchemaMigrationRequest struct {
func (x *CompleteSchemaMigrationRequest) Reset() {
*x = CompleteSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CompleteSchemaMigrationRequest) String() string {
@@ -1425,7 +1381,7 @@ func (*CompleteSchemaMigrationRequest) ProtoMessage() {}
func (x *CompleteSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1465,11 +1421,9 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionRequest) String() string {
@@ -1480,7 +1434,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1520,11 +1474,9 @@ type CreateKeyspaceRequest struct {
func (x *CreateKeyspaceRequest) Reset() {
*x = CreateKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateKeyspaceRequest) String() string {
@@ -1535,7 +1487,7 @@ func (*CreateKeyspaceRequest) ProtoMessage() {}
func (x *CreateKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1574,11 +1526,9 @@ type CreateKeyspaceResponse struct {
func (x *CreateKeyspaceResponse) Reset() {
*x = CreateKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateKeyspaceResponse) String() string {
@@ -1589,7 +1539,7 @@ func (*CreateKeyspaceResponse) ProtoMessage() {}
func (x *CreateKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1622,11 +1572,9 @@ type CreateShardRequest struct {
func (x *CreateShardRequest) Reset() {
*x = CreateShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateShardRequest) String() string {
@@ -1637,7 +1585,7 @@ func (*CreateShardRequest) ProtoMessage() {}
func (x *CreateShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1677,11 +1625,9 @@ type DeleteKeyspaceRequest struct {
func (x *DeleteKeyspaceRequest) Reset() {
*x = DeleteKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteKeyspaceRequest) String() string {
@@ -1692,7 +1638,7 @@ func (*DeleteKeyspaceRequest) ProtoMessage() {}
func (x *DeleteKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1732,11 +1678,9 @@ type DeleteShardsRequest struct {
func (x *DeleteShardsRequest) Reset() {
*x = DeleteShardsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteShardsRequest) String() string {
@@ -1747,7 +1691,7 @@ func (*DeleteShardsRequest) ProtoMessage() {}
func (x *DeleteShardsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[27]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1788,11 +1732,9 @@ type DeleteTabletRequest struct {
func (x *DeleteTabletRequest) Reset() {
*x = DeleteTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTabletRequest) String() string {
@@ -1803,7 +1745,7 @@ func (*DeleteTabletRequest) ProtoMessage() {}
func (x *DeleteTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[28]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1850,11 +1792,9 @@ type DeleteTabletResponse struct {
func (x *DeleteTabletResponse) Reset() {
*x = DeleteTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTabletResponse) String() string {
@@ -1865,7 +1805,7 @@ func (*DeleteTabletResponse) ProtoMessage() {}
func (x *DeleteTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[29]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1905,11 +1845,9 @@ type EmergencyFailoverShardRequest struct {
func (x *EmergencyFailoverShardRequest) Reset() {
*x = EmergencyFailoverShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EmergencyFailoverShardRequest) String() string {
@@ -1920,7 +1858,7 @@ func (*EmergencyFailoverShardRequest) ProtoMessage() {}
func (x *EmergencyFailoverShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[30]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1967,11 +1905,9 @@ type EmergencyFailoverShardResponse struct {
func (x *EmergencyFailoverShardResponse) Reset() {
*x = EmergencyFailoverShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EmergencyFailoverShardResponse) String() string {
@@ -1982,7 +1918,7 @@ func (*EmergencyFailoverShardResponse) ProtoMessage() {}
func (x *EmergencyFailoverShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[31]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2044,11 +1980,9 @@ type FindSchemaRequest struct {
func (x *FindSchemaRequest) Reset() {
*x = FindSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[32]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FindSchemaRequest) String() string {
@@ -2059,7 +1993,7 @@ func (*FindSchemaRequest) ProtoMessage() {}
func (x *FindSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[32]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2119,11 +2053,9 @@ type GetBackupsRequest struct {
func (x *GetBackupsRequest) Reset() {
*x = GetBackupsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[33]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetBackupsRequest) String() string {
@@ -2134,7 +2066,7 @@ func (*GetBackupsRequest) ProtoMessage() {}
func (x *GetBackupsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[33]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2187,11 +2119,9 @@ type GetBackupsResponse struct {
func (x *GetBackupsResponse) Reset() {
*x = GetBackupsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[34]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetBackupsResponse) String() string {
@@ -2202,7 +2132,7 @@ func (*GetBackupsResponse) ProtoMessage() {}
func (x *GetBackupsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[34]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2244,11 +2174,9 @@ type GetCellInfosRequest struct {
func (x *GetCellInfosRequest) Reset() {
*x = GetCellInfosRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfosRequest) String() string {
@@ -2259,7 +2187,7 @@ func (*GetCellInfosRequest) ProtoMessage() {}
func (x *GetCellInfosRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[35]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2305,11 +2233,9 @@ type GetCellInfosResponse struct {
func (x *GetCellInfosResponse) Reset() {
*x = GetCellInfosResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[36]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfosResponse) String() string {
@@ -2320,7 +2246,7 @@ func (*GetCellInfosResponse) ProtoMessage() {}
func (x *GetCellInfosResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[36]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2352,11 +2278,9 @@ type GetCellsAliasesRequest struct {
func (x *GetCellsAliasesRequest) Reset() {
*x = GetCellsAliasesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[37]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellsAliasesRequest) String() string {
@@ -2367,7 +2291,7 @@ func (*GetCellsAliasesRequest) ProtoMessage() {}
func (x *GetCellsAliasesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[37]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2399,11 +2323,9 @@ type GetCellsAliasesResponse struct {
func (x *GetCellsAliasesResponse) Reset() {
*x = GetCellsAliasesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[38]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellsAliasesResponse) String() string {
@@ -2414,7 +2336,7 @@ func (*GetCellsAliasesResponse) ProtoMessage() {}
func (x *GetCellsAliasesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[38]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2444,11 +2366,9 @@ type GetClustersRequest struct {
func (x *GetClustersRequest) Reset() {
*x = GetClustersRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[39]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetClustersRequest) String() string {
@@ -2459,7 +2379,7 @@ func (*GetClustersRequest) ProtoMessage() {}
func (x *GetClustersRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[39]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2484,11 +2404,9 @@ type GetClustersResponse struct {
func (x *GetClustersResponse) Reset() {
*x = GetClustersResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[40]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetClustersResponse) String() string {
@@ -2499,7 +2417,7 @@ func (*GetClustersResponse) ProtoMessage() {}
func (x *GetClustersResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[40]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2532,11 +2450,9 @@ type GetFullStatusRequest struct {
func (x *GetFullStatusRequest) Reset() {
*x = GetFullStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[41]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetFullStatusRequest) String() string {
@@ -2547,7 +2463,7 @@ func (*GetFullStatusRequest) ProtoMessage() {}
func (x *GetFullStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[41]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2586,11 +2502,9 @@ type GetGatesRequest struct {
func (x *GetGatesRequest) Reset() {
*x = GetGatesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[42]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetGatesRequest) String() string {
@@ -2601,7 +2515,7 @@ func (*GetGatesRequest) ProtoMessage() {}
func (x *GetGatesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[42]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2633,11 +2547,9 @@ type GetGatesResponse struct {
func (x *GetGatesResponse) Reset() {
*x = GetGatesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[43]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetGatesResponse) String() string {
@@ -2648,7 +2560,7 @@ func (*GetGatesResponse) ProtoMessage() {}
func (x *GetGatesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[43]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2681,11 +2593,9 @@ type GetKeyspaceRequest struct {
func (x *GetKeyspaceRequest) Reset() {
*x = GetKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[44]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspaceRequest) String() string {
@@ -2696,7 +2606,7 @@ func (*GetKeyspaceRequest) ProtoMessage() {}
func (x *GetKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[44]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2735,11 +2645,9 @@ type GetKeyspacesRequest struct {
func (x *GetKeyspacesRequest) Reset() {
*x = GetKeyspacesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[45]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspacesRequest) String() string {
@@ -2750,7 +2658,7 @@ func (*GetKeyspacesRequest) ProtoMessage() {}
func (x *GetKeyspacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[45]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2782,11 +2690,9 @@ type GetKeyspacesResponse struct {
func (x *GetKeyspacesResponse) Reset() {
*x = GetKeyspacesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[46]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspacesResponse) String() string {
@@ -2797,7 +2703,7 @@ func (*GetKeyspacesResponse) ProtoMessage() {}
func (x *GetKeyspacesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[46]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2832,11 +2738,9 @@ type GetSchemaRequest struct {
func (x *GetSchemaRequest) Reset() {
*x = GetSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[47]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaRequest) String() string {
@@ -2847,7 +2751,7 @@ func (*GetSchemaRequest) ProtoMessage() {}
func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[47]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2901,11 +2805,9 @@ type GetSchemasRequest struct {
func (x *GetSchemasRequest) Reset() {
*x = GetSchemasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[48]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemasRequest) String() string {
@@ -2916,7 +2818,7 @@ func (*GetSchemasRequest) ProtoMessage() {}
func (x *GetSchemasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[48]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2955,11 +2857,9 @@ type GetSchemasResponse struct {
func (x *GetSchemasResponse) Reset() {
*x = GetSchemasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[49]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemasResponse) String() string {
@@ -2970,7 +2870,7 @@ func (*GetSchemasResponse) ProtoMessage() {}
func (x *GetSchemasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[49]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3002,11 +2902,9 @@ type GetSchemaMigrationsRequest struct {
func (x *GetSchemaMigrationsRequest) Reset() {
*x = GetSchemaMigrationsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[50]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaMigrationsRequest) String() string {
@@ -3017,7 +2915,7 @@ func (*GetSchemaMigrationsRequest) ProtoMessage() {}
func (x *GetSchemaMigrationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[50]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3049,11 +2947,9 @@ type GetSchemaMigrationsResponse struct {
func (x *GetSchemaMigrationsResponse) Reset() {
*x = GetSchemaMigrationsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[51]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaMigrationsResponse) String() string {
@@ -3064,7 +2960,7 @@ func (*GetSchemaMigrationsResponse) ProtoMessage() {}
func (x *GetSchemaMigrationsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[51]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3105,11 +3001,9 @@ type GetShardReplicationPositionsRequest struct {
func (x *GetShardReplicationPositionsRequest) Reset() {
*x = GetShardReplicationPositionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[52]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardReplicationPositionsRequest) String() string {
@@ -3120,7 +3014,7 @@ func (*GetShardReplicationPositionsRequest) ProtoMessage() {}
func (x *GetShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[52]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3166,11 +3060,9 @@ type GetShardReplicationPositionsResponse struct {
func (x *GetShardReplicationPositionsResponse) Reset() {
*x = GetShardReplicationPositionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[53]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardReplicationPositionsResponse) String() string {
@@ -3181,7 +3073,7 @@ func (*GetShardReplicationPositionsResponse) ProtoMessage() {}
func (x *GetShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[53]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3217,11 +3109,9 @@ type GetSrvKeyspaceRequest struct {
func (x *GetSrvKeyspaceRequest) Reset() {
*x = GetSrvKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[54]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspaceRequest) String() string {
@@ -3232,7 +3122,7 @@ func (*GetSrvKeyspaceRequest) ProtoMessage() {}
func (x *GetSrvKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[54]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3282,11 +3172,9 @@ type GetSrvKeyspacesRequest struct {
func (x *GetSrvKeyspacesRequest) Reset() {
*x = GetSrvKeyspacesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[55]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspacesRequest) String() string {
@@ -3297,7 +3185,7 @@ func (*GetSrvKeyspacesRequest) ProtoMessage() {}
func (x *GetSrvKeyspacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[55]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3337,11 +3225,9 @@ type GetSrvKeyspacesResponse struct {
func (x *GetSrvKeyspacesResponse) Reset() {
*x = GetSrvKeyspacesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[56]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspacesResponse) String() string {
@@ -3352,7 +3238,7 @@ func (*GetSrvKeyspacesResponse) ProtoMessage() {}
func (x *GetSrvKeyspacesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[56]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3385,11 +3271,9 @@ type GetSrvVSchemaRequest struct {
func (x *GetSrvVSchemaRequest) Reset() {
*x = GetSrvVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[57]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemaRequest) String() string {
@@ -3400,7 +3284,7 @@ func (*GetSrvVSchemaRequest) ProtoMessage() {}
func (x *GetSrvVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[57]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3440,11 +3324,9 @@ type GetSrvVSchemasRequest struct {
func (x *GetSrvVSchemasRequest) Reset() {
*x = GetSrvVSchemasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[58]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemasRequest) String() string {
@@ -3455,7 +3337,7 @@ func (*GetSrvVSchemasRequest) ProtoMessage() {}
func (x *GetSrvVSchemasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[58]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3494,11 +3376,9 @@ type GetSrvVSchemasResponse struct {
func (x *GetSrvVSchemasResponse) Reset() {
*x = GetSrvVSchemasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[59]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemasResponse) String() string {
@@ -3509,7 +3389,7 @@ func (*GetSrvVSchemasResponse) ProtoMessage() {}
func (x *GetSrvVSchemasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[59]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3542,11 +3422,9 @@ type GetSchemaTableSizeOptions struct {
func (x *GetSchemaTableSizeOptions) Reset() {
*x = GetSchemaTableSizeOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[60]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaTableSizeOptions) String() string {
@@ -3557,7 +3435,7 @@ func (*GetSchemaTableSizeOptions) ProtoMessage() {}
func (x *GetSchemaTableSizeOptions) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[60]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3601,11 +3479,9 @@ type GetTabletRequest struct {
func (x *GetTabletRequest) Reset() {
*x = GetTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[61]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletRequest) String() string {
@@ -3616,7 +3492,7 @@ func (*GetTabletRequest) ProtoMessage() {}
func (x *GetTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[61]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3655,11 +3531,9 @@ type GetTabletsRequest struct {
func (x *GetTabletsRequest) Reset() {
*x = GetTabletsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[62]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletsRequest) String() string {
@@ -3670,7 +3544,7 @@ func (*GetTabletsRequest) ProtoMessage() {}
func (x *GetTabletsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[62]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3702,11 +3576,9 @@ type GetTabletsResponse struct {
func (x *GetTabletsResponse) Reset() {
*x = GetTabletsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[63]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletsResponse) String() string {
@@ -3717,7 +3589,7 @@ func (*GetTabletsResponse) ProtoMessage() {}
func (x *GetTabletsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[63]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3750,11 +3622,9 @@ type GetTopologyPathRequest struct {
func (x *GetTopologyPathRequest) Reset() {
*x = GetTopologyPathRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[64]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTopologyPathRequest) String() string {
@@ -3765,7 +3635,7 @@ func (*GetTopologyPathRequest) ProtoMessage() {}
func (x *GetTopologyPathRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[64]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3805,11 +3675,9 @@ type GetTransactionInfoRequest struct {
func (x *GetTransactionInfoRequest) Reset() {
*x = GetTransactionInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[65]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTransactionInfoRequest) String() string {
@@ -3820,7 +3688,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {}
func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[65]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3861,11 +3729,9 @@ type GetUnresolvedTransactionsRequest struct {
func (x *GetUnresolvedTransactionsRequest) Reset() {
*x = GetUnresolvedTransactionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[66]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetUnresolvedTransactionsRequest) String() string {
@@ -3876,7 +3742,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {}
func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[66]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3923,11 +3789,9 @@ type GetVSchemaRequest struct {
func (x *GetVSchemaRequest) Reset() {
*x = GetVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[67]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[67]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVSchemaRequest) String() string {
@@ -3938,7 +3802,7 @@ func (*GetVSchemaRequest) ProtoMessage() {}
func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[67]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3977,11 +3841,9 @@ type GetVSchemasRequest struct {
func (x *GetVSchemasRequest) Reset() {
*x = GetVSchemasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[68]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVSchemasRequest) String() string {
@@ -3992,7 +3854,7 @@ func (*GetVSchemasRequest) ProtoMessage() {}
func (x *GetVSchemasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[68]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4024,11 +3886,9 @@ type GetVSchemasResponse struct {
func (x *GetVSchemasResponse) Reset() {
*x = GetVSchemasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[69]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[69]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVSchemasResponse) String() string {
@@ -4039,7 +3899,7 @@ func (*GetVSchemasResponse) ProtoMessage() {}
func (x *GetVSchemasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[69]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4071,11 +3931,9 @@ type GetVtctldsRequest struct {
func (x *GetVtctldsRequest) Reset() {
*x = GetVtctldsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[70]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[70]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVtctldsRequest) String() string {
@@ -4086,7 +3944,7 @@ func (*GetVtctldsRequest) ProtoMessage() {}
func (x *GetVtctldsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[70]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4118,11 +3976,9 @@ type GetVtctldsResponse struct {
func (x *GetVtctldsResponse) Reset() {
*x = GetVtctldsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[71]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[71]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVtctldsResponse) String() string {
@@ -4133,7 +3989,7 @@ func (*GetVtctldsResponse) ProtoMessage() {}
func (x *GetVtctldsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[71]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4168,11 +4024,9 @@ type GetWorkflowRequest struct {
func (x *GetWorkflowRequest) Reset() {
*x = GetWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[72]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[72]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowRequest) String() string {
@@ -4183,7 +4037,7 @@ func (*GetWorkflowRequest) ProtoMessage() {}
func (x *GetWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[72]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4238,11 +4092,9 @@ type GetWorkflowStatusRequest struct {
func (x *GetWorkflowStatusRequest) Reset() {
*x = GetWorkflowStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[73]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[73]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowStatusRequest) String() string {
@@ -4253,7 +4105,7 @@ func (*GetWorkflowStatusRequest) ProtoMessage() {}
func (x *GetWorkflowStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[73]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4301,11 +4153,9 @@ type StartWorkflowRequest struct {
func (x *StartWorkflowRequest) Reset() {
*x = StartWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[74]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[74]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartWorkflowRequest) String() string {
@@ -4316,7 +4166,7 @@ func (*StartWorkflowRequest) ProtoMessage() {}
func (x *StartWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[74]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4364,11 +4214,9 @@ type StopWorkflowRequest struct {
func (x *StopWorkflowRequest) Reset() {
*x = StopWorkflowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[75]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[75]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopWorkflowRequest) String() string {
@@ -4379,7 +4227,7 @@ func (*StopWorkflowRequest) ProtoMessage() {}
func (x *StopWorkflowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[75]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4443,11 +4291,9 @@ type GetWorkflowsRequest struct {
func (x *GetWorkflowsRequest) Reset() {
*x = GetWorkflowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[76]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[76]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowsRequest) String() string {
@@ -4458,7 +4304,7 @@ func (*GetWorkflowsRequest) ProtoMessage() {}
func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[76]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4511,11 +4357,9 @@ type GetWorkflowsResponse struct {
func (x *GetWorkflowsResponse) Reset() {
*x = GetWorkflowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[77]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[77]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowsResponse) String() string {
@@ -4526,7 +4370,7 @@ func (*GetWorkflowsResponse) ProtoMessage() {}
func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[77]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4559,11 +4403,9 @@ type LaunchSchemaMigrationRequest struct {
func (x *LaunchSchemaMigrationRequest) Reset() {
*x = LaunchSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[78]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[78]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LaunchSchemaMigrationRequest) String() string {
@@ -4574,7 +4416,7 @@ func (*LaunchSchemaMigrationRequest) ProtoMessage() {}
func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[78]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4617,11 +4459,9 @@ type MaterializeCreateRequest struct {
func (x *MaterializeCreateRequest) Reset() {
*x = MaterializeCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[79]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[79]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaterializeCreateRequest) String() string {
@@ -4632,7 +4472,7 @@ func (*MaterializeCreateRequest) ProtoMessage() {}
func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[79]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4679,11 +4519,9 @@ type MoveTablesCompleteRequest struct {
func (x *MoveTablesCompleteRequest) Reset() {
*x = MoveTablesCompleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[80]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[80]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCompleteRequest) String() string {
@@ -4694,7 +4532,7 @@ func (*MoveTablesCompleteRequest) ProtoMessage() {}
func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[80]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4734,11 +4572,9 @@ type MoveTablesCreateRequest struct {
func (x *MoveTablesCreateRequest) Reset() {
*x = MoveTablesCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[81]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[81]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCreateRequest) String() string {
@@ -4749,7 +4585,7 @@ func (*MoveTablesCreateRequest) ProtoMessage() {}
func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[81]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4793,11 +4629,9 @@ type PingTabletRequest struct {
func (x *PingTabletRequest) Reset() {
*x = PingTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[82]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[82]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingTabletRequest) String() string {
@@ -4808,7 +4642,7 @@ func (*PingTabletRequest) ProtoMessage() {}
func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[82]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4848,11 +4682,9 @@ type PingTabletResponse struct {
func (x *PingTabletResponse) Reset() {
*x = PingTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[83]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[83]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingTabletResponse) String() string {
@@ -4863,7 +4695,7 @@ func (*PingTabletResponse) ProtoMessage() {}
func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[83]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4903,11 +4735,9 @@ type PlannedFailoverShardRequest struct {
func (x *PlannedFailoverShardRequest) Reset() {
*x = PlannedFailoverShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[84]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[84]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PlannedFailoverShardRequest) String() string {
@@ -4918,7 +4748,7 @@ func (*PlannedFailoverShardRequest) ProtoMessage() {}
func (x *PlannedFailoverShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[84]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4965,11 +4795,9 @@ type PlannedFailoverShardResponse struct {
func (x *PlannedFailoverShardResponse) Reset() {
*x = PlannedFailoverShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[85]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[85]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PlannedFailoverShardResponse) String() string {
@@ -4980,7 +4808,7 @@ func (*PlannedFailoverShardResponse) ProtoMessage() {}
func (x *PlannedFailoverShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[85]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5043,11 +4871,9 @@ type RebuildKeyspaceGraphRequest struct {
func (x *RebuildKeyspaceGraphRequest) Reset() {
*x = RebuildKeyspaceGraphRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[86]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[86]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildKeyspaceGraphRequest) String() string {
@@ -5058,7 +4884,7 @@ func (*RebuildKeyspaceGraphRequest) ProtoMessage() {}
func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[86]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5111,11 +4937,9 @@ type RebuildKeyspaceGraphResponse struct {
func (x *RebuildKeyspaceGraphResponse) Reset() {
*x = RebuildKeyspaceGraphResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[87]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[87]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildKeyspaceGraphResponse) String() string {
@@ -5126,7 +4950,7 @@ func (*RebuildKeyspaceGraphResponse) ProtoMessage() {}
func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[87]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5159,11 +4983,9 @@ type RefreshStateRequest struct {
func (x *RefreshStateRequest) Reset() {
*x = RefreshStateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[88]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[88]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateRequest) String() string {
@@ -5174,7 +4996,7 @@ func (*RefreshStateRequest) ProtoMessage() {}
func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[88]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5214,11 +5036,9 @@ type RefreshStateResponse struct {
func (x *RefreshStateResponse) Reset() {
*x = RefreshStateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[89]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[89]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateResponse) String() string {
@@ -5229,7 +5049,7 @@ func (*RefreshStateResponse) ProtoMessage() {}
func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[89]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5309,11 +5129,9 @@ type ReloadSchemasRequest struct {
func (x *ReloadSchemasRequest) Reset() {
*x = ReloadSchemasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[90]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[90]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemasRequest) String() string {
@@ -5324,7 +5142,7 @@ func (*ReloadSchemasRequest) ProtoMessage() {}
func (x *ReloadSchemasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[90]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5409,11 +5227,9 @@ type ReloadSchemasResponse struct {
func (x *ReloadSchemasResponse) Reset() {
*x = ReloadSchemasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[91]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[91]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemasResponse) String() string {
@@ -5424,7 +5240,7 @@ func (*ReloadSchemasResponse) ProtoMessage() {}
func (x *ReloadSchemasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[91]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5475,11 +5291,9 @@ type ReloadSchemaShardRequest struct {
func (x *ReloadSchemaShardRequest) Reset() {
*x = ReloadSchemaShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[92]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[92]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaShardRequest) String() string {
@@ -5490,7 +5304,7 @@ func (*ReloadSchemaShardRequest) ProtoMessage() {}
func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[92]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5557,11 +5371,9 @@ type ReloadSchemaShardResponse struct {
func (x *ReloadSchemaShardResponse) Reset() {
*x = ReloadSchemaShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[93]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[93]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaShardResponse) String() string {
@@ -5572,7 +5384,7 @@ func (*ReloadSchemaShardResponse) ProtoMessage() {}
func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[93]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5605,11 +5417,9 @@ type RefreshTabletReplicationSourceRequest struct {
func (x *RefreshTabletReplicationSourceRequest) Reset() {
*x = RefreshTabletReplicationSourceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[94]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[94]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshTabletReplicationSourceRequest) String() string {
@@ -5620,7 +5430,7 @@ func (*RefreshTabletReplicationSourceRequest) ProtoMessage() {}
func (x *RefreshTabletReplicationSourceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[94]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5662,11 +5472,9 @@ type RefreshTabletReplicationSourceResponse struct {
func (x *RefreshTabletReplicationSourceResponse) Reset() {
*x = RefreshTabletReplicationSourceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[95]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[95]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshTabletReplicationSourceResponse) String() string {
@@ -5677,7 +5485,7 @@ func (*RefreshTabletReplicationSourceResponse) ProtoMessage() {}
func (x *RefreshTabletReplicationSourceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[95]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5734,11 +5542,9 @@ type RemoveKeyspaceCellRequest struct {
func (x *RemoveKeyspaceCellRequest) Reset() {
*x = RemoveKeyspaceCellRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[96]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[96]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveKeyspaceCellRequest) String() string {
@@ -5749,7 +5555,7 @@ func (*RemoveKeyspaceCellRequest) ProtoMessage() {}
func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[96]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5809,11 +5615,9 @@ type RemoveKeyspaceCellResponse struct {
func (x *RemoveKeyspaceCellResponse) Reset() {
*x = RemoveKeyspaceCellResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[97]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[97]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveKeyspaceCellResponse) String() string {
@@ -5824,7 +5628,7 @@ func (*RemoveKeyspaceCellResponse) ProtoMessage() {}
func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[97]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5857,11 +5661,9 @@ type RetrySchemaMigrationRequest struct {
func (x *RetrySchemaMigrationRequest) Reset() {
*x = RetrySchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[98]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[98]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RetrySchemaMigrationRequest) String() string {
@@ -5872,7 +5674,7 @@ func (*RetrySchemaMigrationRequest) ProtoMessage() {}
func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[98]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5912,11 +5714,9 @@ type RunHealthCheckRequest struct {
func (x *RunHealthCheckRequest) Reset() {
*x = RunHealthCheckRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[99]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[99]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckRequest) String() string {
@@ -5927,7 +5727,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {}
func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[99]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5967,11 +5767,9 @@ type RunHealthCheckResponse struct {
func (x *RunHealthCheckResponse) Reset() {
*x = RunHealthCheckResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[100]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[100]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckResponse) String() string {
@@ -5982,7 +5780,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {}
func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[100]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6022,11 +5820,9 @@ type ReshardCreateRequest struct {
func (x *ReshardCreateRequest) Reset() {
*x = ReshardCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[101]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[101]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReshardCreateRequest) String() string {
@@ -6037,7 +5833,7 @@ func (*ReshardCreateRequest) ProtoMessage() {}
func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[101]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6077,11 +5873,9 @@ type SetReadOnlyRequest struct {
func (x *SetReadOnlyRequest) Reset() {
*x = SetReadOnlyRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[102]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[102]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadOnlyRequest) String() string {
@@ -6092,7 +5886,7 @@ func (*SetReadOnlyRequest) ProtoMessage() {}
func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[102]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6129,11 +5923,9 @@ type SetReadOnlyResponse struct {
func (x *SetReadOnlyResponse) Reset() {
*x = SetReadOnlyResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[103]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[103]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadOnlyResponse) String() string {
@@ -6144,7 +5936,7 @@ func (*SetReadOnlyResponse) ProtoMessage() {}
func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[103]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6170,11 +5962,9 @@ type SetReadWriteRequest struct {
func (x *SetReadWriteRequest) Reset() {
*x = SetReadWriteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[104]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[104]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadWriteRequest) String() string {
@@ -6185,7 +5975,7 @@ func (*SetReadWriteRequest) ProtoMessage() {}
func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[104]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6222,11 +6012,9 @@ type SetReadWriteResponse struct {
func (x *SetReadWriteResponse) Reset() {
*x = SetReadWriteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[105]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[105]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetReadWriteResponse) String() string {
@@ -6237,7 +6025,7 @@ func (*SetReadWriteResponse) ProtoMessage() {}
func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[105]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6263,11 +6051,9 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[106]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[106]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationRequest) String() string {
@@ -6278,7 +6064,7 @@ func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[106]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6318,11 +6104,9 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[107]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[107]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationResponse) String() string {
@@ -6333,7 +6117,7 @@ func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[107]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6373,11 +6157,9 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[108]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[108]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationRequest) String() string {
@@ -6388,7 +6170,7 @@ func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[108]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6428,11 +6210,9 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[109]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[109]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationResponse) String() string {
@@ -6443,7 +6223,7 @@ func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[109]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6485,11 +6265,9 @@ type TabletExternallyPromotedRequest struct {
func (x *TabletExternallyPromotedRequest) Reset() {
*x = TabletExternallyPromotedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[110]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[110]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletExternallyPromotedRequest) String() string {
@@ -6500,7 +6278,7 @@ func (*TabletExternallyPromotedRequest) ProtoMessage() {}
func (x *TabletExternallyPromotedRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[110]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6543,11 +6321,9 @@ type TabletExternallyPromotedResponse struct {
func (x *TabletExternallyPromotedResponse) Reset() {
*x = TabletExternallyPromotedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[111]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[111]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletExternallyPromotedResponse) String() string {
@@ -6558,7 +6334,7 @@ func (*TabletExternallyPromotedResponse) ProtoMessage() {}
func (x *TabletExternallyPromotedResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[111]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6619,11 +6395,9 @@ type TabletExternallyReparentedRequest struct {
func (x *TabletExternallyReparentedRequest) Reset() {
*x = TabletExternallyReparentedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[112]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[112]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletExternallyReparentedRequest) String() string {
@@ -6634,7 +6408,7 @@ func (*TabletExternallyReparentedRequest) ProtoMessage() {}
func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[112]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6674,11 +6448,9 @@ type ValidateRequest struct {
func (x *ValidateRequest) Reset() {
*x = ValidateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[113]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[113]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateRequest) String() string {
@@ -6689,7 +6461,7 @@ func (*ValidateRequest) ProtoMessage() {}
func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[113]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6730,11 +6502,9 @@ type ValidateKeyspaceRequest struct {
func (x *ValidateKeyspaceRequest) Reset() {
*x = ValidateKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[114]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[114]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateKeyspaceRequest) String() string {
@@ -6745,7 +6515,7 @@ func (*ValidateKeyspaceRequest) ProtoMessage() {}
func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[114]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6792,11 +6562,9 @@ type ValidateSchemaKeyspaceRequest struct {
func (x *ValidateSchemaKeyspaceRequest) Reset() {
*x = ValidateSchemaKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[115]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[115]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateSchemaKeyspaceRequest) String() string {
@@ -6807,7 +6575,7 @@ func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[115]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6849,11 +6617,9 @@ type ValidateShardRequest struct {
func (x *ValidateShardRequest) Reset() {
*x = ValidateShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[116]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[116]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateShardRequest) String() string {
@@ -6864,7 +6630,7 @@ func (*ValidateShardRequest) ProtoMessage() {}
func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[116]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6918,11 +6684,9 @@ type ValidateVersionKeyspaceRequest struct {
func (x *ValidateVersionKeyspaceRequest) Reset() {
*x = ValidateVersionKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[117]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[117]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionKeyspaceRequest) String() string {
@@ -6933,7 +6697,7 @@ func (*ValidateVersionKeyspaceRequest) ProtoMessage() {}
func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[117]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6974,11 +6738,9 @@ type ValidateVersionShardRequest struct {
func (x *ValidateVersionShardRequest) Reset() {
*x = ValidateVersionShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[118]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[118]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionShardRequest) String() string {
@@ -6989,7 +6751,7 @@ func (*ValidateVersionShardRequest) ProtoMessage() {}
func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[118]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7036,11 +6798,9 @@ type VDiffCreateRequest struct {
func (x *VDiffCreateRequest) Reset() {
*x = VDiffCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[119]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[119]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffCreateRequest) String() string {
@@ -7051,7 +6811,7 @@ func (*VDiffCreateRequest) ProtoMessage() {}
func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[119]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7091,11 +6851,9 @@ type VDiffShowRequest struct {
func (x *VDiffShowRequest) Reset() {
*x = VDiffShowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[120]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[120]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffShowRequest) String() string {
@@ -7106,7 +6864,7 @@ func (*VDiffShowRequest) ProtoMessage() {}
func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[120]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7146,11 +6904,9 @@ type VDiffProgress struct {
func (x *VDiffProgress) Reset() {
*x = VDiffProgress{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[121]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[121]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffProgress) String() string {
@@ -7161,7 +6917,7 @@ func (*VDiffProgress) ProtoMessage() {}
func (x *VDiffProgress) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[121]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7205,11 +6961,9 @@ type VDiffShardReport struct {
func (x *VDiffShardReport) Reset() {
*x = VDiffShardReport{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[122]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[122]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffShardReport) String() string {
@@ -7220,7 +6974,7 @@ func (*VDiffShardReport) ProtoMessage() {}
func (x *VDiffShardReport) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[122]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7287,11 +7041,9 @@ type VDiffShowResponse struct {
func (x *VDiffShowResponse) Reset() {
*x = VDiffShowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[123]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[123]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffShowResponse) String() string {
@@ -7302,7 +7054,7 @@ func (*VDiffShowResponse) ProtoMessage() {}
func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[123]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7336,11 +7088,9 @@ type VTExplainRequest struct {
func (x *VTExplainRequest) Reset() {
*x = VTExplainRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[124]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[124]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VTExplainRequest) String() string {
@@ -7351,7 +7101,7 @@ func (*VTExplainRequest) ProtoMessage() {}
func (x *VTExplainRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[124]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7397,11 +7147,9 @@ type VTExplainResponse struct {
func (x *VTExplainResponse) Reset() {
*x = VTExplainResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[125]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[125]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VTExplainResponse) String() string {
@@ -7412,7 +7160,7 @@ func (*VTExplainResponse) ProtoMessage() {}
func (x *VTExplainResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[125]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7445,11 +7193,9 @@ type Schema_ShardTableSize struct {
func (x *Schema_ShardTableSize) Reset() {
*x = Schema_ShardTableSize{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[129]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[129]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Schema_ShardTableSize) String() string {
@@ -7460,7 +7206,7 @@ func (*Schema_ShardTableSize) ProtoMessage() {}
func (x *Schema_ShardTableSize) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[129]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7503,11 +7249,9 @@ type Schema_TableSize struct {
func (x *Schema_TableSize) Reset() {
*x = Schema_TableSize{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[130]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[130]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Schema_TableSize) String() string {
@@ -7518,7 +7262,7 @@ func (*Schema_TableSize) ProtoMessage() {}
func (x *Schema_TableSize) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[130]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7565,11 +7309,9 @@ type GetSchemaMigrationsRequest_ClusterRequest struct {
func (x *GetSchemaMigrationsRequest_ClusterRequest) Reset() {
*x = GetSchemaMigrationsRequest_ClusterRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[132]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[132]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaMigrationsRequest_ClusterRequest) String() string {
@@ -7580,7 +7322,7 @@ func (*GetSchemaMigrationsRequest_ClusterRequest) ProtoMessage() {}
func (x *GetSchemaMigrationsRequest_ClusterRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[132]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7626,11 +7368,9 @@ type ReloadSchemasResponse_KeyspaceResult struct {
func (x *ReloadSchemasResponse_KeyspaceResult) Reset() {
*x = ReloadSchemasResponse_KeyspaceResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[135]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[135]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemasResponse_KeyspaceResult) String() string {
@@ -7641,7 +7381,7 @@ func (*ReloadSchemasResponse_KeyspaceResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_KeyspaceResult) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[135]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7687,11 +7427,9 @@ type ReloadSchemasResponse_ShardResult struct {
func (x *ReloadSchemasResponse_ShardResult) Reset() {
*x = ReloadSchemasResponse_ShardResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[136]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[136]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemasResponse_ShardResult) String() string {
@@ -7702,7 +7440,7 @@ func (*ReloadSchemasResponse_ShardResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_ShardResult) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[136]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7749,11 +7487,9 @@ type ReloadSchemasResponse_TabletResult struct {
func (x *ReloadSchemasResponse_TabletResult) Reset() {
*x = ReloadSchemasResponse_TabletResult{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtadmin_proto_msgTypes[137]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtadmin_proto_msgTypes[137]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemasResponse_TabletResult) String() string {
@@ -7764,7 +7500,7 @@ func (*ReloadSchemasResponse_TabletResult) ProtoMessage() {}
func (x *ReloadSchemasResponse_TabletResult) ProtoReflect() protoreflect.Message {
mi := &file_vtadmin_proto_msgTypes[137]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9691,1592 +9427,6 @@ func file_vtadmin_proto_init() {
if File_vtadmin_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vtadmin_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Cluster); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*ClusterBackup); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*ClusterCellsAliases); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*ClusterCellInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*ClusterShardReplicationPosition); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*ClusterWorkflows); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*Keyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*Schema); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*SchemaMigration); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*Shard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*SrvVSchema); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*Tablet); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*VSchema); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*Vtctld); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*VTGate); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowDeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowSwitchTrafficRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*ApplySchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*CancelSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*CleanupSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*CompleteSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*CreateKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*CreateKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*CreateShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteShardsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*EmergencyFailoverShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*EmergencyFailoverShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*FindSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[33].Exporter = func(v any, i int) any {
- switch v := v.(*GetBackupsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[34].Exporter = func(v any, i int) any {
- switch v := v.(*GetBackupsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfosRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[36].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfosResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[37].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellsAliasesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[38].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellsAliasesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[39].Exporter = func(v any, i int) any {
- switch v := v.(*GetClustersRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[40].Exporter = func(v any, i int) any {
- switch v := v.(*GetClustersResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[41].Exporter = func(v any, i int) any {
- switch v := v.(*GetFullStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[42].Exporter = func(v any, i int) any {
- switch v := v.(*GetGatesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[43].Exporter = func(v any, i int) any {
- switch v := v.(*GetGatesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[44].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[45].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspacesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[46].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspacesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[47].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[48].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[49].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[50].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaMigrationsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[51].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaMigrationsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[52].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardReplicationPositionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[53].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardReplicationPositionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[54].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[55].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspacesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[56].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspacesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[57].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[58].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[59].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[60].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaTableSizeOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[61].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[62].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[63].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[64].Exporter = func(v any, i int) any {
- switch v := v.(*GetTopologyPathRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*GetTransactionInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[67].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[69].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[70].Exporter = func(v any, i int) any {
- switch v := v.(*GetVtctldsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[71].Exporter = func(v any, i int) any {
- switch v := v.(*GetVtctldsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[72].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[73].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[74].Exporter = func(v any, i int) any {
- switch v := v.(*StartWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[75].Exporter = func(v any, i int) any {
- switch v := v.(*StopWorkflowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[76].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[77].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[78].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[79].Exporter = func(v any, i int) any {
- switch v := v.(*MaterializeCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[80].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCompleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[81].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[82].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[83].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedFailoverShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedFailoverShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshTabletReplicationSourceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshTabletReplicationSourceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*RetrySchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*ReshardCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadOnlyResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*SetReadWriteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyPromotedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyPromotedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyReparentedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateSchemaKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffProgress); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShardReport); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*VTExplainRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*VTExplainResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*Schema_ShardTableSize); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*Schema_TableSize); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaMigrationsRequest_ClusterRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasResponse_KeyspaceResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasResponse_ShardResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtadmin_proto_msgTypes[137].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemasResponse_TabletResult); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
index 06bc371c4f8..bc0746b7b8a 100644
--- a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
+++ b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vtadmin.proto
package vtadmin
diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go
index 5d4ab9dbe66..f675a190faa 100644
--- a/go/vt/proto/vtctldata/vtctldata.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtctldata.proto
@@ -342,11 +342,9 @@ type ExecuteVtctlCommandRequest struct {
func (x *ExecuteVtctlCommandRequest) Reset() {
*x = ExecuteVtctlCommandRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteVtctlCommandRequest) String() string {
@@ -357,7 +355,7 @@ func (*ExecuteVtctlCommandRequest) ProtoMessage() {}
func (x *ExecuteVtctlCommandRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -397,11 +395,9 @@ type ExecuteVtctlCommandResponse struct {
func (x *ExecuteVtctlCommandResponse) Reset() {
*x = ExecuteVtctlCommandResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteVtctlCommandResponse) String() string {
@@ -412,7 +408,7 @@ func (*ExecuteVtctlCommandResponse) ProtoMessage() {}
func (x *ExecuteVtctlCommandResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -451,11 +447,9 @@ type TableMaterializeSettings struct {
func (x *TableMaterializeSettings) Reset() {
*x = TableMaterializeSettings{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TableMaterializeSettings) String() string {
@@ -466,7 +460,7 @@ func (*TableMaterializeSettings) ProtoMessage() {}
func (x *TableMaterializeSettings) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -542,11 +536,9 @@ type MaterializeSettings struct {
func (x *MaterializeSettings) Reset() {
*x = MaterializeSettings{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaterializeSettings) String() string {
@@ -557,7 +549,7 @@ func (*MaterializeSettings) ProtoMessage() {}
func (x *MaterializeSettings) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -709,11 +701,9 @@ type Keyspace struct {
func (x *Keyspace) Reset() {
*x = Keyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Keyspace) String() string {
@@ -724,7 +714,7 @@ func (*Keyspace) ProtoMessage() {}
func (x *Keyspace) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -817,11 +807,9 @@ type SchemaMigration struct {
func (x *SchemaMigration) Reset() {
*x = SchemaMigration{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SchemaMigration) String() string {
@@ -832,7 +820,7 @@ func (*SchemaMigration) ProtoMessage() {}
func (x *SchemaMigration) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1237,11 +1225,9 @@ type Shard struct {
func (x *Shard) Reset() {
*x = Shard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard) String() string {
@@ -1252,7 +1238,7 @@ func (*Shard) ProtoMessage() {}
func (x *Shard) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1309,11 +1295,9 @@ type WorkflowOptions struct {
func (x *WorkflowOptions) Reset() {
*x = WorkflowOptions{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowOptions) String() string {
@@ -1324,7 +1308,7 @@ func (*WorkflowOptions) ProtoMessage() {}
func (x *WorkflowOptions) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1402,11 +1386,9 @@ type Workflow struct {
func (x *Workflow) Reset() {
*x = Workflow{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow) String() string {
@@ -1417,7 +1399,7 @@ func (*Workflow) ProtoMessage() {}
func (x *Workflow) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1513,11 +1495,9 @@ type AddCellInfoRequest struct {
func (x *AddCellInfoRequest) Reset() {
*x = AddCellInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AddCellInfoRequest) String() string {
@@ -1528,7 +1508,7 @@ func (*AddCellInfoRequest) ProtoMessage() {}
func (x *AddCellInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1565,11 +1545,9 @@ type AddCellInfoResponse struct {
func (x *AddCellInfoResponse) Reset() {
*x = AddCellInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AddCellInfoResponse) String() string {
@@ -1580,7 +1558,7 @@ func (*AddCellInfoResponse) ProtoMessage() {}
func (x *AddCellInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1606,11 +1584,9 @@ type AddCellsAliasRequest struct {
func (x *AddCellsAliasRequest) Reset() {
*x = AddCellsAliasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AddCellsAliasRequest) String() string {
@@ -1621,7 +1597,7 @@ func (*AddCellsAliasRequest) ProtoMessage() {}
func (x *AddCellsAliasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1658,11 +1634,9 @@ type AddCellsAliasResponse struct {
func (x *AddCellsAliasResponse) Reset() {
*x = AddCellsAliasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AddCellsAliasResponse) String() string {
@@ -1673,7 +1647,7 @@ func (*AddCellsAliasResponse) ProtoMessage() {}
func (x *AddCellsAliasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1706,11 +1680,9 @@ type ApplyKeyspaceRoutingRulesRequest struct {
func (x *ApplyKeyspaceRoutingRulesRequest) Reset() {
*x = ApplyKeyspaceRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyKeyspaceRoutingRulesRequest) String() string {
@@ -1721,7 +1693,7 @@ func (*ApplyKeyspaceRoutingRulesRequest) ProtoMessage() {}
func (x *ApplyKeyspaceRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1768,11 +1740,9 @@ type ApplyKeyspaceRoutingRulesResponse struct {
func (x *ApplyKeyspaceRoutingRulesResponse) Reset() {
*x = ApplyKeyspaceRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyKeyspaceRoutingRulesResponse) String() string {
@@ -1783,7 +1753,7 @@ func (*ApplyKeyspaceRoutingRulesResponse) ProtoMessage() {}
func (x *ApplyKeyspaceRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1823,11 +1793,9 @@ type ApplyRoutingRulesRequest struct {
func (x *ApplyRoutingRulesRequest) Reset() {
*x = ApplyRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyRoutingRulesRequest) String() string {
@@ -1838,7 +1806,7 @@ func (*ApplyRoutingRulesRequest) ProtoMessage() {}
func (x *ApplyRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1882,11 +1850,9 @@ type ApplyRoutingRulesResponse struct {
func (x *ApplyRoutingRulesResponse) Reset() {
*x = ApplyRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyRoutingRulesResponse) String() string {
@@ -1897,7 +1863,7 @@ func (*ApplyRoutingRulesResponse) ProtoMessage() {}
func (x *ApplyRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1930,11 +1896,9 @@ type ApplyShardRoutingRulesRequest struct {
func (x *ApplyShardRoutingRulesRequest) Reset() {
*x = ApplyShardRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyShardRoutingRulesRequest) String() string {
@@ -1945,7 +1909,7 @@ func (*ApplyShardRoutingRulesRequest) ProtoMessage() {}
func (x *ApplyShardRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1989,11 +1953,9 @@ type ApplyShardRoutingRulesResponse struct {
func (x *ApplyShardRoutingRulesResponse) Reset() {
*x = ApplyShardRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyShardRoutingRulesResponse) String() string {
@@ -2004,7 +1966,7 @@ func (*ApplyShardRoutingRulesResponse) ProtoMessage() {}
func (x *ApplyShardRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2047,11 +2009,9 @@ type ApplySchemaRequest struct {
func (x *ApplySchemaRequest) Reset() {
*x = ApplySchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplySchemaRequest) String() string {
@@ -2062,7 +2022,7 @@ func (*ApplySchemaRequest) ProtoMessage() {}
func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2144,11 +2104,9 @@ type ApplySchemaResponse struct {
func (x *ApplySchemaResponse) Reset() {
*x = ApplySchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplySchemaResponse) String() string {
@@ -2159,7 +2117,7 @@ func (*ApplySchemaResponse) ProtoMessage() {}
func (x *ApplySchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2205,11 +2163,9 @@ type ApplyVSchemaRequest struct {
func (x *ApplyVSchemaRequest) Reset() {
*x = ApplyVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyVSchemaRequest) String() string {
@@ -2220,7 +2176,7 @@ func (*ApplyVSchemaRequest) ProtoMessage() {}
func (x *ApplyVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2303,11 +2259,9 @@ type ApplyVSchemaResponse struct {
func (x *ApplyVSchemaResponse) Reset() {
*x = ApplyVSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyVSchemaResponse) String() string {
@@ -2318,7 +2272,7 @@ func (*ApplyVSchemaResponse) ProtoMessage() {}
func (x *ApplyVSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2373,11 +2327,9 @@ type BackupRequest struct {
func (x *BackupRequest) Reset() {
*x = BackupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupRequest) String() string {
@@ -2388,7 +2340,7 @@ func (*BackupRequest) ProtoMessage() {}
func (x *BackupRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2459,11 +2411,9 @@ type BackupResponse struct {
func (x *BackupResponse) Reset() {
*x = BackupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupResponse) String() string {
@@ -2474,7 +2424,7 @@ func (*BackupResponse) ProtoMessage() {}
func (x *BackupResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2540,11 +2490,9 @@ type BackupShardRequest struct {
func (x *BackupShardRequest) Reset() {
*x = BackupShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *BackupShardRequest) String() string {
@@ -2555,7 +2503,7 @@ func (*BackupShardRequest) ProtoMessage() {}
func (x *BackupShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2623,11 +2571,9 @@ type CancelSchemaMigrationRequest struct {
func (x *CancelSchemaMigrationRequest) Reset() {
*x = CancelSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CancelSchemaMigrationRequest) String() string {
@@ -2638,7 +2584,7 @@ func (*CancelSchemaMigrationRequest) ProtoMessage() {}
func (x *CancelSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2677,11 +2623,9 @@ type CancelSchemaMigrationResponse struct {
func (x *CancelSchemaMigrationResponse) Reset() {
*x = CancelSchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CancelSchemaMigrationResponse) String() string {
@@ -2692,7 +2636,7 @@ func (*CancelSchemaMigrationResponse) ProtoMessage() {}
func (x *CancelSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[27]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2726,11 +2670,9 @@ type ChangeTabletTagsRequest struct {
func (x *ChangeTabletTagsRequest) Reset() {
*x = ChangeTabletTagsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTabletTagsRequest) String() string {
@@ -2741,7 +2683,7 @@ func (*ChangeTabletTagsRequest) ProtoMessage() {}
func (x *ChangeTabletTagsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[28]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2788,11 +2730,9 @@ type ChangeTabletTagsResponse struct {
func (x *ChangeTabletTagsResponse) Reset() {
*x = ChangeTabletTagsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTabletTagsResponse) String() string {
@@ -2803,7 +2743,7 @@ func (*ChangeTabletTagsResponse) ProtoMessage() {}
func (x *ChangeTabletTagsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[29]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2844,11 +2784,9 @@ type ChangeTabletTypeRequest struct {
func (x *ChangeTabletTypeRequest) Reset() {
*x = ChangeTabletTypeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTabletTypeRequest) String() string {
@@ -2859,7 +2797,7 @@ func (*ChangeTabletTypeRequest) ProtoMessage() {}
func (x *ChangeTabletTypeRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[30]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2907,11 +2845,9 @@ type ChangeTabletTypeResponse struct {
func (x *ChangeTabletTypeResponse) Reset() {
*x = ChangeTabletTypeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ChangeTabletTypeResponse) String() string {
@@ -2922,7 +2858,7 @@ func (*ChangeTabletTypeResponse) ProtoMessage() {}
func (x *ChangeTabletTypeResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[31]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2974,11 +2910,9 @@ type CheckThrottlerRequest struct {
func (x *CheckThrottlerRequest) Reset() {
*x = CheckThrottlerRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[32]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CheckThrottlerRequest) String() string {
@@ -2989,7 +2923,7 @@ func (*CheckThrottlerRequest) ProtoMessage() {}
func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[32]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3050,11 +2984,9 @@ type CheckThrottlerResponse struct {
func (x *CheckThrottlerResponse) Reset() {
*x = CheckThrottlerResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[33]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CheckThrottlerResponse) String() string {
@@ -3065,7 +2997,7 @@ func (*CheckThrottlerResponse) ProtoMessage() {}
func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[33]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3105,11 +3037,9 @@ type CleanupSchemaMigrationRequest struct {
func (x *CleanupSchemaMigrationRequest) Reset() {
*x = CleanupSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[34]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CleanupSchemaMigrationRequest) String() string {
@@ -3120,7 +3050,7 @@ func (*CleanupSchemaMigrationRequest) ProtoMessage() {}
func (x *CleanupSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[34]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3159,11 +3089,9 @@ type CleanupSchemaMigrationResponse struct {
func (x *CleanupSchemaMigrationResponse) Reset() {
*x = CleanupSchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CleanupSchemaMigrationResponse) String() string {
@@ -3174,7 +3102,7 @@ func (*CleanupSchemaMigrationResponse) ProtoMessage() {}
func (x *CleanupSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[35]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3207,11 +3135,9 @@ type CompleteSchemaMigrationRequest struct {
func (x *CompleteSchemaMigrationRequest) Reset() {
*x = CompleteSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[36]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CompleteSchemaMigrationRequest) String() string {
@@ -3222,7 +3148,7 @@ func (*CompleteSchemaMigrationRequest) ProtoMessage() {}
func (x *CompleteSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[36]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3261,11 +3187,9 @@ type CompleteSchemaMigrationResponse struct {
func (x *CompleteSchemaMigrationResponse) Reset() {
*x = CompleteSchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[37]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CompleteSchemaMigrationResponse) String() string {
@@ -3276,7 +3200,7 @@ func (*CompleteSchemaMigrationResponse) ProtoMessage() {}
func (x *CompleteSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[37]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3327,11 +3251,9 @@ type CreateKeyspaceRequest struct {
func (x *CreateKeyspaceRequest) Reset() {
*x = CreateKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[38]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateKeyspaceRequest) String() string {
@@ -3342,7 +3264,7 @@ func (*CreateKeyspaceRequest) ProtoMessage() {}
func (x *CreateKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[38]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3424,11 +3346,9 @@ type CreateKeyspaceResponse struct {
func (x *CreateKeyspaceResponse) Reset() {
*x = CreateKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[39]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateKeyspaceResponse) String() string {
@@ -3439,7 +3359,7 @@ func (*CreateKeyspaceResponse) ProtoMessage() {}
func (x *CreateKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[39]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3480,11 +3400,9 @@ type CreateShardRequest struct {
func (x *CreateShardRequest) Reset() {
*x = CreateShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[40]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateShardRequest) String() string {
@@ -3495,7 +3413,7 @@ func (*CreateShardRequest) ProtoMessage() {}
func (x *CreateShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[40]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3555,11 +3473,9 @@ type CreateShardResponse struct {
func (x *CreateShardResponse) Reset() {
*x = CreateShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[41]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CreateShardResponse) String() string {
@@ -3570,7 +3486,7 @@ func (*CreateShardResponse) ProtoMessage() {}
func (x *CreateShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[41]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3617,11 +3533,9 @@ type DeleteCellInfoRequest struct {
func (x *DeleteCellInfoRequest) Reset() {
*x = DeleteCellInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[42]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteCellInfoRequest) String() string {
@@ -3632,7 +3546,7 @@ func (*DeleteCellInfoRequest) ProtoMessage() {}
func (x *DeleteCellInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[42]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3669,11 +3583,9 @@ type DeleteCellInfoResponse struct {
func (x *DeleteCellInfoResponse) Reset() {
*x = DeleteCellInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[43]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteCellInfoResponse) String() string {
@@ -3684,7 +3596,7 @@ func (*DeleteCellInfoResponse) ProtoMessage() {}
func (x *DeleteCellInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[43]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3709,11 +3621,9 @@ type DeleteCellsAliasRequest struct {
func (x *DeleteCellsAliasRequest) Reset() {
*x = DeleteCellsAliasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[44]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteCellsAliasRequest) String() string {
@@ -3724,7 +3634,7 @@ func (*DeleteCellsAliasRequest) ProtoMessage() {}
func (x *DeleteCellsAliasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[44]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3754,11 +3664,9 @@ type DeleteCellsAliasResponse struct {
func (x *DeleteCellsAliasResponse) Reset() {
*x = DeleteCellsAliasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[45]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteCellsAliasResponse) String() string {
@@ -3769,7 +3677,7 @@ func (*DeleteCellsAliasResponse) ProtoMessage() {}
func (x *DeleteCellsAliasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[45]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3802,11 +3710,9 @@ type DeleteKeyspaceRequest struct {
func (x *DeleteKeyspaceRequest) Reset() {
*x = DeleteKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[46]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteKeyspaceRequest) String() string {
@@ -3817,7 +3723,7 @@ func (*DeleteKeyspaceRequest) ProtoMessage() {}
func (x *DeleteKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[46]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3861,11 +3767,9 @@ type DeleteKeyspaceResponse struct {
func (x *DeleteKeyspaceResponse) Reset() {
*x = DeleteKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[47]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteKeyspaceResponse) String() string {
@@ -3876,7 +3780,7 @@ func (*DeleteKeyspaceResponse) ProtoMessage() {}
func (x *DeleteKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[47]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3913,11 +3817,9 @@ type DeleteShardsRequest struct {
func (x *DeleteShardsRequest) Reset() {
*x = DeleteShardsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[48]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteShardsRequest) String() string {
@@ -3928,7 +3830,7 @@ func (*DeleteShardsRequest) ProtoMessage() {}
func (x *DeleteShardsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[48]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -3979,11 +3881,9 @@ type DeleteShardsResponse struct {
func (x *DeleteShardsResponse) Reset() {
*x = DeleteShardsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[49]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteShardsResponse) String() string {
@@ -3994,7 +3894,7 @@ func (*DeleteShardsResponse) ProtoMessage() {}
func (x *DeleteShardsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[49]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4019,11 +3919,9 @@ type DeleteSrvVSchemaRequest struct {
func (x *DeleteSrvVSchemaRequest) Reset() {
*x = DeleteSrvVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[50]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteSrvVSchemaRequest) String() string {
@@ -4034,7 +3932,7 @@ func (*DeleteSrvVSchemaRequest) ProtoMessage() {}
func (x *DeleteSrvVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[50]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4064,11 +3962,9 @@ type DeleteSrvVSchemaResponse struct {
func (x *DeleteSrvVSchemaResponse) Reset() {
*x = DeleteSrvVSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[51]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteSrvVSchemaResponse) String() string {
@@ -4079,7 +3975,7 @@ func (*DeleteSrvVSchemaResponse) ProtoMessage() {}
func (x *DeleteSrvVSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[51]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4108,11 +4004,9 @@ type DeleteTabletsRequest struct {
func (x *DeleteTabletsRequest) Reset() {
*x = DeleteTabletsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[52]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTabletsRequest) String() string {
@@ -4123,7 +4017,7 @@ func (*DeleteTabletsRequest) ProtoMessage() {}
func (x *DeleteTabletsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[52]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4160,11 +4054,9 @@ type DeleteTabletsResponse struct {
func (x *DeleteTabletsResponse) Reset() {
*x = DeleteTabletsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[53]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeleteTabletsResponse) String() string {
@@ -4175,7 +4067,7 @@ func (*DeleteTabletsResponse) ProtoMessage() {}
func (x *DeleteTabletsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[53]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4223,11 +4115,9 @@ type EmergencyReparentShardRequest struct {
func (x *EmergencyReparentShardRequest) Reset() {
*x = EmergencyReparentShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[54]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EmergencyReparentShardRequest) String() string {
@@ -4238,7 +4128,7 @@ func (*EmergencyReparentShardRequest) ProtoMessage() {}
func (x *EmergencyReparentShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[54]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4328,11 +4218,9 @@ type EmergencyReparentShardResponse struct {
func (x *EmergencyReparentShardResponse) Reset() {
*x = EmergencyReparentShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[55]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EmergencyReparentShardResponse) String() string {
@@ -4343,7 +4231,7 @@ func (*EmergencyReparentShardResponse) ProtoMessage() {}
func (x *EmergencyReparentShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[55]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4406,11 +4294,9 @@ type ExecuteFetchAsAppRequest struct {
func (x *ExecuteFetchAsAppRequest) Reset() {
*x = ExecuteFetchAsAppRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[56]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAppRequest) String() string {
@@ -4421,7 +4307,7 @@ func (*ExecuteFetchAsAppRequest) ProtoMessage() {}
func (x *ExecuteFetchAsAppRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[56]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4474,11 +4360,9 @@ type ExecuteFetchAsAppResponse struct {
func (x *ExecuteFetchAsAppResponse) Reset() {
*x = ExecuteFetchAsAppResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[57]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsAppResponse) String() string {
@@ -4489,7 +4373,7 @@ func (*ExecuteFetchAsAppResponse) ProtoMessage() {}
func (x *ExecuteFetchAsAppResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[57]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4535,11 +4419,9 @@ type ExecuteFetchAsDBARequest struct {
func (x *ExecuteFetchAsDBARequest) Reset() {
*x = ExecuteFetchAsDBARequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[58]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsDBARequest) String() string {
@@ -4550,7 +4432,7 @@ func (*ExecuteFetchAsDBARequest) ProtoMessage() {}
func (x *ExecuteFetchAsDBARequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[58]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4610,11 +4492,9 @@ type ExecuteFetchAsDBAResponse struct {
func (x *ExecuteFetchAsDBAResponse) Reset() {
*x = ExecuteFetchAsDBAResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[59]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteFetchAsDBAResponse) String() string {
@@ -4625,7 +4505,7 @@ func (*ExecuteFetchAsDBAResponse) ProtoMessage() {}
func (x *ExecuteFetchAsDBAResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[59]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4658,11 +4538,9 @@ type ExecuteHookRequest struct {
func (x *ExecuteHookRequest) Reset() {
*x = ExecuteHookRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[60]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteHookRequest) String() string {
@@ -4673,7 +4551,7 @@ func (*ExecuteHookRequest) ProtoMessage() {}
func (x *ExecuteHookRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[60]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4712,11 +4590,9 @@ type ExecuteHookResponse struct {
func (x *ExecuteHookResponse) Reset() {
*x = ExecuteHookResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[61]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteHookResponse) String() string {
@@ -4727,7 +4603,7 @@ func (*ExecuteHookResponse) ProtoMessage() {}
func (x *ExecuteHookResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[61]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4774,11 +4650,9 @@ type ExecuteMultiFetchAsDBARequest struct {
func (x *ExecuteMultiFetchAsDBARequest) Reset() {
*x = ExecuteMultiFetchAsDBARequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[62]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteMultiFetchAsDBARequest) String() string {
@@ -4789,7 +4663,7 @@ func (*ExecuteMultiFetchAsDBARequest) ProtoMessage() {}
func (x *ExecuteMultiFetchAsDBARequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[62]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4849,11 +4723,9 @@ type ExecuteMultiFetchAsDBAResponse struct {
func (x *ExecuteMultiFetchAsDBAResponse) Reset() {
*x = ExecuteMultiFetchAsDBAResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[63]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteMultiFetchAsDBAResponse) String() string {
@@ -4864,7 +4736,7 @@ func (*ExecuteMultiFetchAsDBAResponse) ProtoMessage() {}
func (x *ExecuteMultiFetchAsDBAResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[63]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4896,11 +4768,9 @@ type FindAllShardsInKeyspaceRequest struct {
func (x *FindAllShardsInKeyspaceRequest) Reset() {
*x = FindAllShardsInKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[64]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FindAllShardsInKeyspaceRequest) String() string {
@@ -4911,7 +4781,7 @@ func (*FindAllShardsInKeyspaceRequest) ProtoMessage() {}
func (x *FindAllShardsInKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[64]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4943,11 +4813,9 @@ type FindAllShardsInKeyspaceResponse struct {
func (x *FindAllShardsInKeyspaceResponse) Reset() {
*x = FindAllShardsInKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[65]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FindAllShardsInKeyspaceResponse) String() string {
@@ -4958,7 +4826,7 @@ func (*FindAllShardsInKeyspaceResponse) ProtoMessage() {}
func (x *FindAllShardsInKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[65]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -4991,11 +4859,9 @@ type ForceCutOverSchemaMigrationRequest struct {
func (x *ForceCutOverSchemaMigrationRequest) Reset() {
*x = ForceCutOverSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[66]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ForceCutOverSchemaMigrationRequest) String() string {
@@ -5006,7 +4872,7 @@ func (*ForceCutOverSchemaMigrationRequest) ProtoMessage() {}
func (x *ForceCutOverSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[66]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5045,11 +4911,9 @@ type ForceCutOverSchemaMigrationResponse struct {
func (x *ForceCutOverSchemaMigrationResponse) Reset() {
*x = ForceCutOverSchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[67]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[67]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ForceCutOverSchemaMigrationResponse) String() string {
@@ -5060,7 +4924,7 @@ func (*ForceCutOverSchemaMigrationResponse) ProtoMessage() {}
func (x *ForceCutOverSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[67]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5107,11 +4971,9 @@ type GetBackupsRequest struct {
func (x *GetBackupsRequest) Reset() {
*x = GetBackupsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[68]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetBackupsRequest) String() string {
@@ -5122,7 +4984,7 @@ func (*GetBackupsRequest) ProtoMessage() {}
func (x *GetBackupsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[68]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5182,11 +5044,9 @@ type GetBackupsResponse struct {
func (x *GetBackupsResponse) Reset() {
*x = GetBackupsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[69]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[69]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetBackupsResponse) String() string {
@@ -5197,7 +5057,7 @@ func (*GetBackupsResponse) ProtoMessage() {}
func (x *GetBackupsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[69]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5229,11 +5089,9 @@ type GetCellInfoRequest struct {
func (x *GetCellInfoRequest) Reset() {
*x = GetCellInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[70]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[70]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfoRequest) String() string {
@@ -5244,7 +5102,7 @@ func (*GetCellInfoRequest) ProtoMessage() {}
func (x *GetCellInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[70]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5276,11 +5134,9 @@ type GetCellInfoResponse struct {
func (x *GetCellInfoResponse) Reset() {
*x = GetCellInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[71]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[71]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfoResponse) String() string {
@@ -5291,7 +5147,7 @@ func (*GetCellInfoResponse) ProtoMessage() {}
func (x *GetCellInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[71]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5321,11 +5177,9 @@ type GetCellInfoNamesRequest struct {
func (x *GetCellInfoNamesRequest) Reset() {
*x = GetCellInfoNamesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[72]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[72]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfoNamesRequest) String() string {
@@ -5336,7 +5190,7 @@ func (*GetCellInfoNamesRequest) ProtoMessage() {}
func (x *GetCellInfoNamesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[72]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5361,11 +5215,9 @@ type GetCellInfoNamesResponse struct {
func (x *GetCellInfoNamesResponse) Reset() {
*x = GetCellInfoNamesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[73]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[73]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellInfoNamesResponse) String() string {
@@ -5376,7 +5228,7 @@ func (*GetCellInfoNamesResponse) ProtoMessage() {}
func (x *GetCellInfoNamesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[73]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5406,11 +5258,9 @@ type GetCellsAliasesRequest struct {
func (x *GetCellsAliasesRequest) Reset() {
*x = GetCellsAliasesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[74]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[74]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellsAliasesRequest) String() string {
@@ -5421,7 +5271,7 @@ func (*GetCellsAliasesRequest) ProtoMessage() {}
func (x *GetCellsAliasesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[74]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5446,11 +5296,9 @@ type GetCellsAliasesResponse struct {
func (x *GetCellsAliasesResponse) Reset() {
*x = GetCellsAliasesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[75]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[75]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetCellsAliasesResponse) String() string {
@@ -5461,7 +5309,7 @@ func (*GetCellsAliasesResponse) ProtoMessage() {}
func (x *GetCellsAliasesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[75]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5493,11 +5341,9 @@ type GetFullStatusRequest struct {
func (x *GetFullStatusRequest) Reset() {
*x = GetFullStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[76]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[76]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetFullStatusRequest) String() string {
@@ -5508,7 +5354,7 @@ func (*GetFullStatusRequest) ProtoMessage() {}
func (x *GetFullStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[76]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5540,11 +5386,9 @@ type GetFullStatusResponse struct {
func (x *GetFullStatusResponse) Reset() {
*x = GetFullStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[77]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[77]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetFullStatusResponse) String() string {
@@ -5555,7 +5399,7 @@ func (*GetFullStatusResponse) ProtoMessage() {}
func (x *GetFullStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[77]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5585,11 +5429,9 @@ type GetKeyspacesRequest struct {
func (x *GetKeyspacesRequest) Reset() {
*x = GetKeyspacesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[78]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[78]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspacesRequest) String() string {
@@ -5600,7 +5442,7 @@ func (*GetKeyspacesRequest) ProtoMessage() {}
func (x *GetKeyspacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[78]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5625,11 +5467,9 @@ type GetKeyspacesResponse struct {
func (x *GetKeyspacesResponse) Reset() {
*x = GetKeyspacesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[79]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[79]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspacesResponse) String() string {
@@ -5640,7 +5480,7 @@ func (*GetKeyspacesResponse) ProtoMessage() {}
func (x *GetKeyspacesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[79]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5672,11 +5512,9 @@ type GetKeyspaceRequest struct {
func (x *GetKeyspaceRequest) Reset() {
*x = GetKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[80]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[80]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspaceRequest) String() string {
@@ -5687,7 +5525,7 @@ func (*GetKeyspaceRequest) ProtoMessage() {}
func (x *GetKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[80]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5719,11 +5557,9 @@ type GetKeyspaceResponse struct {
func (x *GetKeyspaceResponse) Reset() {
*x = GetKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[81]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[81]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspaceResponse) String() string {
@@ -5734,7 +5570,7 @@ func (*GetKeyspaceResponse) ProtoMessage() {}
func (x *GetKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[81]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5766,11 +5602,9 @@ type GetPermissionsRequest struct {
func (x *GetPermissionsRequest) Reset() {
*x = GetPermissionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[82]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[82]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetPermissionsRequest) String() string {
@@ -5781,7 +5615,7 @@ func (*GetPermissionsRequest) ProtoMessage() {}
func (x *GetPermissionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[82]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5813,11 +5647,9 @@ type GetPermissionsResponse struct {
func (x *GetPermissionsResponse) Reset() {
*x = GetPermissionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[83]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[83]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetPermissionsResponse) String() string {
@@ -5828,7 +5660,7 @@ func (*GetPermissionsResponse) ProtoMessage() {}
func (x *GetPermissionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[83]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5858,11 +5690,9 @@ type GetKeyspaceRoutingRulesRequest struct {
func (x *GetKeyspaceRoutingRulesRequest) Reset() {
*x = GetKeyspaceRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[84]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[84]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspaceRoutingRulesRequest) String() string {
@@ -5873,7 +5703,7 @@ func (*GetKeyspaceRoutingRulesRequest) ProtoMessage() {}
func (x *GetKeyspaceRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[84]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5898,11 +5728,9 @@ type GetKeyspaceRoutingRulesResponse struct {
func (x *GetKeyspaceRoutingRulesResponse) Reset() {
*x = GetKeyspaceRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[85]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[85]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetKeyspaceRoutingRulesResponse) String() string {
@@ -5913,7 +5741,7 @@ func (*GetKeyspaceRoutingRulesResponse) ProtoMessage() {}
func (x *GetKeyspaceRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[85]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5943,11 +5771,9 @@ type GetRoutingRulesRequest struct {
func (x *GetRoutingRulesRequest) Reset() {
*x = GetRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[86]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[86]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetRoutingRulesRequest) String() string {
@@ -5958,7 +5784,7 @@ func (*GetRoutingRulesRequest) ProtoMessage() {}
func (x *GetRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[86]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -5983,11 +5809,9 @@ type GetRoutingRulesResponse struct {
func (x *GetRoutingRulesResponse) Reset() {
*x = GetRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[87]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[87]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetRoutingRulesResponse) String() string {
@@ -5998,7 +5822,7 @@ func (*GetRoutingRulesResponse) ProtoMessage() {}
func (x *GetRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[87]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6048,11 +5872,9 @@ type GetSchemaRequest struct {
func (x *GetSchemaRequest) Reset() {
*x = GetSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[88]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[88]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaRequest) String() string {
@@ -6063,7 +5885,7 @@ func (*GetSchemaRequest) ProtoMessage() {}
func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[88]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6137,11 +5959,9 @@ type GetSchemaResponse struct {
func (x *GetSchemaResponse) Reset() {
*x = GetSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[89]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[89]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaResponse) String() string {
@@ -6152,7 +5972,7 @@ func (*GetSchemaResponse) ProtoMessage() {}
func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[89]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6209,11 +6029,9 @@ type GetSchemaMigrationsRequest struct {
func (x *GetSchemaMigrationsRequest) Reset() {
*x = GetSchemaMigrationsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[90]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[90]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaMigrationsRequest) String() string {
@@ -6224,7 +6042,7 @@ func (*GetSchemaMigrationsRequest) ProtoMessage() {}
func (x *GetSchemaMigrationsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[90]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6305,11 +6123,9 @@ type GetSchemaMigrationsResponse struct {
func (x *GetSchemaMigrationsResponse) Reset() {
*x = GetSchemaMigrationsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[91]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[91]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSchemaMigrationsResponse) String() string {
@@ -6320,7 +6136,7 @@ func (*GetSchemaMigrationsResponse) ProtoMessage() {}
func (x *GetSchemaMigrationsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[91]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6356,11 +6172,9 @@ type GetShardReplicationRequest struct {
func (x *GetShardReplicationRequest) Reset() {
*x = GetShardReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[92]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[92]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardReplicationRequest) String() string {
@@ -6371,7 +6185,7 @@ func (*GetShardReplicationRequest) ProtoMessage() {}
func (x *GetShardReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[92]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6417,11 +6231,9 @@ type GetShardReplicationResponse struct {
func (x *GetShardReplicationResponse) Reset() {
*x = GetShardReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[93]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[93]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardReplicationResponse) String() string {
@@ -6432,7 +6244,7 @@ func (*GetShardReplicationResponse) ProtoMessage() {}
func (x *GetShardReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[93]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6465,11 +6277,9 @@ type GetShardRequest struct {
func (x *GetShardRequest) Reset() {
*x = GetShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[94]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[94]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardRequest) String() string {
@@ -6480,7 +6290,7 @@ func (*GetShardRequest) ProtoMessage() {}
func (x *GetShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[94]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6519,11 +6329,9 @@ type GetShardResponse struct {
func (x *GetShardResponse) Reset() {
*x = GetShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[95]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[95]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardResponse) String() string {
@@ -6534,7 +6342,7 @@ func (*GetShardResponse) ProtoMessage() {}
func (x *GetShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[95]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6564,11 +6372,9 @@ type GetShardRoutingRulesRequest struct {
func (x *GetShardRoutingRulesRequest) Reset() {
*x = GetShardRoutingRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[96]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[96]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardRoutingRulesRequest) String() string {
@@ -6579,7 +6385,7 @@ func (*GetShardRoutingRulesRequest) ProtoMessage() {}
func (x *GetShardRoutingRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[96]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6604,11 +6410,9 @@ type GetShardRoutingRulesResponse struct {
func (x *GetShardRoutingRulesResponse) Reset() {
*x = GetShardRoutingRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[97]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[97]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetShardRoutingRulesResponse) String() string {
@@ -6619,7 +6423,7 @@ func (*GetShardRoutingRulesResponse) ProtoMessage() {}
func (x *GetShardRoutingRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[97]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6651,11 +6455,9 @@ type GetSrvKeyspaceNamesRequest struct {
func (x *GetSrvKeyspaceNamesRequest) Reset() {
*x = GetSrvKeyspaceNamesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[98]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[98]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspaceNamesRequest) String() string {
@@ -6666,7 +6468,7 @@ func (*GetSrvKeyspaceNamesRequest) ProtoMessage() {}
func (x *GetSrvKeyspaceNamesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[98]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6699,11 +6501,9 @@ type GetSrvKeyspaceNamesResponse struct {
func (x *GetSrvKeyspaceNamesResponse) Reset() {
*x = GetSrvKeyspaceNamesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[99]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[99]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspaceNamesResponse) String() string {
@@ -6714,7 +6514,7 @@ func (*GetSrvKeyspaceNamesResponse) ProtoMessage() {}
func (x *GetSrvKeyspaceNamesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[99]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6749,11 +6549,9 @@ type GetSrvKeyspacesRequest struct {
func (x *GetSrvKeyspacesRequest) Reset() {
*x = GetSrvKeyspacesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[100]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[100]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspacesRequest) String() string {
@@ -6764,7 +6562,7 @@ func (*GetSrvKeyspacesRequest) ProtoMessage() {}
func (x *GetSrvKeyspacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[100]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6804,11 +6602,9 @@ type GetSrvKeyspacesResponse struct {
func (x *GetSrvKeyspacesResponse) Reset() {
*x = GetSrvKeyspacesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[101]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[101]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspacesResponse) String() string {
@@ -6819,7 +6615,7 @@ func (*GetSrvKeyspacesResponse) ProtoMessage() {}
func (x *GetSrvKeyspacesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[101]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6874,11 +6670,9 @@ type UpdateThrottlerConfigRequest struct {
func (x *UpdateThrottlerConfigRequest) Reset() {
*x = UpdateThrottlerConfigRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[102]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[102]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateThrottlerConfigRequest) String() string {
@@ -6889,7 +6683,7 @@ func (*UpdateThrottlerConfigRequest) ProtoMessage() {}
func (x *UpdateThrottlerConfigRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[102]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -6996,11 +6790,9 @@ type UpdateThrottlerConfigResponse struct {
func (x *UpdateThrottlerConfigResponse) Reset() {
*x = UpdateThrottlerConfigResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[103]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[103]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateThrottlerConfigResponse) String() string {
@@ -7011,7 +6803,7 @@ func (*UpdateThrottlerConfigResponse) ProtoMessage() {}
func (x *UpdateThrottlerConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[103]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7036,11 +6828,9 @@ type GetSrvVSchemaRequest struct {
func (x *GetSrvVSchemaRequest) Reset() {
*x = GetSrvVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[104]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[104]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemaRequest) String() string {
@@ -7051,7 +6841,7 @@ func (*GetSrvVSchemaRequest) ProtoMessage() {}
func (x *GetSrvVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[104]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7083,11 +6873,9 @@ type GetSrvVSchemaResponse struct {
func (x *GetSrvVSchemaResponse) Reset() {
*x = GetSrvVSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[105]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[105]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemaResponse) String() string {
@@ -7098,7 +6886,7 @@ func (*GetSrvVSchemaResponse) ProtoMessage() {}
func (x *GetSrvVSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[105]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7130,11 +6918,9 @@ type GetSrvVSchemasRequest struct {
func (x *GetSrvVSchemasRequest) Reset() {
*x = GetSrvVSchemasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[106]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[106]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemasRequest) String() string {
@@ -7145,7 +6931,7 @@ func (*GetSrvVSchemasRequest) ProtoMessage() {}
func (x *GetSrvVSchemasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[106]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7178,11 +6964,9 @@ type GetSrvVSchemasResponse struct {
func (x *GetSrvVSchemasResponse) Reset() {
*x = GetSrvVSchemasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[107]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[107]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvVSchemasResponse) String() string {
@@ -7193,7 +6977,7 @@ func (*GetSrvVSchemasResponse) ProtoMessage() {}
func (x *GetSrvVSchemasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[107]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7225,11 +7009,9 @@ type GetTabletRequest struct {
func (x *GetTabletRequest) Reset() {
*x = GetTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[108]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[108]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletRequest) String() string {
@@ -7240,7 +7022,7 @@ func (*GetTabletRequest) ProtoMessage() {}
func (x *GetTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[108]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7272,11 +7054,9 @@ type GetTabletResponse struct {
func (x *GetTabletResponse) Reset() {
*x = GetTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[109]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[109]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletResponse) String() string {
@@ -7287,7 +7067,7 @@ func (*GetTabletResponse) ProtoMessage() {}
func (x *GetTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[109]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7340,11 +7120,9 @@ type GetTabletsRequest struct {
func (x *GetTabletsRequest) Reset() {
*x = GetTabletsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[110]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[110]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletsRequest) String() string {
@@ -7355,7 +7133,7 @@ func (*GetTabletsRequest) ProtoMessage() {}
func (x *GetTabletsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[110]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7422,11 +7200,9 @@ type GetTabletsResponse struct {
func (x *GetTabletsResponse) Reset() {
*x = GetTabletsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[111]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[111]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTabletsResponse) String() string {
@@ -7437,7 +7213,7 @@ func (*GetTabletsResponse) ProtoMessage() {}
func (x *GetTabletsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[111]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7470,11 +7246,9 @@ type GetThrottlerStatusRequest struct {
func (x *GetThrottlerStatusRequest) Reset() {
*x = GetThrottlerStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[112]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[112]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusRequest) String() string {
@@ -7485,7 +7259,7 @@ func (*GetThrottlerStatusRequest) ProtoMessage() {}
func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[112]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7517,11 +7291,9 @@ type GetThrottlerStatusResponse struct {
func (x *GetThrottlerStatusResponse) Reset() {
*x = GetThrottlerStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[113]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[113]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetThrottlerStatusResponse) String() string {
@@ -7532,7 +7304,7 @@ func (*GetThrottlerStatusResponse) ProtoMessage() {}
func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[113]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7566,11 +7338,9 @@ type GetTopologyPathRequest struct {
func (x *GetTopologyPathRequest) Reset() {
*x = GetTopologyPathRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[114]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[114]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTopologyPathRequest) String() string {
@@ -7581,7 +7351,7 @@ func (*GetTopologyPathRequest) ProtoMessage() {}
func (x *GetTopologyPathRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[114]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7627,11 +7397,9 @@ type GetTopologyPathResponse struct {
func (x *GetTopologyPathResponse) Reset() {
*x = GetTopologyPathResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[115]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[115]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTopologyPathResponse) String() string {
@@ -7642,7 +7410,7 @@ func (*GetTopologyPathResponse) ProtoMessage() {}
func (x *GetTopologyPathResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[115]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7680,11 +7448,9 @@ type TopologyCell struct {
func (x *TopologyCell) Reset() {
*x = TopologyCell{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[116]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[116]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TopologyCell) String() string {
@@ -7695,7 +7461,7 @@ func (*TopologyCell) ProtoMessage() {}
func (x *TopologyCell) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[116]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7756,11 +7522,9 @@ type GetUnresolvedTransactionsRequest struct {
func (x *GetUnresolvedTransactionsRequest) Reset() {
*x = GetUnresolvedTransactionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[117]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[117]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetUnresolvedTransactionsRequest) String() string {
@@ -7771,7 +7535,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {}
func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[117]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7810,11 +7574,9 @@ type GetUnresolvedTransactionsResponse struct {
func (x *GetUnresolvedTransactionsResponse) Reset() {
*x = GetUnresolvedTransactionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[118]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[118]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetUnresolvedTransactionsResponse) String() string {
@@ -7825,7 +7587,7 @@ func (*GetUnresolvedTransactionsResponse) ProtoMessage() {}
func (x *GetUnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[118]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7857,11 +7619,9 @@ type GetTransactionInfoRequest struct {
func (x *GetTransactionInfoRequest) Reset() {
*x = GetTransactionInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[119]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[119]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTransactionInfoRequest) String() string {
@@ -7872,7 +7632,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {}
func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[119]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7908,11 +7668,9 @@ type ShardTransactionState struct {
func (x *ShardTransactionState) Reset() {
*x = ShardTransactionState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[120]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[120]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardTransactionState) String() string {
@@ -7923,7 +7681,7 @@ func (*ShardTransactionState) ProtoMessage() {}
func (x *ShardTransactionState) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[120]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -7984,11 +7742,9 @@ type GetTransactionInfoResponse struct {
func (x *GetTransactionInfoResponse) Reset() {
*x = GetTransactionInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[121]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[121]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetTransactionInfoResponse) String() string {
@@ -7999,7 +7755,7 @@ func (*GetTransactionInfoResponse) ProtoMessage() {}
func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[121]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8039,11 +7795,9 @@ type ConcludeTransactionRequest struct {
func (x *ConcludeTransactionRequest) Reset() {
*x = ConcludeTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[122]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[122]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionRequest) String() string {
@@ -8054,7 +7808,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {}
func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[122]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8091,11 +7845,9 @@ type ConcludeTransactionResponse struct {
func (x *ConcludeTransactionResponse) Reset() {
*x = ConcludeTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[123]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[123]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConcludeTransactionResponse) String() string {
@@ -8106,7 +7858,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {}
func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[123]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8131,11 +7883,9 @@ type GetVSchemaRequest struct {
func (x *GetVSchemaRequest) Reset() {
*x = GetVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[124]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[124]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVSchemaRequest) String() string {
@@ -8146,7 +7896,7 @@ func (*GetVSchemaRequest) ProtoMessage() {}
func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[124]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8178,11 +7928,9 @@ type GetVersionRequest struct {
func (x *GetVersionRequest) Reset() {
*x = GetVersionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[125]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[125]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVersionRequest) String() string {
@@ -8193,7 +7941,7 @@ func (*GetVersionRequest) ProtoMessage() {}
func (x *GetVersionRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[125]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8225,11 +7973,9 @@ type GetVersionResponse struct {
func (x *GetVersionResponse) Reset() {
*x = GetVersionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[126]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[126]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVersionResponse) String() string {
@@ -8240,7 +7986,7 @@ func (*GetVersionResponse) ProtoMessage() {}
func (x *GetVersionResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[126]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8272,11 +8018,9 @@ type GetVSchemaResponse struct {
func (x *GetVSchemaResponse) Reset() {
*x = GetVSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[127]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[127]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetVSchemaResponse) String() string {
@@ -8287,7 +8031,7 @@ func (*GetVSchemaResponse) ProtoMessage() {}
func (x *GetVSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[127]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8325,11 +8069,9 @@ type GetWorkflowsRequest struct {
func (x *GetWorkflowsRequest) Reset() {
*x = GetWorkflowsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[128]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[128]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowsRequest) String() string {
@@ -8340,7 +8082,7 @@ func (*GetWorkflowsRequest) ProtoMessage() {}
func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[128]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8407,11 +8149,9 @@ type GetWorkflowsResponse struct {
func (x *GetWorkflowsResponse) Reset() {
*x = GetWorkflowsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[129]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[129]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetWorkflowsResponse) String() string {
@@ -8422,7 +8162,7 @@ func (*GetWorkflowsResponse) ProtoMessage() {}
func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[129]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8458,11 +8198,9 @@ type InitShardPrimaryRequest struct {
func (x *InitShardPrimaryRequest) Reset() {
*x = InitShardPrimaryRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[130]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[130]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitShardPrimaryRequest) String() string {
@@ -8473,7 +8211,7 @@ func (*InitShardPrimaryRequest) ProtoMessage() {}
func (x *InitShardPrimaryRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[130]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8533,11 +8271,9 @@ type InitShardPrimaryResponse struct {
func (x *InitShardPrimaryResponse) Reset() {
*x = InitShardPrimaryResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[131]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[131]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *InitShardPrimaryResponse) String() string {
@@ -8548,7 +8284,7 @@ func (*InitShardPrimaryResponse) ProtoMessage() {}
func (x *InitShardPrimaryResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[131]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8581,11 +8317,9 @@ type LaunchSchemaMigrationRequest struct {
func (x *LaunchSchemaMigrationRequest) Reset() {
*x = LaunchSchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[132]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[132]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LaunchSchemaMigrationRequest) String() string {
@@ -8596,7 +8330,7 @@ func (*LaunchSchemaMigrationRequest) ProtoMessage() {}
func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[132]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8635,11 +8369,9 @@ type LaunchSchemaMigrationResponse struct {
func (x *LaunchSchemaMigrationResponse) Reset() {
*x = LaunchSchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[133]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[133]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LaunchSchemaMigrationResponse) String() string {
@@ -8650,7 +8382,7 @@ func (*LaunchSchemaMigrationResponse) ProtoMessage() {}
func (x *LaunchSchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[133]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8688,11 +8420,9 @@ type LookupVindexCreateRequest struct {
func (x *LookupVindexCreateRequest) Reset() {
*x = LookupVindexCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[134]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[134]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LookupVindexCreateRequest) String() string {
@@ -8703,7 +8433,7 @@ func (*LookupVindexCreateRequest) ProtoMessage() {}
func (x *LookupVindexCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[134]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8775,11 +8505,9 @@ type LookupVindexCreateResponse struct {
func (x *LookupVindexCreateResponse) Reset() {
*x = LookupVindexCreateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[135]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[135]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LookupVindexCreateResponse) String() string {
@@ -8790,7 +8518,7 @@ func (*LookupVindexCreateResponse) ProtoMessage() {}
func (x *LookupVindexCreateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[135]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8820,11 +8548,9 @@ type LookupVindexExternalizeRequest struct {
func (x *LookupVindexExternalizeRequest) Reset() {
*x = LookupVindexExternalizeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[136]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[136]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LookupVindexExternalizeRequest) String() string {
@@ -8835,7 +8561,7 @@ func (*LookupVindexExternalizeRequest) ProtoMessage() {}
func (x *LookupVindexExternalizeRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[136]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8882,11 +8608,9 @@ type LookupVindexExternalizeResponse struct {
func (x *LookupVindexExternalizeResponse) Reset() {
*x = LookupVindexExternalizeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[137]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[137]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LookupVindexExternalizeResponse) String() string {
@@ -8897,7 +8621,7 @@ func (*LookupVindexExternalizeResponse) ProtoMessage() {}
func (x *LookupVindexExternalizeResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[137]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8929,11 +8653,9 @@ type MaterializeCreateRequest struct {
func (x *MaterializeCreateRequest) Reset() {
*x = MaterializeCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[138]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[138]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaterializeCreateRequest) String() string {
@@ -8944,7 +8666,7 @@ func (*MaterializeCreateRequest) ProtoMessage() {}
func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[138]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -8974,11 +8696,9 @@ type MaterializeCreateResponse struct {
func (x *MaterializeCreateResponse) Reset() {
*x = MaterializeCreateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[139]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[139]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MaterializeCreateResponse) String() string {
@@ -8989,7 +8709,7 @@ func (*MaterializeCreateResponse) ProtoMessage() {}
func (x *MaterializeCreateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[139]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9039,11 +8759,9 @@ type MigrateCreateRequest struct {
func (x *MigrateCreateRequest) Reset() {
*x = MigrateCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[140]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[140]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MigrateCreateRequest) String() string {
@@ -9054,7 +8772,7 @@ func (*MigrateCreateRequest) ProtoMessage() {}
func (x *MigrateCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[140]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9203,11 +8921,9 @@ type MigrateCompleteRequest struct {
func (x *MigrateCompleteRequest) Reset() {
*x = MigrateCompleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[141]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[141]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MigrateCompleteRequest) String() string {
@@ -9218,7 +8934,7 @@ func (*MigrateCompleteRequest) ProtoMessage() {}
func (x *MigrateCompleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[141]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9286,11 +9002,9 @@ type MigrateCompleteResponse struct {
func (x *MigrateCompleteResponse) Reset() {
*x = MigrateCompleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[142]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[142]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MigrateCompleteResponse) String() string {
@@ -9301,7 +9015,7 @@ func (*MigrateCompleteResponse) ProtoMessage() {}
func (x *MigrateCompleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[142]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9343,11 +9057,9 @@ type MountRegisterRequest struct {
func (x *MountRegisterRequest) Reset() {
*x = MountRegisterRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[143]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[143]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountRegisterRequest) String() string {
@@ -9358,7 +9070,7 @@ func (*MountRegisterRequest) ProtoMessage() {}
func (x *MountRegisterRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[143]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9409,11 +9121,9 @@ type MountRegisterResponse struct {
func (x *MountRegisterResponse) Reset() {
*x = MountRegisterResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[144]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[144]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountRegisterResponse) String() string {
@@ -9424,7 +9134,7 @@ func (*MountRegisterResponse) ProtoMessage() {}
func (x *MountRegisterResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[144]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9449,11 +9159,9 @@ type MountUnregisterRequest struct {
func (x *MountUnregisterRequest) Reset() {
*x = MountUnregisterRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[145]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[145]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountUnregisterRequest) String() string {
@@ -9464,7 +9172,7 @@ func (*MountUnregisterRequest) ProtoMessage() {}
func (x *MountUnregisterRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[145]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9494,11 +9202,9 @@ type MountUnregisterResponse struct {
func (x *MountUnregisterResponse) Reset() {
*x = MountUnregisterResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[146]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[146]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountUnregisterResponse) String() string {
@@ -9509,7 +9215,7 @@ func (*MountUnregisterResponse) ProtoMessage() {}
func (x *MountUnregisterResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[146]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9534,11 +9240,9 @@ type MountShowRequest struct {
func (x *MountShowRequest) Reset() {
*x = MountShowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[147]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[147]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountShowRequest) String() string {
@@ -9549,7 +9253,7 @@ func (*MountShowRequest) ProtoMessage() {}
func (x *MountShowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[147]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9584,11 +9288,9 @@ type MountShowResponse struct {
func (x *MountShowResponse) Reset() {
*x = MountShowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[148]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[148]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountShowResponse) String() string {
@@ -9599,7 +9301,7 @@ func (*MountShowResponse) ProtoMessage() {}
func (x *MountShowResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[148]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9650,11 +9352,9 @@ type MountListRequest struct {
func (x *MountListRequest) Reset() {
*x = MountListRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[149]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[149]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountListRequest) String() string {
@@ -9665,7 +9365,7 @@ func (*MountListRequest) ProtoMessage() {}
func (x *MountListRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[149]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9690,11 +9390,9 @@ type MountListResponse struct {
func (x *MountListResponse) Reset() {
*x = MountListResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[150]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[150]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MountListResponse) String() string {
@@ -9705,7 +9403,7 @@ func (*MountListResponse) ProtoMessage() {}
func (x *MountListResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[150]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9767,11 +9465,9 @@ type MoveTablesCreateRequest struct {
func (x *MoveTablesCreateRequest) Reset() {
*x = MoveTablesCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[151]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[151]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCreateRequest) String() string {
@@ -9782,7 +9478,7 @@ func (*MoveTablesCreateRequest) ProtoMessage() {}
func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[151]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -9948,11 +9644,9 @@ type MoveTablesCreateResponse struct {
func (x *MoveTablesCreateResponse) Reset() {
*x = MoveTablesCreateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[152]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[152]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCreateResponse) String() string {
@@ -9963,7 +9657,7 @@ func (*MoveTablesCreateResponse) ProtoMessage() {}
func (x *MoveTablesCreateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[152]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10008,11 +9702,9 @@ type MoveTablesCompleteRequest struct {
func (x *MoveTablesCompleteRequest) Reset() {
*x = MoveTablesCompleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[153]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[153]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCompleteRequest) String() string {
@@ -10023,7 +9715,7 @@ func (*MoveTablesCompleteRequest) ProtoMessage() {}
func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[153]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10098,11 +9790,9 @@ type MoveTablesCompleteResponse struct {
func (x *MoveTablesCompleteResponse) Reset() {
*x = MoveTablesCompleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[154]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[154]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCompleteResponse) String() string {
@@ -10113,7 +9803,7 @@ func (*MoveTablesCompleteResponse) ProtoMessage() {}
func (x *MoveTablesCompleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[154]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10152,11 +9842,9 @@ type PingTabletRequest struct {
func (x *PingTabletRequest) Reset() {
*x = PingTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[155]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[155]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingTabletRequest) String() string {
@@ -10167,7 +9855,7 @@ func (*PingTabletRequest) ProtoMessage() {}
func (x *PingTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[155]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10197,11 +9885,9 @@ type PingTabletResponse struct {
func (x *PingTabletResponse) Reset() {
*x = PingTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[156]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[156]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PingTabletResponse) String() string {
@@ -10212,7 +9898,7 @@ func (*PingTabletResponse) ProtoMessage() {}
func (x *PingTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[156]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10267,11 +9953,9 @@ type PlannedReparentShardRequest struct {
func (x *PlannedReparentShardRequest) Reset() {
*x = PlannedReparentShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[157]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[157]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PlannedReparentShardRequest) String() string {
@@ -10282,7 +9966,7 @@ func (*PlannedReparentShardRequest) ProtoMessage() {}
func (x *PlannedReparentShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[157]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10372,11 +10056,9 @@ type PlannedReparentShardResponse struct {
func (x *PlannedReparentShardResponse) Reset() {
*x = PlannedReparentShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[158]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[158]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PlannedReparentShardResponse) String() string {
@@ -10387,7 +10069,7 @@ func (*PlannedReparentShardResponse) ProtoMessage() {}
func (x *PlannedReparentShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[158]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10444,11 +10126,9 @@ type RebuildKeyspaceGraphRequest struct {
func (x *RebuildKeyspaceGraphRequest) Reset() {
*x = RebuildKeyspaceGraphRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[159]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[159]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildKeyspaceGraphRequest) String() string {
@@ -10459,7 +10139,7 @@ func (*RebuildKeyspaceGraphRequest) ProtoMessage() {}
func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[159]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10503,11 +10183,9 @@ type RebuildKeyspaceGraphResponse struct {
func (x *RebuildKeyspaceGraphResponse) Reset() {
*x = RebuildKeyspaceGraphResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[160]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[160]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildKeyspaceGraphResponse) String() string {
@@ -10518,7 +10196,7 @@ func (*RebuildKeyspaceGraphResponse) ProtoMessage() {}
func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[160]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10545,11 +10223,9 @@ type RebuildVSchemaGraphRequest struct {
func (x *RebuildVSchemaGraphRequest) Reset() {
*x = RebuildVSchemaGraphRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[161]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[161]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildVSchemaGraphRequest) String() string {
@@ -10560,7 +10236,7 @@ func (*RebuildVSchemaGraphRequest) ProtoMessage() {}
func (x *RebuildVSchemaGraphRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[161]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10590,11 +10266,9 @@ type RebuildVSchemaGraphResponse struct {
func (x *RebuildVSchemaGraphResponse) Reset() {
*x = RebuildVSchemaGraphResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[162]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[162]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RebuildVSchemaGraphResponse) String() string {
@@ -10605,7 +10279,7 @@ func (*RebuildVSchemaGraphResponse) ProtoMessage() {}
func (x *RebuildVSchemaGraphResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[162]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10630,11 +10304,9 @@ type RefreshStateRequest struct {
func (x *RefreshStateRequest) Reset() {
*x = RefreshStateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[163]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[163]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateRequest) String() string {
@@ -10645,7 +10317,7 @@ func (*RefreshStateRequest) ProtoMessage() {}
func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[163]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10675,11 +10347,9 @@ type RefreshStateResponse struct {
func (x *RefreshStateResponse) Reset() {
*x = RefreshStateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[164]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[164]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateResponse) String() string {
@@ -10690,7 +10360,7 @@ func (*RefreshStateResponse) ProtoMessage() {}
func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[164]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10717,11 +10387,9 @@ type RefreshStateByShardRequest struct {
func (x *RefreshStateByShardRequest) Reset() {
*x = RefreshStateByShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[165]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[165]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateByShardRequest) String() string {
@@ -10732,7 +10400,7 @@ func (*RefreshStateByShardRequest) ProtoMessage() {}
func (x *RefreshStateByShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[165]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10780,11 +10448,9 @@ type RefreshStateByShardResponse struct {
func (x *RefreshStateByShardResponse) Reset() {
*x = RefreshStateByShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[166]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[166]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RefreshStateByShardResponse) String() string {
@@ -10795,7 +10461,7 @@ func (*RefreshStateByShardResponse) ProtoMessage() {}
func (x *RefreshStateByShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[166]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10834,11 +10500,9 @@ type ReloadSchemaRequest struct {
func (x *ReloadSchemaRequest) Reset() {
*x = ReloadSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[167]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[167]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaRequest) String() string {
@@ -10849,7 +10513,7 @@ func (*ReloadSchemaRequest) ProtoMessage() {}
func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[167]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10879,11 +10543,9 @@ type ReloadSchemaResponse struct {
func (x *ReloadSchemaResponse) Reset() {
*x = ReloadSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[168]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[168]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaResponse) String() string {
@@ -10894,7 +10556,7 @@ func (*ReloadSchemaResponse) ProtoMessage() {}
func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[168]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10925,11 +10587,9 @@ type ReloadSchemaKeyspaceRequest struct {
func (x *ReloadSchemaKeyspaceRequest) Reset() {
*x = ReloadSchemaKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[169]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[169]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaKeyspaceRequest) String() string {
@@ -10940,7 +10600,7 @@ func (*ReloadSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ReloadSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[169]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -10993,11 +10653,9 @@ type ReloadSchemaKeyspaceResponse struct {
func (x *ReloadSchemaKeyspaceResponse) Reset() {
*x = ReloadSchemaKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[170]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[170]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaKeyspaceResponse) String() string {
@@ -11008,7 +10666,7 @@ func (*ReloadSchemaKeyspaceResponse) ProtoMessage() {}
func (x *ReloadSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[170]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11045,11 +10703,9 @@ type ReloadSchemaShardRequest struct {
func (x *ReloadSchemaShardRequest) Reset() {
*x = ReloadSchemaShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[171]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[171]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaShardRequest) String() string {
@@ -11060,7 +10716,7 @@ func (*ReloadSchemaShardRequest) ProtoMessage() {}
func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[171]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11120,11 +10776,9 @@ type ReloadSchemaShardResponse struct {
func (x *ReloadSchemaShardResponse) Reset() {
*x = ReloadSchemaShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[172]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[172]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReloadSchemaShardResponse) String() string {
@@ -11135,7 +10789,7 @@ func (*ReloadSchemaShardResponse) ProtoMessage() {}
func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[172]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11169,11 +10823,9 @@ type RemoveBackupRequest struct {
func (x *RemoveBackupRequest) Reset() {
*x = RemoveBackupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[173]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[173]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveBackupRequest) String() string {
@@ -11184,7 +10836,7 @@ func (*RemoveBackupRequest) ProtoMessage() {}
func (x *RemoveBackupRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[173]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11228,11 +10880,9 @@ type RemoveBackupResponse struct {
func (x *RemoveBackupResponse) Reset() {
*x = RemoveBackupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[174]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[174]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveBackupResponse) String() string {
@@ -11243,7 +10893,7 @@ func (*RemoveBackupResponse) ProtoMessage() {}
func (x *RemoveBackupResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[174]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11276,11 +10926,9 @@ type RemoveKeyspaceCellRequest struct {
func (x *RemoveKeyspaceCellRequest) Reset() {
*x = RemoveKeyspaceCellRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[175]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[175]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveKeyspaceCellRequest) String() string {
@@ -11291,7 +10939,7 @@ func (*RemoveKeyspaceCellRequest) ProtoMessage() {}
func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[175]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11342,11 +10990,9 @@ type RemoveKeyspaceCellResponse struct {
func (x *RemoveKeyspaceCellResponse) Reset() {
*x = RemoveKeyspaceCellResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[176]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[176]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveKeyspaceCellResponse) String() string {
@@ -11357,7 +11003,7 @@ func (*RemoveKeyspaceCellResponse) ProtoMessage() {}
func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[176]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11391,11 +11037,9 @@ type RemoveShardCellRequest struct {
func (x *RemoveShardCellRequest) Reset() {
*x = RemoveShardCellRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[177]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[177]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveShardCellRequest) String() string {
@@ -11406,7 +11050,7 @@ func (*RemoveShardCellRequest) ProtoMessage() {}
func (x *RemoveShardCellRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[177]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11464,11 +11108,9 @@ type RemoveShardCellResponse struct {
func (x *RemoveShardCellResponse) Reset() {
*x = RemoveShardCellResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[178]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[178]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RemoveShardCellResponse) String() string {
@@ -11479,7 +11121,7 @@ func (*RemoveShardCellResponse) ProtoMessage() {}
func (x *RemoveShardCellResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[178]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11506,11 +11148,9 @@ type ReparentTabletRequest struct {
func (x *ReparentTabletRequest) Reset() {
*x = ReparentTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[179]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[179]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReparentTabletRequest) String() string {
@@ -11521,7 +11161,7 @@ func (*ReparentTabletRequest) ProtoMessage() {}
func (x *ReparentTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[179]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11558,11 +11198,9 @@ type ReparentTabletResponse struct {
func (x *ReparentTabletResponse) Reset() {
*x = ReparentTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[180]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[180]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReparentTabletResponse) String() string {
@@ -11573,7 +11211,7 @@ func (*ReparentTabletResponse) ProtoMessage() {}
func (x *ReparentTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[180]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11637,11 +11275,9 @@ type ReshardCreateRequest struct {
func (x *ReshardCreateRequest) Reset() {
*x = ReshardCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[181]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[181]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReshardCreateRequest) String() string {
@@ -11652,7 +11288,7 @@ func (*ReshardCreateRequest) ProtoMessage() {}
func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[181]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11782,11 +11418,9 @@ type RestoreFromBackupRequest struct {
func (x *RestoreFromBackupRequest) Reset() {
*x = RestoreFromBackupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[182]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[182]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RestoreFromBackupRequest) String() string {
@@ -11797,7 +11431,7 @@ func (*RestoreFromBackupRequest) ProtoMessage() {}
func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[182]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11868,11 +11502,9 @@ type RestoreFromBackupResponse struct {
func (x *RestoreFromBackupResponse) Reset() {
*x = RestoreFromBackupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[183]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[183]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RestoreFromBackupResponse) String() string {
@@ -11883,7 +11515,7 @@ func (*RestoreFromBackupResponse) ProtoMessage() {}
func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[183]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11937,11 +11569,9 @@ type RetrySchemaMigrationRequest struct {
func (x *RetrySchemaMigrationRequest) Reset() {
*x = RetrySchemaMigrationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[184]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[184]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RetrySchemaMigrationRequest) String() string {
@@ -11952,7 +11582,7 @@ func (*RetrySchemaMigrationRequest) ProtoMessage() {}
func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[184]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -11991,11 +11621,9 @@ type RetrySchemaMigrationResponse struct {
func (x *RetrySchemaMigrationResponse) Reset() {
*x = RetrySchemaMigrationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[185]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[185]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RetrySchemaMigrationResponse) String() string {
@@ -12006,7 +11634,7 @@ func (*RetrySchemaMigrationResponse) ProtoMessage() {}
func (x *RetrySchemaMigrationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[185]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12038,11 +11666,9 @@ type RunHealthCheckRequest struct {
func (x *RunHealthCheckRequest) Reset() {
*x = RunHealthCheckRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[186]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[186]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckRequest) String() string {
@@ -12053,7 +11679,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {}
func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[186]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12083,11 +11709,9 @@ type RunHealthCheckResponse struct {
func (x *RunHealthCheckResponse) Reset() {
*x = RunHealthCheckResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[187]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[187]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RunHealthCheckResponse) String() string {
@@ -12098,7 +11722,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {}
func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[187]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12124,11 +11748,9 @@ type SetKeyspaceDurabilityPolicyRequest struct {
func (x *SetKeyspaceDurabilityPolicyRequest) Reset() {
*x = SetKeyspaceDurabilityPolicyRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[188]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[188]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetKeyspaceDurabilityPolicyRequest) String() string {
@@ -12139,7 +11761,7 @@ func (*SetKeyspaceDurabilityPolicyRequest) ProtoMessage() {}
func (x *SetKeyspaceDurabilityPolicyRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[188]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12179,11 +11801,9 @@ type SetKeyspaceDurabilityPolicyResponse struct {
func (x *SetKeyspaceDurabilityPolicyResponse) Reset() {
*x = SetKeyspaceDurabilityPolicyResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[189]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[189]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetKeyspaceDurabilityPolicyResponse) String() string {
@@ -12194,7 +11814,7 @@ func (*SetKeyspaceDurabilityPolicyResponse) ProtoMessage() {}
func (x *SetKeyspaceDurabilityPolicyResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[189]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12227,11 +11847,9 @@ type SetKeyspaceShardingInfoRequest struct {
func (x *SetKeyspaceShardingInfoRequest) Reset() {
*x = SetKeyspaceShardingInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[190]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[190]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetKeyspaceShardingInfoRequest) String() string {
@@ -12242,7 +11860,7 @@ func (*SetKeyspaceShardingInfoRequest) ProtoMessage() {}
func (x *SetKeyspaceShardingInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[190]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12282,11 +11900,9 @@ type SetKeyspaceShardingInfoResponse struct {
func (x *SetKeyspaceShardingInfoResponse) Reset() {
*x = SetKeyspaceShardingInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[191]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[191]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetKeyspaceShardingInfoResponse) String() string {
@@ -12297,7 +11913,7 @@ func (*SetKeyspaceShardingInfoResponse) ProtoMessage() {}
func (x *SetKeyspaceShardingInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[191]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12331,11 +11947,9 @@ type SetShardIsPrimaryServingRequest struct {
func (x *SetShardIsPrimaryServingRequest) Reset() {
*x = SetShardIsPrimaryServingRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[192]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[192]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetShardIsPrimaryServingRequest) String() string {
@@ -12346,7 +11960,7 @@ func (*SetShardIsPrimaryServingRequest) ProtoMessage() {}
func (x *SetShardIsPrimaryServingRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[192]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12393,11 +12007,9 @@ type SetShardIsPrimaryServingResponse struct {
func (x *SetShardIsPrimaryServingResponse) Reset() {
*x = SetShardIsPrimaryServingResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[193]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[193]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetShardIsPrimaryServingResponse) String() string {
@@ -12408,7 +12020,7 @@ func (*SetShardIsPrimaryServingResponse) ProtoMessage() {}
func (x *SetShardIsPrimaryServingResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[193]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12460,11 +12072,9 @@ type SetShardTabletControlRequest struct {
func (x *SetShardTabletControlRequest) Reset() {
*x = SetShardTabletControlRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[194]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[194]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetShardTabletControlRequest) String() string {
@@ -12475,7 +12085,7 @@ func (*SetShardTabletControlRequest) ProtoMessage() {}
func (x *SetShardTabletControlRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[194]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12550,11 +12160,9 @@ type SetShardTabletControlResponse struct {
func (x *SetShardTabletControlResponse) Reset() {
*x = SetShardTabletControlResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[195]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[195]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetShardTabletControlResponse) String() string {
@@ -12565,7 +12173,7 @@ func (*SetShardTabletControlResponse) ProtoMessage() {}
func (x *SetShardTabletControlResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[195]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12598,11 +12206,9 @@ type SetWritableRequest struct {
func (x *SetWritableRequest) Reset() {
*x = SetWritableRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[196]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[196]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetWritableRequest) String() string {
@@ -12613,7 +12219,7 @@ func (*SetWritableRequest) ProtoMessage() {}
func (x *SetWritableRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[196]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12650,11 +12256,9 @@ type SetWritableResponse struct {
func (x *SetWritableResponse) Reset() {
*x = SetWritableResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[197]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[197]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SetWritableResponse) String() string {
@@ -12665,7 +12269,7 @@ func (*SetWritableResponse) ProtoMessage() {}
func (x *SetWritableResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[197]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12692,11 +12296,9 @@ type ShardReplicationAddRequest struct {
func (x *ShardReplicationAddRequest) Reset() {
*x = ShardReplicationAddRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[198]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[198]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationAddRequest) String() string {
@@ -12707,7 +12309,7 @@ func (*ShardReplicationAddRequest) ProtoMessage() {}
func (x *ShardReplicationAddRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[198]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12751,11 +12353,9 @@ type ShardReplicationAddResponse struct {
func (x *ShardReplicationAddResponse) Reset() {
*x = ShardReplicationAddResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[199]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[199]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationAddResponse) String() string {
@@ -12766,7 +12366,7 @@ func (*ShardReplicationAddResponse) ProtoMessage() {}
func (x *ShardReplicationAddResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[199]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12793,11 +12393,9 @@ type ShardReplicationFixRequest struct {
func (x *ShardReplicationFixRequest) Reset() {
*x = ShardReplicationFixRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[200]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[200]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationFixRequest) String() string {
@@ -12808,7 +12406,7 @@ func (*ShardReplicationFixRequest) ProtoMessage() {}
func (x *ShardReplicationFixRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[200]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12857,11 +12455,9 @@ type ShardReplicationFixResponse struct {
func (x *ShardReplicationFixResponse) Reset() {
*x = ShardReplicationFixResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[201]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[201]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationFixResponse) String() string {
@@ -12872,7 +12468,7 @@ func (*ShardReplicationFixResponse) ProtoMessage() {}
func (x *ShardReplicationFixResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[201]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12905,11 +12501,9 @@ type ShardReplicationPositionsRequest struct {
func (x *ShardReplicationPositionsRequest) Reset() {
*x = ShardReplicationPositionsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[202]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[202]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationPositionsRequest) String() string {
@@ -12920,7 +12514,7 @@ func (*ShardReplicationPositionsRequest) ProtoMessage() {}
func (x *ShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[202]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -12964,11 +12558,9 @@ type ShardReplicationPositionsResponse struct {
func (x *ShardReplicationPositionsResponse) Reset() {
*x = ShardReplicationPositionsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[203]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[203]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationPositionsResponse) String() string {
@@ -12979,7 +12571,7 @@ func (*ShardReplicationPositionsResponse) ProtoMessage() {}
func (x *ShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[203]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13020,11 +12612,9 @@ type ShardReplicationRemoveRequest struct {
func (x *ShardReplicationRemoveRequest) Reset() {
*x = ShardReplicationRemoveRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[204]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[204]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationRemoveRequest) String() string {
@@ -13035,7 +12625,7 @@ func (*ShardReplicationRemoveRequest) ProtoMessage() {}
func (x *ShardReplicationRemoveRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[204]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13079,11 +12669,9 @@ type ShardReplicationRemoveResponse struct {
func (x *ShardReplicationRemoveResponse) Reset() {
*x = ShardReplicationRemoveResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[205]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[205]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ShardReplicationRemoveResponse) String() string {
@@ -13094,7 +12682,7 @@ func (*ShardReplicationRemoveResponse) ProtoMessage() {}
func (x *ShardReplicationRemoveResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[205]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13120,11 +12708,9 @@ type SleepTabletRequest struct {
func (x *SleepTabletRequest) Reset() {
*x = SleepTabletRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[206]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[206]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SleepTabletRequest) String() string {
@@ -13135,7 +12721,7 @@ func (*SleepTabletRequest) ProtoMessage() {}
func (x *SleepTabletRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[206]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13172,11 +12758,9 @@ type SleepTabletResponse struct {
func (x *SleepTabletResponse) Reset() {
*x = SleepTabletResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[207]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[207]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SleepTabletResponse) String() string {
@@ -13187,7 +12771,7 @@ func (*SleepTabletResponse) ProtoMessage() {}
func (x *SleepTabletResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[207]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13222,11 +12806,9 @@ type SourceShardAddRequest struct {
func (x *SourceShardAddRequest) Reset() {
*x = SourceShardAddRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[208]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[208]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SourceShardAddRequest) String() string {
@@ -13237,7 +12819,7 @@ func (*SourceShardAddRequest) ProtoMessage() {}
func (x *SourceShardAddRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[208]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13312,11 +12894,9 @@ type SourceShardAddResponse struct {
func (x *SourceShardAddResponse) Reset() {
*x = SourceShardAddResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[209]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[209]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SourceShardAddResponse) String() string {
@@ -13327,7 +12907,7 @@ func (*SourceShardAddResponse) ProtoMessage() {}
func (x *SourceShardAddResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[209]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13361,11 +12941,9 @@ type SourceShardDeleteRequest struct {
func (x *SourceShardDeleteRequest) Reset() {
*x = SourceShardDeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[210]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[210]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SourceShardDeleteRequest) String() string {
@@ -13376,7 +12954,7 @@ func (*SourceShardDeleteRequest) ProtoMessage() {}
func (x *SourceShardDeleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[210]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13423,11 +13001,9 @@ type SourceShardDeleteResponse struct {
func (x *SourceShardDeleteResponse) Reset() {
*x = SourceShardDeleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[211]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[211]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SourceShardDeleteResponse) String() string {
@@ -13438,7 +13014,7 @@ func (*SourceShardDeleteResponse) ProtoMessage() {}
func (x *SourceShardDeleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[211]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13470,11 +13046,9 @@ type StartReplicationRequest struct {
func (x *StartReplicationRequest) Reset() {
*x = StartReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[212]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[212]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationRequest) String() string {
@@ -13485,7 +13059,7 @@ func (*StartReplicationRequest) ProtoMessage() {}
func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[212]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13515,11 +13089,9 @@ type StartReplicationResponse struct {
func (x *StartReplicationResponse) Reset() {
*x = StartReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[213]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[213]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StartReplicationResponse) String() string {
@@ -13530,7 +13102,7 @@ func (*StartReplicationResponse) ProtoMessage() {}
func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[213]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13555,11 +13127,9 @@ type StopReplicationRequest struct {
func (x *StopReplicationRequest) Reset() {
*x = StopReplicationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[214]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[214]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationRequest) String() string {
@@ -13570,7 +13140,7 @@ func (*StopReplicationRequest) ProtoMessage() {}
func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[214]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13600,11 +13170,9 @@ type StopReplicationResponse struct {
func (x *StopReplicationResponse) Reset() {
*x = StopReplicationResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[215]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[215]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StopReplicationResponse) String() string {
@@ -13615,7 +13183,7 @@ func (*StopReplicationResponse) ProtoMessage() {}
func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[215]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13642,11 +13210,9 @@ type TabletExternallyReparentedRequest struct {
func (x *TabletExternallyReparentedRequest) Reset() {
*x = TabletExternallyReparentedRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[216]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[216]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletExternallyReparentedRequest) String() string {
@@ -13657,7 +13223,7 @@ func (*TabletExternallyReparentedRequest) ProtoMessage() {}
func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[216]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13692,11 +13258,9 @@ type TabletExternallyReparentedResponse struct {
func (x *TabletExternallyReparentedResponse) Reset() {
*x = TabletExternallyReparentedResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[217]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[217]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TabletExternallyReparentedResponse) String() string {
@@ -13707,7 +13271,7 @@ func (*TabletExternallyReparentedResponse) ProtoMessage() {}
func (x *TabletExternallyReparentedResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[217]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13761,11 +13325,9 @@ type UpdateCellInfoRequest struct {
func (x *UpdateCellInfoRequest) Reset() {
*x = UpdateCellInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[218]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[218]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateCellInfoRequest) String() string {
@@ -13776,7 +13338,7 @@ func (*UpdateCellInfoRequest) ProtoMessage() {}
func (x *UpdateCellInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[218]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13816,11 +13378,9 @@ type UpdateCellInfoResponse struct {
func (x *UpdateCellInfoResponse) Reset() {
*x = UpdateCellInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[219]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[219]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateCellInfoResponse) String() string {
@@ -13831,7 +13391,7 @@ func (*UpdateCellInfoResponse) ProtoMessage() {}
func (x *UpdateCellInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[219]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13871,11 +13431,9 @@ type UpdateCellsAliasRequest struct {
func (x *UpdateCellsAliasRequest) Reset() {
*x = UpdateCellsAliasRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[220]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[220]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateCellsAliasRequest) String() string {
@@ -13886,7 +13444,7 @@ func (*UpdateCellsAliasRequest) ProtoMessage() {}
func (x *UpdateCellsAliasRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[220]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13926,11 +13484,9 @@ type UpdateCellsAliasResponse struct {
func (x *UpdateCellsAliasResponse) Reset() {
*x = UpdateCellsAliasResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[221]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[221]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UpdateCellsAliasResponse) String() string {
@@ -13941,7 +13497,7 @@ func (*UpdateCellsAliasResponse) ProtoMessage() {}
func (x *UpdateCellsAliasResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[221]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -13980,11 +13536,9 @@ type ValidateRequest struct {
func (x *ValidateRequest) Reset() {
*x = ValidateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[222]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[222]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateRequest) String() string {
@@ -13995,7 +13549,7 @@ func (*ValidateRequest) ProtoMessage() {}
func (x *ValidateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[222]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14028,11 +13582,9 @@ type ValidateResponse struct {
func (x *ValidateResponse) Reset() {
*x = ValidateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[223]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[223]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateResponse) String() string {
@@ -14043,7 +13595,7 @@ func (*ValidateResponse) ProtoMessage() {}
func (x *ValidateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[223]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14083,11 +13635,9 @@ type ValidateKeyspaceRequest struct {
func (x *ValidateKeyspaceRequest) Reset() {
*x = ValidateKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[224]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[224]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateKeyspaceRequest) String() string {
@@ -14098,7 +13648,7 @@ func (*ValidateKeyspaceRequest) ProtoMessage() {}
func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[224]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14138,11 +13688,9 @@ type ValidateKeyspaceResponse struct {
func (x *ValidateKeyspaceResponse) Reset() {
*x = ValidateKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[225]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[225]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateKeyspaceResponse) String() string {
@@ -14153,7 +13701,7 @@ func (*ValidateKeyspaceResponse) ProtoMessage() {}
func (x *ValidateKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[225]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14196,11 +13744,9 @@ type ValidateSchemaKeyspaceRequest struct {
func (x *ValidateSchemaKeyspaceRequest) Reset() {
*x = ValidateSchemaKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[226]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[226]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateSchemaKeyspaceRequest) String() string {
@@ -14211,7 +13757,7 @@ func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[226]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14272,11 +13818,9 @@ type ValidateSchemaKeyspaceResponse struct {
func (x *ValidateSchemaKeyspaceResponse) Reset() {
*x = ValidateSchemaKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[227]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[227]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateSchemaKeyspaceResponse) String() string {
@@ -14287,7 +13831,7 @@ func (*ValidateSchemaKeyspaceResponse) ProtoMessage() {}
func (x *ValidateSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[227]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14328,11 +13872,9 @@ type ValidateShardRequest struct {
func (x *ValidateShardRequest) Reset() {
*x = ValidateShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[228]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[228]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateShardRequest) String() string {
@@ -14343,7 +13885,7 @@ func (*ValidateShardRequest) ProtoMessage() {}
func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[228]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14389,11 +13931,9 @@ type ValidateShardResponse struct {
func (x *ValidateShardResponse) Reset() {
*x = ValidateShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[229]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[229]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateShardResponse) String() string {
@@ -14404,7 +13944,7 @@ func (*ValidateShardResponse) ProtoMessage() {}
func (x *ValidateShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[229]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14436,11 +13976,9 @@ type ValidateVersionKeyspaceRequest struct {
func (x *ValidateVersionKeyspaceRequest) Reset() {
*x = ValidateVersionKeyspaceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[230]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[230]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionKeyspaceRequest) String() string {
@@ -14451,7 +13989,7 @@ func (*ValidateVersionKeyspaceRequest) ProtoMessage() {}
func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[230]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14484,11 +14022,9 @@ type ValidateVersionKeyspaceResponse struct {
func (x *ValidateVersionKeyspaceResponse) Reset() {
*x = ValidateVersionKeyspaceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[231]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[231]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionKeyspaceResponse) String() string {
@@ -14499,7 +14035,7 @@ func (*ValidateVersionKeyspaceResponse) ProtoMessage() {}
func (x *ValidateVersionKeyspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[231]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14539,11 +14075,9 @@ type ValidateVersionShardRequest struct {
func (x *ValidateVersionShardRequest) Reset() {
*x = ValidateVersionShardRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[232]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[232]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionShardRequest) String() string {
@@ -14554,7 +14088,7 @@ func (*ValidateVersionShardRequest) ProtoMessage() {}
func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[232]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14593,11 +14127,9 @@ type ValidateVersionShardResponse struct {
func (x *ValidateVersionShardResponse) Reset() {
*x = ValidateVersionShardResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[233]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[233]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVersionShardResponse) String() string {
@@ -14608,7 +14140,7 @@ func (*ValidateVersionShardResponse) ProtoMessage() {}
func (x *ValidateVersionShardResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[233]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14643,11 +14175,9 @@ type ValidateVSchemaRequest struct {
func (x *ValidateVSchemaRequest) Reset() {
*x = ValidateVSchemaRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[234]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[234]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVSchemaRequest) String() string {
@@ -14658,7 +14188,7 @@ func (*ValidateVSchemaRequest) ProtoMessage() {}
func (x *ValidateVSchemaRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[234]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14712,11 +14242,9 @@ type ValidateVSchemaResponse struct {
func (x *ValidateVSchemaResponse) Reset() {
*x = ValidateVSchemaResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[235]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[235]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ValidateVSchemaResponse) String() string {
@@ -14727,7 +14255,7 @@ func (*ValidateVSchemaResponse) ProtoMessage() {}
func (x *ValidateVSchemaResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[235]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -14845,11 +14373,9 @@ type VDiffCreateRequest struct {
func (x *VDiffCreateRequest) Reset() {
*x = VDiffCreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[236]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[236]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffCreateRequest) String() string {
@@ -14860,7 +14386,7 @@ func (*VDiffCreateRequest) ProtoMessage() {}
func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[236]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15041,11 +14567,9 @@ type VDiffCreateResponse struct {
func (x *VDiffCreateResponse) Reset() {
*x = VDiffCreateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[237]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[237]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffCreateResponse) String() string {
@@ -15056,7 +14580,7 @@ func (*VDiffCreateResponse) ProtoMessage() {}
func (x *VDiffCreateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[237]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15091,11 +14615,9 @@ type VDiffDeleteRequest struct {
func (x *VDiffDeleteRequest) Reset() {
*x = VDiffDeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[238]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[238]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffDeleteRequest) String() string {
@@ -15106,7 +14628,7 @@ func (*VDiffDeleteRequest) ProtoMessage() {}
func (x *VDiffDeleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[238]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15150,11 +14672,9 @@ type VDiffDeleteResponse struct {
func (x *VDiffDeleteResponse) Reset() {
*x = VDiffDeleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[239]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[239]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffDeleteResponse) String() string {
@@ -15165,7 +14685,7 @@ func (*VDiffDeleteResponse) ProtoMessage() {}
func (x *VDiffDeleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[239]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15193,11 +14713,9 @@ type VDiffResumeRequest struct {
func (x *VDiffResumeRequest) Reset() {
*x = VDiffResumeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[240]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[240]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffResumeRequest) String() string {
@@ -15208,7 +14726,7 @@ func (*VDiffResumeRequest) ProtoMessage() {}
func (x *VDiffResumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[240]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15259,11 +14777,9 @@ type VDiffResumeResponse struct {
func (x *VDiffResumeResponse) Reset() {
*x = VDiffResumeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[241]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[241]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffResumeResponse) String() string {
@@ -15274,7 +14790,7 @@ func (*VDiffResumeResponse) ProtoMessage() {}
func (x *VDiffResumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[241]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15302,11 +14818,9 @@ type VDiffShowRequest struct {
func (x *VDiffShowRequest) Reset() {
*x = VDiffShowRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[242]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[242]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffShowRequest) String() string {
@@ -15317,7 +14831,7 @@ func (*VDiffShowRequest) ProtoMessage() {}
func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[242]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15364,11 +14878,9 @@ type VDiffShowResponse struct {
func (x *VDiffShowResponse) Reset() {
*x = VDiffShowResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[243]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[243]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffShowResponse) String() string {
@@ -15379,7 +14891,7 @@ func (*VDiffShowResponse) ProtoMessage() {}
func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[243]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15414,11 +14926,9 @@ type VDiffStopRequest struct {
func (x *VDiffStopRequest) Reset() {
*x = VDiffStopRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[244]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[244]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffStopRequest) String() string {
@@ -15429,7 +14939,7 @@ func (*VDiffStopRequest) ProtoMessage() {}
func (x *VDiffStopRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[244]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15480,11 +14990,9 @@ type VDiffStopResponse struct {
func (x *VDiffStopResponse) Reset() {
*x = VDiffStopResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[245]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[245]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VDiffStopResponse) String() string {
@@ -15495,7 +15003,7 @@ func (*VDiffStopResponse) ProtoMessage() {}
func (x *VDiffStopResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[245]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15528,11 +15036,9 @@ type WorkflowDeleteRequest struct {
func (x *WorkflowDeleteRequest) Reset() {
*x = WorkflowDeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[246]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[246]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowDeleteRequest) String() string {
@@ -15543,7 +15049,7 @@ func (*WorkflowDeleteRequest) ProtoMessage() {}
func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[246]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15611,11 +15117,9 @@ type WorkflowDeleteResponse struct {
func (x *WorkflowDeleteResponse) Reset() {
*x = WorkflowDeleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[247]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[247]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowDeleteResponse) String() string {
@@ -15626,7 +15130,7 @@ func (*WorkflowDeleteResponse) ProtoMessage() {}
func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[247]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15667,11 +15171,9 @@ type WorkflowStatusRequest struct {
func (x *WorkflowStatusRequest) Reset() {
*x = WorkflowStatusRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[248]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[248]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowStatusRequest) String() string {
@@ -15682,7 +15184,7 @@ func (*WorkflowStatusRequest) ProtoMessage() {}
func (x *WorkflowStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[248]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15731,11 +15233,9 @@ type WorkflowStatusResponse struct {
func (x *WorkflowStatusResponse) Reset() {
*x = WorkflowStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[249]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[249]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowStatusResponse) String() string {
@@ -15746,7 +15246,7 @@ func (*WorkflowStatusResponse) ProtoMessage() {}
func (x *WorkflowStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[249]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15803,11 +15303,9 @@ type WorkflowSwitchTrafficRequest struct {
func (x *WorkflowSwitchTrafficRequest) Reset() {
*x = WorkflowSwitchTrafficRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[250]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[250]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowSwitchTrafficRequest) String() string {
@@ -15818,7 +15316,7 @@ func (*WorkflowSwitchTrafficRequest) ProtoMessage() {}
func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[250]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -15930,11 +15428,9 @@ type WorkflowSwitchTrafficResponse struct {
func (x *WorkflowSwitchTrafficResponse) Reset() {
*x = WorkflowSwitchTrafficResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[251]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[251]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowSwitchTrafficResponse) String() string {
@@ -15945,7 +15441,7 @@ func (*WorkflowSwitchTrafficResponse) ProtoMessage() {}
func (x *WorkflowSwitchTrafficResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[251]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16001,11 +15497,9 @@ type WorkflowUpdateRequest struct {
func (x *WorkflowUpdateRequest) Reset() {
*x = WorkflowUpdateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[252]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[252]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowUpdateRequest) String() string {
@@ -16016,7 +15510,7 @@ func (*WorkflowUpdateRequest) ProtoMessage() {}
func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[252]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16056,11 +15550,9 @@ type WorkflowUpdateResponse struct {
func (x *WorkflowUpdateResponse) Reset() {
*x = WorkflowUpdateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[253]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[253]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowUpdateResponse) String() string {
@@ -16071,7 +15563,7 @@ func (*WorkflowUpdateResponse) ProtoMessage() {}
func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[253]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16108,11 +15600,9 @@ type GetMirrorRulesRequest struct {
func (x *GetMirrorRulesRequest) Reset() {
*x = GetMirrorRulesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[254]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[254]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetMirrorRulesRequest) String() string {
@@ -16123,7 +15613,7 @@ func (*GetMirrorRulesRequest) ProtoMessage() {}
func (x *GetMirrorRulesRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[254]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16148,11 +15638,9 @@ type GetMirrorRulesResponse struct {
func (x *GetMirrorRulesResponse) Reset() {
*x = GetMirrorRulesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[255]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[255]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetMirrorRulesResponse) String() string {
@@ -16163,7 +15651,7 @@ func (*GetMirrorRulesResponse) ProtoMessage() {}
func (x *GetMirrorRulesResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[255]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16198,11 +15686,9 @@ type WorkflowMirrorTrafficRequest struct {
func (x *WorkflowMirrorTrafficRequest) Reset() {
*x = WorkflowMirrorTrafficRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[256]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[256]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowMirrorTrafficRequest) String() string {
@@ -16213,7 +15699,7 @@ func (*WorkflowMirrorTrafficRequest) ProtoMessage() {}
func (x *WorkflowMirrorTrafficRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[256]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16268,11 +15754,9 @@ type WorkflowMirrorTrafficResponse struct {
func (x *WorkflowMirrorTrafficResponse) Reset() {
*x = WorkflowMirrorTrafficResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[257]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[257]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowMirrorTrafficResponse) String() string {
@@ -16283,7 +15767,7 @@ func (*WorkflowMirrorTrafficResponse) ProtoMessage() {}
func (x *WorkflowMirrorTrafficResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[257]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16330,11 +15814,9 @@ type Workflow_ReplicationLocation struct {
func (x *Workflow_ReplicationLocation) Reset() {
*x = Workflow_ReplicationLocation{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[260]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[260]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_ReplicationLocation) String() string {
@@ -16345,7 +15827,7 @@ func (*Workflow_ReplicationLocation) ProtoMessage() {}
func (x *Workflow_ReplicationLocation) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[260]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16386,11 +15868,9 @@ type Workflow_ShardStream struct {
func (x *Workflow_ShardStream) Reset() {
*x = Workflow_ShardStream{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[261]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[261]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_ShardStream) String() string {
@@ -16401,7 +15881,7 @@ func (*Workflow_ShardStream) ProtoMessage() {}
func (x *Workflow_ShardStream) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[261]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16474,11 +15954,9 @@ type Workflow_Stream struct {
func (x *Workflow_Stream) Reset() {
*x = Workflow_Stream{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[262]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[262]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_Stream) String() string {
@@ -16489,7 +15967,7 @@ func (*Workflow_Stream) ProtoMessage() {}
func (x *Workflow_Stream) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[262]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16656,11 +16134,9 @@ type Workflow_Stream_CopyState struct {
func (x *Workflow_Stream_CopyState) Reset() {
*x = Workflow_Stream_CopyState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[263]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[263]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_Stream_CopyState) String() string {
@@ -16671,7 +16147,7 @@ func (*Workflow_Stream_CopyState) ProtoMessage() {}
func (x *Workflow_Stream_CopyState) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[263]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16724,11 +16200,9 @@ type Workflow_Stream_Log struct {
func (x *Workflow_Stream_Log) Reset() {
*x = Workflow_Stream_Log{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[264]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[264]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_Stream_Log) String() string {
@@ -16739,7 +16213,7 @@ func (*Workflow_Stream_Log) ProtoMessage() {}
func (x *Workflow_Stream_Log) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[264]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16821,11 +16295,9 @@ type Workflow_Stream_ThrottlerStatus struct {
func (x *Workflow_Stream_ThrottlerStatus) Reset() {
*x = Workflow_Stream_ThrottlerStatus{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[265]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[265]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Workflow_Stream_ThrottlerStatus) String() string {
@@ -16836,7 +16308,7 @@ func (*Workflow_Stream_ThrottlerStatus) ProtoMessage() {}
func (x *Workflow_Stream_ThrottlerStatus) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[265]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16875,11 +16347,9 @@ type ApplyVSchemaResponse_ParamList struct {
func (x *ApplyVSchemaResponse_ParamList) Reset() {
*x = ApplyVSchemaResponse_ParamList{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[268]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[268]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ApplyVSchemaResponse_ParamList) String() string {
@@ -16890,7 +16360,7 @@ func (*ApplyVSchemaResponse_ParamList) ProtoMessage() {}
func (x *ApplyVSchemaResponse_ParamList) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[268]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16922,11 +16392,9 @@ type GetSrvKeyspaceNamesResponse_NameList struct {
func (x *GetSrvKeyspaceNamesResponse_NameList) Reset() {
*x = GetSrvKeyspaceNamesResponse_NameList{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[280]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[280]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetSrvKeyspaceNamesResponse_NameList) String() string {
@@ -16937,7 +16405,7 @@ func (*GetSrvKeyspaceNamesResponse_NameList) ProtoMessage() {}
func (x *GetSrvKeyspaceNamesResponse_NameList) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[280]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -16971,11 +16439,9 @@ type MoveTablesCreateResponse_TabletInfo struct {
func (x *MoveTablesCreateResponse_TabletInfo) Reset() {
*x = MoveTablesCreateResponse_TabletInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[284]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[284]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *MoveTablesCreateResponse_TabletInfo) String() string {
@@ -16986,7 +16452,7 @@ func (*MoveTablesCreateResponse_TabletInfo) ProtoMessage() {}
func (x *MoveTablesCreateResponse_TabletInfo) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[284]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -17027,11 +16493,9 @@ type WorkflowDeleteResponse_TabletInfo struct {
func (x *WorkflowDeleteResponse_TabletInfo) Reset() {
*x = WorkflowDeleteResponse_TabletInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[294]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[294]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowDeleteResponse_TabletInfo) String() string {
@@ -17042,7 +16506,7 @@ func (*WorkflowDeleteResponse_TabletInfo) ProtoMessage() {}
func (x *WorkflowDeleteResponse_TabletInfo) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[294]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -17086,11 +16550,9 @@ type WorkflowStatusResponse_TableCopyState struct {
func (x *WorkflowStatusResponse_TableCopyState) Reset() {
*x = WorkflowStatusResponse_TableCopyState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[295]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[295]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowStatusResponse_TableCopyState) String() string {
@@ -17101,7 +16563,7 @@ func (*WorkflowStatusResponse_TableCopyState) ProtoMessage() {}
func (x *WorkflowStatusResponse_TableCopyState) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[295]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -17173,11 +16635,9 @@ type WorkflowStatusResponse_ShardStreamState struct {
func (x *WorkflowStatusResponse_ShardStreamState) Reset() {
*x = WorkflowStatusResponse_ShardStreamState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[296]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[296]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowStatusResponse_ShardStreamState) String() string {
@@ -17188,7 +16648,7 @@ func (*WorkflowStatusResponse_ShardStreamState) ProtoMessage() {}
func (x *WorkflowStatusResponse_ShardStreamState) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[296]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -17255,11 +16715,9 @@ type WorkflowStatusResponse_ShardStreams struct {
func (x *WorkflowStatusResponse_ShardStreams) Reset() {
*x = WorkflowStatusResponse_ShardStreams{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[297]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[297]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowStatusResponse_ShardStreams) String() string {
@@ -17270,7 +16728,7 @@ func (*WorkflowStatusResponse_ShardStreams) ProtoMessage() {}
func (x *WorkflowStatusResponse_ShardStreams) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[297]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -17305,11 +16763,9 @@ type WorkflowUpdateResponse_TabletInfo struct {
func (x *WorkflowUpdateResponse_TabletInfo) Reset() {
*x = WorkflowUpdateResponse_TabletInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtctldata_proto_msgTypes[300]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtctldata_proto_msgTypes[300]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkflowUpdateResponse_TabletInfo) String() string {
@@ -17320,7 +16776,7 @@ func (*WorkflowUpdateResponse_TabletInfo) ProtoMessage() {}
func (x *WorkflowUpdateResponse_TabletInfo) ProtoReflect() protoreflect.Message {
mi := &file_vtctldata_proto_msgTypes[300]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -20547,3272 +20003,6 @@ func file_vtctldata_proto_init() {
if File_vtctldata_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vtctldata_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteVtctlCommandRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteVtctlCommandResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*TableMaterializeSettings); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*MaterializeSettings); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*Keyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*SchemaMigration); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*Shard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowOptions); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*AddCellInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*AddCellInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*AddCellsAliasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*AddCellsAliasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyKeyspaceRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyKeyspaceRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyShardRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyShardRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*ApplySchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*ApplySchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyVSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*BackupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*BackupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*BackupShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*CancelSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*CancelSchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTabletTagsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTabletTagsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTabletTypeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*ChangeTabletTypeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[33].Exporter = func(v any, i int) any {
- switch v := v.(*CheckThrottlerResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[34].Exporter = func(v any, i int) any {
- switch v := v.(*CleanupSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[35].Exporter = func(v any, i int) any {
- switch v := v.(*CleanupSchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[36].Exporter = func(v any, i int) any {
- switch v := v.(*CompleteSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[37].Exporter = func(v any, i int) any {
- switch v := v.(*CompleteSchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[38].Exporter = func(v any, i int) any {
- switch v := v.(*CreateKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[39].Exporter = func(v any, i int) any {
- switch v := v.(*CreateKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[40].Exporter = func(v any, i int) any {
- switch v := v.(*CreateShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[41].Exporter = func(v any, i int) any {
- switch v := v.(*CreateShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[42].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteCellInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[43].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteCellInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[44].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteCellsAliasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[45].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteCellsAliasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[46].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[47].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[48].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteShardsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[49].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteShardsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[50].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteSrvVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[51].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteSrvVSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[52].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTabletsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[53].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteTabletsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[54].Exporter = func(v any, i int) any {
- switch v := v.(*EmergencyReparentShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[55].Exporter = func(v any, i int) any {
- switch v := v.(*EmergencyReparentShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[56].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAppRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[57].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsAppResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[58].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsDBARequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[59].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteFetchAsDBAResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[60].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteHookRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[61].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteHookResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[62].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteMultiFetchAsDBARequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[63].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteMultiFetchAsDBAResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[64].Exporter = func(v any, i int) any {
- switch v := v.(*FindAllShardsInKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[65].Exporter = func(v any, i int) any {
- switch v := v.(*FindAllShardsInKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[66].Exporter = func(v any, i int) any {
- switch v := v.(*ForceCutOverSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[67].Exporter = func(v any, i int) any {
- switch v := v.(*ForceCutOverSchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[68].Exporter = func(v any, i int) any {
- switch v := v.(*GetBackupsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[69].Exporter = func(v any, i int) any {
- switch v := v.(*GetBackupsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[70].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[71].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[72].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfoNamesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[73].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellInfoNamesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[74].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellsAliasesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[75].Exporter = func(v any, i int) any {
- switch v := v.(*GetCellsAliasesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[76].Exporter = func(v any, i int) any {
- switch v := v.(*GetFullStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[77].Exporter = func(v any, i int) any {
- switch v := v.(*GetFullStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[78].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspacesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[79].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspacesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[80].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[81].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[82].Exporter = func(v any, i int) any {
- switch v := v.(*GetPermissionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[83].Exporter = func(v any, i int) any {
- switch v := v.(*GetPermissionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[84].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspaceRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[85].Exporter = func(v any, i int) any {
- switch v := v.(*GetKeyspaceRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[86].Exporter = func(v any, i int) any {
- switch v := v.(*GetRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[87].Exporter = func(v any, i int) any {
- switch v := v.(*GetRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[88].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[89].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[90].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaMigrationsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[91].Exporter = func(v any, i int) any {
- switch v := v.(*GetSchemaMigrationsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[92].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[93].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[94].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[95].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[96].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardRoutingRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[97].Exporter = func(v any, i int) any {
- switch v := v.(*GetShardRoutingRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[98].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspaceNamesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[99].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspaceNamesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[100].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspacesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[101].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspacesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[102].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateThrottlerConfigRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[103].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateThrottlerConfigResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[104].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[105].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[106].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[107].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvVSchemasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[108].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[109].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[110].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[111].Exporter = func(v any, i int) any {
- switch v := v.(*GetTabletsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[112].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[113].Exporter = func(v any, i int) any {
- switch v := v.(*GetThrottlerStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[114].Exporter = func(v any, i int) any {
- switch v := v.(*GetTopologyPathRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[115].Exporter = func(v any, i int) any {
- switch v := v.(*GetTopologyPathResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[116].Exporter = func(v any, i int) any {
- switch v := v.(*TopologyCell); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[117].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[118].Exporter = func(v any, i int) any {
- switch v := v.(*GetUnresolvedTransactionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[119].Exporter = func(v any, i int) any {
- switch v := v.(*GetTransactionInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[120].Exporter = func(v any, i int) any {
- switch v := v.(*ShardTransactionState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[121].Exporter = func(v any, i int) any {
- switch v := v.(*GetTransactionInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[122].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[123].Exporter = func(v any, i int) any {
- switch v := v.(*ConcludeTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[124].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[125].Exporter = func(v any, i int) any {
- switch v := v.(*GetVersionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[126].Exporter = func(v any, i int) any {
- switch v := v.(*GetVersionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[127].Exporter = func(v any, i int) any {
- switch v := v.(*GetVSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[128].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[129].Exporter = func(v any, i int) any {
- switch v := v.(*GetWorkflowsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[130].Exporter = func(v any, i int) any {
- switch v := v.(*InitShardPrimaryRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[131].Exporter = func(v any, i int) any {
- switch v := v.(*InitShardPrimaryResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[132].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[133].Exporter = func(v any, i int) any {
- switch v := v.(*LaunchSchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[134].Exporter = func(v any, i int) any {
- switch v := v.(*LookupVindexCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[135].Exporter = func(v any, i int) any {
- switch v := v.(*LookupVindexCreateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[136].Exporter = func(v any, i int) any {
- switch v := v.(*LookupVindexExternalizeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[137].Exporter = func(v any, i int) any {
- switch v := v.(*LookupVindexExternalizeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[138].Exporter = func(v any, i int) any {
- switch v := v.(*MaterializeCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[139].Exporter = func(v any, i int) any {
- switch v := v.(*MaterializeCreateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[140].Exporter = func(v any, i int) any {
- switch v := v.(*MigrateCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[141].Exporter = func(v any, i int) any {
- switch v := v.(*MigrateCompleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[142].Exporter = func(v any, i int) any {
- switch v := v.(*MigrateCompleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[143].Exporter = func(v any, i int) any {
- switch v := v.(*MountRegisterRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[144].Exporter = func(v any, i int) any {
- switch v := v.(*MountRegisterResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[145].Exporter = func(v any, i int) any {
- switch v := v.(*MountUnregisterRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[146].Exporter = func(v any, i int) any {
- switch v := v.(*MountUnregisterResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[147].Exporter = func(v any, i int) any {
- switch v := v.(*MountShowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[148].Exporter = func(v any, i int) any {
- switch v := v.(*MountShowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[149].Exporter = func(v any, i int) any {
- switch v := v.(*MountListRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[150].Exporter = func(v any, i int) any {
- switch v := v.(*MountListResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[151].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[152].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCreateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[153].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCompleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[154].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCompleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[155].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[156].Exporter = func(v any, i int) any {
- switch v := v.(*PingTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[157].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedReparentShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[158].Exporter = func(v any, i int) any {
- switch v := v.(*PlannedReparentShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[159].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[160].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildKeyspaceGraphResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[161].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildVSchemaGraphRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[162].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildVSchemaGraphResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[163].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[164].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[165].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateByShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[166].Exporter = func(v any, i int) any {
- switch v := v.(*RefreshStateByShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[167].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[168].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[169].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[170].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[171].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[172].Exporter = func(v any, i int) any {
- switch v := v.(*ReloadSchemaShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[173].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveBackupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[174].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveBackupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[175].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[176].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveKeyspaceCellResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[177].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveShardCellRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[178].Exporter = func(v any, i int) any {
- switch v := v.(*RemoveShardCellResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[179].Exporter = func(v any, i int) any {
- switch v := v.(*ReparentTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[180].Exporter = func(v any, i int) any {
- switch v := v.(*ReparentTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[181].Exporter = func(v any, i int) any {
- switch v := v.(*ReshardCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[182].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[183].Exporter = func(v any, i int) any {
- switch v := v.(*RestoreFromBackupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[184].Exporter = func(v any, i int) any {
- switch v := v.(*RetrySchemaMigrationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[185].Exporter = func(v any, i int) any {
- switch v := v.(*RetrySchemaMigrationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[186].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[187].Exporter = func(v any, i int) any {
- switch v := v.(*RunHealthCheckResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[188].Exporter = func(v any, i int) any {
- switch v := v.(*SetKeyspaceDurabilityPolicyRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[189].Exporter = func(v any, i int) any {
- switch v := v.(*SetKeyspaceDurabilityPolicyResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[190].Exporter = func(v any, i int) any {
- switch v := v.(*SetKeyspaceShardingInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[191].Exporter = func(v any, i int) any {
- switch v := v.(*SetKeyspaceShardingInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[192].Exporter = func(v any, i int) any {
- switch v := v.(*SetShardIsPrimaryServingRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[193].Exporter = func(v any, i int) any {
- switch v := v.(*SetShardIsPrimaryServingResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[194].Exporter = func(v any, i int) any {
- switch v := v.(*SetShardTabletControlRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[195].Exporter = func(v any, i int) any {
- switch v := v.(*SetShardTabletControlResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[196].Exporter = func(v any, i int) any {
- switch v := v.(*SetWritableRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[197].Exporter = func(v any, i int) any {
- switch v := v.(*SetWritableResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[198].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationAddRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[199].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationAddResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[200].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationFixRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[201].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationFixResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[202].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationPositionsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[203].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationPositionsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[204].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationRemoveRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[205].Exporter = func(v any, i int) any {
- switch v := v.(*ShardReplicationRemoveResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[206].Exporter = func(v any, i int) any {
- switch v := v.(*SleepTabletRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[207].Exporter = func(v any, i int) any {
- switch v := v.(*SleepTabletResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[208].Exporter = func(v any, i int) any {
- switch v := v.(*SourceShardAddRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[209].Exporter = func(v any, i int) any {
- switch v := v.(*SourceShardAddResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[210].Exporter = func(v any, i int) any {
- switch v := v.(*SourceShardDeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[211].Exporter = func(v any, i int) any {
- switch v := v.(*SourceShardDeleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[212].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[213].Exporter = func(v any, i int) any {
- switch v := v.(*StartReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[214].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[215].Exporter = func(v any, i int) any {
- switch v := v.(*StopReplicationResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[216].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyReparentedRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[217].Exporter = func(v any, i int) any {
- switch v := v.(*TabletExternallyReparentedResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[218].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateCellInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[219].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateCellInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[220].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateCellsAliasRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[221].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateCellsAliasResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[222].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[223].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[224].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[225].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[226].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateSchemaKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[227].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateSchemaKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[228].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[229].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[230].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionKeyspaceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[231].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionKeyspaceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[232].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionShardRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[233].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVersionShardResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[234].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVSchemaRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[235].Exporter = func(v any, i int) any {
- switch v := v.(*ValidateVSchemaResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[236].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[237].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffCreateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[238].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffDeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[239].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffDeleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[240].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResumeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[241].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffResumeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[242].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[243].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffShowResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[244].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffStopRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[245].Exporter = func(v any, i int) any {
- switch v := v.(*VDiffStopResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[246].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowDeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[247].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowDeleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[248].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowStatusRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[249].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[250].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowSwitchTrafficRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[251].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowSwitchTrafficResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[252].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowUpdateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[253].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowUpdateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[254].Exporter = func(v any, i int) any {
- switch v := v.(*GetMirrorRulesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[255].Exporter = func(v any, i int) any {
- switch v := v.(*GetMirrorRulesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[256].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowMirrorTrafficRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[257].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowMirrorTrafficResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[260].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_ReplicationLocation); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[261].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_ShardStream); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[262].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_Stream); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[263].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_Stream_CopyState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[264].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_Stream_Log); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[265].Exporter = func(v any, i int) any {
- switch v := v.(*Workflow_Stream_ThrottlerStatus); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[268].Exporter = func(v any, i int) any {
- switch v := v.(*ApplyVSchemaResponse_ParamList); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[280].Exporter = func(v any, i int) any {
- switch v := v.(*GetSrvKeyspaceNamesResponse_NameList); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[284].Exporter = func(v any, i int) any {
- switch v := v.(*MoveTablesCreateResponse_TabletInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[294].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowDeleteResponse_TabletInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[295].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowStatusResponse_TableCopyState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[296].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowStatusResponse_ShardStreamState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[297].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowStatusResponse_ShardStreams); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtctldata_proto_msgTypes[300].Exporter = func(v any, i int) any {
- switch v := v.(*WorkflowUpdateResponse_TabletInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
file_vtctldata_proto_msgTypes[23].OneofWrappers = []any{}
file_vtctldata_proto_msgTypes[236].OneofWrappers = []any{}
type x struct{}
diff --git a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
index 455819ba614..947b5ce9f43 100644
--- a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
+++ b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vtctldata.proto
package vtctldata
diff --git a/go/vt/proto/vtctlservice/vtctlservice.pb.go b/go/vt/proto/vtctlservice/vtctlservice.pb.go
index cafdee2c15f..9ffe2fa9aae 100644
--- a/go/vt/proto/vtctlservice/vtctlservice.pb.go
+++ b/go/vt/proto/vtctlservice/vtctlservice.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtctlservice.proto
diff --git a/go/vt/proto/vtgate/vtgate.pb.go b/go/vt/proto/vtgate/vtgate.pb.go
index 58392f86bb3..f2b2bc47736 100644
--- a/go/vt/proto/vtgate/vtgate.pb.go
+++ b/go/vt/proto/vtgate/vtgate.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtgate.proto
@@ -231,11 +231,9 @@ type Session struct {
func (x *Session) Reset() {
*x = Session{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Session) String() string {
@@ -246,7 +244,7 @@ func (*Session) ProtoMessage() {}
func (x *Session) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -455,11 +453,9 @@ type PrepareData struct {
func (x *PrepareData) Reset() {
*x = PrepareData{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrepareData) String() string {
@@ -470,7 +466,7 @@ func (*PrepareData) ProtoMessage() {}
func (x *PrepareData) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -513,11 +509,9 @@ type ReadAfterWrite struct {
func (x *ReadAfterWrite) Reset() {
*x = ReadAfterWrite{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ReadAfterWrite) String() string {
@@ -528,7 +522,7 @@ func (*ReadAfterWrite) ProtoMessage() {}
func (x *ReadAfterWrite) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -581,11 +575,9 @@ type ExecuteRequest struct {
func (x *ExecuteRequest) Reset() {
*x = ExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteRequest) String() string {
@@ -596,7 +588,7 @@ func (*ExecuteRequest) ProtoMessage() {}
func (x *ExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -650,11 +642,9 @@ type ExecuteResponse struct {
func (x *ExecuteResponse) Reset() {
*x = ExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteResponse) String() string {
@@ -665,7 +655,7 @@ func (*ExecuteResponse) ProtoMessage() {}
func (x *ExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -718,11 +708,9 @@ type ExecuteBatchRequest struct {
func (x *ExecuteBatchRequest) Reset() {
*x = ExecuteBatchRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteBatchRequest) String() string {
@@ -733,7 +721,7 @@ func (*ExecuteBatchRequest) ProtoMessage() {}
func (x *ExecuteBatchRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -787,11 +775,9 @@ type ExecuteBatchResponse struct {
func (x *ExecuteBatchResponse) Reset() {
*x = ExecuteBatchResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ExecuteBatchResponse) String() string {
@@ -802,7 +788,7 @@ func (*ExecuteBatchResponse) ProtoMessage() {}
func (x *ExecuteBatchResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -855,11 +841,9 @@ type StreamExecuteRequest struct {
func (x *StreamExecuteRequest) Reset() {
*x = StreamExecuteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamExecuteRequest) String() string {
@@ -870,7 +854,7 @@ func (*StreamExecuteRequest) ProtoMessage() {}
func (x *StreamExecuteRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -924,11 +908,9 @@ type StreamExecuteResponse struct {
func (x *StreamExecuteResponse) Reset() {
*x = StreamExecuteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamExecuteResponse) String() string {
@@ -939,7 +921,7 @@ func (*StreamExecuteResponse) ProtoMessage() {}
func (x *StreamExecuteResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -983,11 +965,9 @@ type ResolveTransactionRequest struct {
func (x *ResolveTransactionRequest) Reset() {
*x = ResolveTransactionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResolveTransactionRequest) String() string {
@@ -998,7 +978,7 @@ func (*ResolveTransactionRequest) ProtoMessage() {}
func (x *ResolveTransactionRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1036,11 +1016,9 @@ type ResolveTransactionResponse struct {
func (x *ResolveTransactionResponse) Reset() {
*x = ResolveTransactionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ResolveTransactionResponse) String() string {
@@ -1051,7 +1029,7 @@ func (*ResolveTransactionResponse) ProtoMessage() {}
func (x *ResolveTransactionResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1090,11 +1068,9 @@ type VStreamFlags struct {
func (x *VStreamFlags) Reset() {
*x = VStreamFlags{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamFlags) String() string {
@@ -1105,7 +1081,7 @@ func (*VStreamFlags) ProtoMessage() {}
func (x *VStreamFlags) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1194,11 +1170,9 @@ type VStreamRequest struct {
func (x *VStreamRequest) Reset() {
*x = VStreamRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamRequest) String() string {
@@ -1209,7 +1183,7 @@ func (*VStreamRequest) ProtoMessage() {}
func (x *VStreamRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1270,11 +1244,9 @@ type VStreamResponse struct {
func (x *VStreamResponse) Reset() {
*x = VStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VStreamResponse) String() string {
@@ -1285,7 +1257,7 @@ func (*VStreamResponse) ProtoMessage() {}
func (x *VStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1324,11 +1296,9 @@ type PrepareRequest struct {
func (x *PrepareRequest) Reset() {
*x = PrepareRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrepareRequest) String() string {
@@ -1339,7 +1309,7 @@ func (*PrepareRequest) ProtoMessage() {}
func (x *PrepareRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1393,11 +1363,9 @@ type PrepareResponse struct {
func (x *PrepareResponse) Reset() {
*x = PrepareResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PrepareResponse) String() string {
@@ -1408,7 +1376,7 @@ func (*PrepareResponse) ProtoMessage() {}
func (x *PrepareResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1459,11 +1427,9 @@ type CloseSessionRequest struct {
func (x *CloseSessionRequest) Reset() {
*x = CloseSessionRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CloseSessionRequest) String() string {
@@ -1474,7 +1440,7 @@ func (*CloseSessionRequest) ProtoMessage() {}
func (x *CloseSessionRequest) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1517,11 +1483,9 @@ type CloseSessionResponse struct {
func (x *CloseSessionResponse) Reset() {
*x = CloseSessionResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CloseSessionResponse) String() string {
@@ -1532,7 +1496,7 @@ func (*CloseSessionResponse) ProtoMessage() {}
func (x *CloseSessionResponse) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1569,11 +1533,9 @@ type Session_ShardSession struct {
func (x *Session_ShardSession) Reset() {
*x = Session_ShardSession{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtgate_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtgate_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Session_ShardSession) String() string {
@@ -1584,7 +1546,7 @@ func (*Session_ShardSession) ProtoMessage() {}
func (x *Session_ShardSession) ProtoReflect() protoreflect.Message {
mi := &file_vtgate_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2050,236 +2012,6 @@ func file_vtgate_proto_init() {
if File_vtgate_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vtgate_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Session); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*PrepareData); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*ReadAfterWrite); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteBatchRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*ExecuteBatchResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*StreamExecuteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*StreamExecuteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*ResolveTransactionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ResolveTransactionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamFlags); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*VStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*PrepareRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*PrepareResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*CloseSessionRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*CloseSessionResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtgate_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*Session_ShardSession); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/vtgate/vtgate_vtproto.pb.go b/go/vt/proto/vtgate/vtgate_vtproto.pb.go
index d32eee0428a..5d9393b881c 100644
--- a/go/vt/proto/vtgate/vtgate_vtproto.pb.go
+++ b/go/vt/proto/vtgate/vtgate_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vtgate.proto
package vtgate
diff --git a/go/vt/proto/vtgateservice/vtgateservice.pb.go b/go/vt/proto/vtgateservice/vtgateservice.pb.go
index 165e3c0bbef..3abab1e7dbf 100644
--- a/go/vt/proto/vtgateservice/vtgateservice.pb.go
+++ b/go/vt/proto/vtgateservice/vtgateservice.pb.go
@@ -18,7 +18,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtgateservice.proto
diff --git a/go/vt/proto/vtrpc/vtrpc.pb.go b/go/vt/proto/vtrpc/vtrpc.pb.go
index 802e78ab5d3..6f6a204277c 100644
--- a/go/vt/proto/vtrpc/vtrpc.pb.go
+++ b/go/vt/proto/vtrpc/vtrpc.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vtrpc.proto
@@ -258,11 +258,9 @@ type CallerID struct {
func (x *CallerID) Reset() {
*x = CallerID{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtrpc_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtrpc_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CallerID) String() string {
@@ -273,7 +271,7 @@ func (*CallerID) ProtoMessage() {}
func (x *CallerID) ProtoReflect() protoreflect.Message {
mi := &file_vtrpc_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -331,11 +329,9 @@ type RPCError struct {
func (x *RPCError) Reset() {
*x = RPCError{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vtrpc_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vtrpc_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RPCError) String() string {
@@ -346,7 +342,7 @@ func (*RPCError) ProtoMessage() {}
func (x *RPCError) ProtoReflect() protoreflect.Message {
mi := &file_vtrpc_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -454,32 +450,6 @@ func file_vtrpc_proto_init() {
if File_vtrpc_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vtrpc_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*CallerID); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vtrpc_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*RPCError); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go b/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go
index b518e3bd372..23bc792e9ad 100644
--- a/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go
+++ b/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vtrpc.proto
package vtrpc
diff --git a/go/vt/proto/vttest/vttest.pb.go b/go/vt/proto/vttest/vttest.pb.go
index 8dca7c6f112..ee78cc5231a 100644
--- a/go/vt/proto/vttest/vttest.pb.go
+++ b/go/vt/proto/vttest/vttest.pb.go
@@ -41,7 +41,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vttest.proto
@@ -80,11 +80,9 @@ type Shard struct {
func (x *Shard) Reset() {
*x = Shard{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vttest_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vttest_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Shard) String() string {
@@ -95,7 +93,7 @@ func (*Shard) ProtoMessage() {}
func (x *Shard) ProtoReflect() protoreflect.Message {
mi := &file_vttest_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -142,11 +140,9 @@ type Keyspace struct {
func (x *Keyspace) Reset() {
*x = Keyspace{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vttest_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vttest_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Keyspace) String() string {
@@ -157,7 +153,7 @@ func (*Keyspace) ProtoMessage() {}
func (x *Keyspace) ProtoReflect() protoreflect.Message {
mi := &file_vttest_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -218,11 +214,9 @@ type VTTestTopology struct {
func (x *VTTestTopology) Reset() {
*x = VTTestTopology{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vttest_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vttest_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *VTTestTopology) String() string {
@@ -233,7 +227,7 @@ func (*VTTestTopology) ProtoMessage() {}
func (x *VTTestTopology) ProtoReflect() protoreflect.Message {
mi := &file_vttest_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -351,44 +345,6 @@ func file_vttest_proto_init() {
if File_vttest_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vttest_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Shard); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vttest_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*Keyspace); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vttest_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*VTTestTopology); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/vttest/vttest_vtproto.pb.go b/go/vt/proto/vttest/vttest_vtproto.pb.go
index 84d4b706a7e..b6a887ad41f 100644
--- a/go/vt/proto/vttest/vttest_vtproto.pb.go
+++ b/go/vt/proto/vttest/vttest_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vttest.proto
package vttest
diff --git a/go/vt/proto/vttime/vttime.pb.go b/go/vt/proto/vttime/vttime.pb.go
index af624e5e251..957ca7f0969 100644
--- a/go/vt/proto/vttime/vttime.pb.go
+++ b/go/vt/proto/vttime/vttime.pb.go
@@ -17,7 +17,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
+// protoc-gen-go v1.35.1
// protoc v3.21.3
// source: vttime.proto
@@ -50,11 +50,9 @@ type Time struct {
func (x *Time) Reset() {
*x = Time{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vttime_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vttime_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Time) String() string {
@@ -65,7 +63,7 @@ func (*Time) ProtoMessage() {}
func (x *Time) ProtoReflect() protoreflect.Message {
mi := &file_vttime_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -105,11 +103,9 @@ type Duration struct {
func (x *Duration) Reset() {
*x = Duration{}
- if protoimpl.UnsafeEnabled {
- mi := &file_vttime_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_vttime_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Duration) String() string {
@@ -120,7 +116,7 @@ func (*Duration) ProtoMessage() {}
func (x *Duration) ProtoReflect() protoreflect.Message {
mi := &file_vttime_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -197,32 +193,6 @@ func file_vttime_proto_init() {
if File_vttime_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_vttime_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*Time); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_vttime_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*Duration); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/go/vt/proto/vttime/vttime_vtproto.pb.go b/go/vt/proto/vttime/vttime_vtproto.pb.go
index 16687011e63..08e712e7139 100644
--- a/go/vt/proto/vttime/vttime_vtproto.pb.go
+++ b/go/vt/proto/vttime/vttime_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
+// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87
// source: vttime.proto
package vttime
From 9fdfdb962a6f38b61dc171d0121371ae7be075a0 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Fri, 15 Nov 2024 10:07:58 +0530
Subject: [PATCH 60/78] Fix deadlock in messager and health streamer (#17230)
Signed-off-by: Manan Gupta
---
.../vttablet/tabletserver/health_streamer.go | 60 +++++++++++--------
.../tabletserver/health_streamer_test.go | 40 +++++++++++++
.../vttablet/tabletserver/messager/engine.go | 30 ++++++----
.../tabletserver/messager/engine_test.go | 33 +++++++++-
go/vt/vttablet/tabletserver/schema/engine.go | 8 +++
5 files changed, 134 insertions(+), 37 deletions(-)
diff --git a/go/vt/vttablet/tabletserver/health_streamer.go b/go/vt/vttablet/tabletserver/health_streamer.go
index cfc5ea5e974..f9f65d197b2 100644
--- a/go/vt/vttablet/tabletserver/health_streamer.go
+++ b/go/vt/vttablet/tabletserver/health_streamer.go
@@ -66,11 +66,18 @@ type healthStreamer struct {
degradedThreshold time.Duration
unhealthyThreshold atomic.Int64
- mu sync.Mutex
- ctx context.Context
- cancel context.CancelFunc
- clients map[chan *querypb.StreamHealthResponse]struct{}
- state *querypb.StreamHealthResponse
+ // cancelMu is a mutex used to protect the cancel variable
+ // and for ensuring we don't call setup functions in parallel.
+ cancelMu sync.Mutex
+ ctx context.Context
+ cancel context.CancelFunc
+
+ // fieldsMu is used to protect access to the fields below.
+ // We require two separate mutexes, so that we don't have to acquire the same mutex
+ // in Close and reload that can lead to a deadlock described in https://github.com/vitessio/vitess/issues/17229#issuecomment-2476136610.
+ fieldsMu sync.Mutex
+ clients map[chan *querypb.StreamHealthResponse]struct{}
+ state *querypb.StreamHealthResponse
// isServingPrimary stores if this tablet is currently the serving primary or not.
isServingPrimary bool
@@ -110,8 +117,8 @@ func (hs *healthStreamer) InitDBConfig(target *querypb.Target) {
}
func (hs *healthStreamer) Open() {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.cancelMu.Lock()
+ defer hs.cancelMu.Unlock()
if hs.cancel != nil {
return
@@ -120,8 +127,8 @@ func (hs *healthStreamer) Open() {
}
func (hs *healthStreamer) Close() {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.cancelMu.Lock()
+ defer hs.cancelMu.Unlock()
if hs.cancel != nil {
hs.se.UnregisterNotifier("healthStreamer")
@@ -158,13 +165,16 @@ func (hs *healthStreamer) Stream(ctx context.Context, callback func(*querypb.Str
}
func (hs *healthStreamer) register() (chan *querypb.StreamHealthResponse, context.Context) {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.cancelMu.Lock()
+ defer hs.cancelMu.Unlock()
if hs.cancel == nil {
return nil, nil
}
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
+
ch := make(chan *querypb.StreamHealthResponse, streamHealthBufferSize)
hs.clients[ch] = struct{}{}
@@ -174,15 +184,15 @@ func (hs *healthStreamer) register() (chan *querypb.StreamHealthResponse, contex
}
func (hs *healthStreamer) unregister(ch chan *querypb.StreamHealthResponse) {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
delete(hs.clients, ch)
}
func (hs *healthStreamer) ChangeState(tabletType topodatapb.TabletType, ptsTimestamp time.Time, lag time.Duration, err error, serving bool) {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
hs.state.Target.TabletType = tabletType
if tabletType == topodatapb.TabletType_PRIMARY {
@@ -236,8 +246,8 @@ func (hs *healthStreamer) broadCastToClients(shr *querypb.StreamHealthResponse)
}
func (hs *healthStreamer) AppendDetails(details []*kv) []*kv {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
if hs.state.Target.TabletType == topodatapb.TabletType_PRIMARY {
return details
}
@@ -282,8 +292,8 @@ func (hs *healthStreamer) SetUnhealthyThreshold(v time.Duration) {
// MakePrimary tells the healthstreamer that the current tablet is now the primary,
// so it can read and write to the MySQL instance for schema-tracking.
func (hs *healthStreamer) MakePrimary(serving bool) {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
hs.isServingPrimary = serving
// We register for notifications from the schema Engine only when schema tracking is enabled,
// and we are going to a serving primary state.
@@ -298,15 +308,15 @@ func (hs *healthStreamer) MakePrimary(serving bool) {
// MakeNonPrimary tells the healthstreamer that the current tablet is now not a primary.
func (hs *healthStreamer) MakeNonPrimary() {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
hs.isServingPrimary = false
}
// reload reloads the schema from the underlying mysql for the tables that we get the alert on.
func (hs *healthStreamer) reload(created, altered, dropped []*schema.Table, udfsChanged bool) error {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
// Schema Reload to happen only on primary when it is serving.
// We can be in a state when the primary is not serving after we have run DemotePrimary. In that case,
// we don't want to run any queries in MySQL, so we shouldn't reload anything in the healthStreamer.
@@ -349,8 +359,8 @@ func (hs *healthStreamer) reload(created, altered, dropped []*schema.Table, udfs
// sendUnresolvedTransactionSignal sends broadcast message about unresolved transactions.
func (hs *healthStreamer) sendUnresolvedTransactionSignal() {
- hs.mu.Lock()
- defer hs.mu.Unlock()
+ hs.fieldsMu.Lock()
+ defer hs.fieldsMu.Unlock()
// send signal only when primary is serving.
if !hs.isServingPrimary {
return
diff --git a/go/vt/vttablet/tabletserver/health_streamer_test.go b/go/vt/vttablet/tabletserver/health_streamer_test.go
index 5cf434e8fa2..3421141ff80 100644
--- a/go/vt/vttablet/tabletserver/health_streamer_test.go
+++ b/go/vt/vttablet/tabletserver/health_streamer_test.go
@@ -572,3 +572,43 @@ func testStream(hs *healthStreamer) (<-chan *querypb.StreamHealthResponse, conte
func testBlpFunc() (int64, int32) {
return 1, 2
}
+
+// TestDeadlockBwCloseAndReload tests the deadlock observed between Close and Reload
+// functions. More details can be found in the issue https://github.com/vitessio/vitess/issues/17229#issuecomment-2476136610.
+func TestDeadlockBwCloseAndReload(t *testing.T) {
+ cfg := newConfig(nil)
+ env := tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "TestNotServingPrimary")
+ alias := &topodatapb.TabletAlias{
+ Cell: "cell",
+ Uid: 1,
+ }
+ se := schema.NewEngineForTests()
+ // Create a new health streamer and set it to a serving primary state
+ hs := newHealthStreamer(env, alias, se)
+ hs.signalWhenSchemaChange = true
+ hs.Open()
+ hs.MakePrimary(true)
+ defer hs.Close()
+
+ wg := sync.WaitGroup{}
+ wg.Add(2)
+ // Try running Close and reload in parallel multiple times.
+ // This reproduces the deadlock quite readily.
+ go func() {
+ defer wg.Done()
+ for i := 0; i < 100; i++ {
+ hs.Close()
+ hs.Open()
+ }
+ }()
+
+ go func() {
+ defer wg.Done()
+ for i := 0; i < 100; i++ {
+ se.BroadcastForTesting(nil, nil, nil, true)
+ }
+ }()
+
+ // Wait for wait group to finish.
+ wg.Wait()
+}
diff --git a/go/vt/vttablet/tabletserver/messager/engine.go b/go/vt/vttablet/tabletserver/messager/engine.go
index 2e526fcdc3d..9d8b09e819a 100644
--- a/go/vt/vttablet/tabletserver/messager/engine.go
+++ b/go/vt/vttablet/tabletserver/messager/engine.go
@@ -52,9 +52,16 @@ type VStreamer interface {
// Engine is the engine for handling messages.
type Engine struct {
- mu sync.Mutex
- isOpen bool
- managers map[string]*messageManager
+ // mu is a mutex used to protect the isOpen variable
+ // and for ensuring we don't call setup functions in parallel.
+ mu sync.Mutex
+ isOpen bool
+
+ // managersMu is a mutex used to protect the managers field.
+ // We require two separate mutexes, so that we don't have to acquire the same mutex
+ // in Close and schemaChanged which can lead to a deadlock described in https://github.com/vitessio/vitess/issues/17229.
+ managersMu sync.Mutex
+ managers map[string]*messageManager
tsv TabletService
se *schema.Engine
@@ -76,15 +83,12 @@ func NewEngine(tsv TabletService, se *schema.Engine, vs VStreamer) *Engine {
// Open starts the Engine service.
func (me *Engine) Open() {
me.mu.Lock()
+ defer me.mu.Unlock()
if me.isOpen {
- me.mu.Unlock()
return
}
me.isOpen = true
- me.mu.Unlock()
log.Info("Messager: opening")
- // Unlock before invoking RegisterNotifier because it
- // obtains the same lock.
me.se.RegisterNotifier("messages", me.schemaChanged, true)
}
@@ -102,6 +106,8 @@ func (me *Engine) Close() {
log.Infof("messager Engine - unregistering notifiers")
me.se.UnregisterNotifier("messages")
log.Infof("messager Engine - closing all managers")
+ me.managersMu.Lock()
+ defer me.managersMu.Unlock()
for _, mm := range me.managers {
mm.Close()
}
@@ -110,8 +116,8 @@ func (me *Engine) Close() {
}
func (me *Engine) GetGenerator(name string) (QueryGenerator, error) {
- me.mu.Lock()
- defer me.mu.Unlock()
+ me.managersMu.Lock()
+ defer me.managersMu.Unlock()
mm := me.managers[name]
if mm == nil {
return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "message table %s not found in schema", name)
@@ -132,6 +138,8 @@ func (me *Engine) Subscribe(ctx context.Context, name string, send func(*sqltype
if !me.isOpen {
return nil, vterrors.Errorf(vtrpcpb.Code_UNAVAILABLE, "messager engine is closed, probably because this is not a primary any more")
}
+ me.managersMu.Lock()
+ defer me.managersMu.Unlock()
mm := me.managers[name]
if mm == nil {
return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "message table %s not found", name)
@@ -140,8 +148,8 @@ func (me *Engine) Subscribe(ctx context.Context, name string, send func(*sqltype
}
func (me *Engine) schemaChanged(tables map[string]*schema.Table, created, altered, dropped []*schema.Table, _ bool) {
- me.mu.Lock()
- defer me.mu.Unlock()
+ me.managersMu.Lock()
+ defer me.managersMu.Unlock()
for _, table := range append(dropped, altered...) {
name := table.Name.String()
mm := me.managers[name]
diff --git a/go/vt/vttablet/tabletserver/messager/engine_test.go b/go/vt/vttablet/tabletserver/messager/engine_test.go
index 30e849ac73b..124e6a9a380 100644
--- a/go/vt/vttablet/tabletserver/messager/engine_test.go
+++ b/go/vt/vttablet/tabletserver/messager/engine_test.go
@@ -19,6 +19,7 @@ package messager
import (
"context"
"reflect"
+ "sync"
"testing"
"vitess.io/vitess/go/sqltypes"
@@ -156,7 +157,7 @@ func newTestEngine() *Engine {
tsv := &fakeTabletServer{
Env: tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "MessagerTest"),
}
- se := schema.NewEngine(tsv)
+ se := schema.NewEngineForTests()
te := NewEngine(tsv, se, newFakeVStreamer())
te.Open()
return te
@@ -169,3 +170,33 @@ func newEngineReceiver() (f func(qr *sqltypes.Result) error, ch chan *sqltypes.R
return nil
}, ch
}
+
+// TestDeadlockBwCloseAndSchemaChange tests the deadlock observed between Close and schemaChanged
+// functions. More details can be found in the issue https://github.com/vitessio/vitess/issues/17229.
+func TestDeadlockBwCloseAndSchemaChange(t *testing.T) {
+ engine := newTestEngine()
+ defer engine.Close()
+ se := engine.se
+
+ wg := sync.WaitGroup{}
+ wg.Add(2)
+ // Try running Close and schemaChanged in parallel multiple times.
+ // This reproduces the deadlock quite readily.
+ go func() {
+ defer wg.Done()
+ for i := 0; i < 100; i++ {
+ engine.Close()
+ engine.Open()
+ }
+ }()
+
+ go func() {
+ defer wg.Done()
+ for i := 0; i < 100; i++ {
+ se.BroadcastForTesting(nil, nil, nil, true)
+ }
+ }()
+
+ // Wait for wait group to finish.
+ wg.Wait()
+}
diff --git a/go/vt/vttablet/tabletserver/schema/engine.go b/go/vt/vttablet/tabletserver/schema/engine.go
index 09b3a91ffed..fb4a9d9367a 100644
--- a/go/vt/vttablet/tabletserver/schema/engine.go
+++ b/go/vt/vttablet/tabletserver/schema/engine.go
@@ -865,6 +865,13 @@ func (se *Engine) broadcast(created, altered, dropped []*Table, udfsChanged bool
}
}
+// BroadcastForTesting is meant to be a testing function that triggers a broadcast call.
+func (se *Engine) BroadcastForTesting(created, altered, dropped []*Table, udfsChanged bool) {
+ se.mu.Lock()
+ defer se.mu.Unlock()
+ se.broadcast(created, altered, dropped, udfsChanged)
+}
+
// GetTable returns the info for a table.
func (se *Engine) GetTable(tableName sqlparser.IdentifierCS) *Table {
se.mu.Lock()
@@ -951,6 +958,7 @@ func NewEngineForTests() *Engine {
tables: make(map[string]*Table),
historian: newHistorian(false, 0, nil),
env: tabletenv.NewEnv(vtenv.NewTestEnv(), tabletenv.NewDefaultConfig(), "SchemaEngineForTests"),
+ notifiers: make(map[string]notifier),
}
return se
}
From 216fd70be49fa14ddd22ea97d26a9434770c0ca2 Mon Sep 17 00:00:00 2001
From: Matt Lord
Date: Fri, 15 Nov 2024 21:39:37 -0500
Subject: [PATCH 61/78] Binlog: Improve ZstdInMemoryDecompressorMaxSize
management (#17220)
Signed-off-by: Matt Lord
---
go/flags/endtoend/vtcombo.txt | 1 +
go/flags/endtoend/vttablet.txt | 1 +
go/mysql/binlog_event_compression.go | 21 ++++++++++++---------
go/mysql/binlog_event_mysql56_test.go | 8 +++++++-
go/vt/vttablet/common/flags.go | 3 +++
5 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/go/flags/endtoend/vtcombo.txt b/go/flags/endtoend/vtcombo.txt
index 8c6eafe9c1c..01a391d0cad 100644
--- a/go/flags/endtoend/vtcombo.txt
+++ b/go/flags/endtoend/vtcombo.txt
@@ -21,6 +21,7 @@ Flags:
--backup_storage_compress if set, the backup files will be compressed. (default true)
--backup_storage_number_blocks int if backup_storage_compress is true, backup_storage_number_blocks sets the number of blocks that can be processed, in parallel, before the writer blocks, during compression (default is 2). It should be equal to the number of CPUs available for compression. (default 2)
--bind-address string Bind address for the server. If empty, the server will listen on all available unicast and anycast IP addresses of the local system.
+ --binlog-in-memory-decompressor-max-size uint This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode. (default 134217728)
--binlog_host string PITR restore parameter: hostname/IP of binlog server.
--binlog_password string PITR restore parameter: password of binlog server.
--binlog_player_protocol string the protocol to download binlogs from a vttablet (default "grpc")
diff --git a/go/flags/endtoend/vttablet.txt b/go/flags/endtoend/vttablet.txt
index 35a07b265bc..8be7b620469 100644
--- a/go/flags/endtoend/vttablet.txt
+++ b/go/flags/endtoend/vttablet.txt
@@ -56,6 +56,7 @@ Flags:
--backup_storage_implementation string Which backup storage implementation to use for creating and restoring backups.
--backup_storage_number_blocks int if backup_storage_compress is true, backup_storage_number_blocks sets the number of blocks that can be processed, in parallel, before the writer blocks, during compression (default is 2). It should be equal to the number of CPUs available for compression. (default 2)
--bind-address string Bind address for the server. If empty, the server will listen on all available unicast and anycast IP addresses of the local system.
+ --binlog-in-memory-decompressor-max-size uint This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode. (default 134217728)
--binlog_host string PITR restore parameter: hostname/IP of binlog server.
--binlog_password string PITR restore parameter: password of binlog server.
--binlog_player_grpc_ca string the server ca to use to validate servers when connecting
diff --git a/go/mysql/binlog_event_compression.go b/go/mysql/binlog_event_compression.go
index 1cb38d5cb16..7455218d4b5 100644
--- a/go/mysql/binlog_event_compression.go
+++ b/go/mysql/binlog_event_compression.go
@@ -58,11 +58,6 @@ const (
// Length of the binlog event header for internal events within
// the transaction payload.
headerLen = binlogEventLenOffset + eventLenBytes
-
- // At what size should we switch from the in-memory buffer
- // decoding to streaming mode which is much slower, but does
- // not require everything be done in memory.
- zstdInMemoryDecompressorMaxSize = 128 << (10 * 2) // 128MiB
)
var (
@@ -75,13 +70,18 @@ var (
compressedTrxPayloadsInMem = stats.NewCounter("CompressedTransactionPayloadsInMemory", "The number of compressed binlog transaction payloads that were processed in memory")
compressedTrxPayloadsUsingStream = stats.NewCounter("CompressedTransactionPayloadsViaStream", "The number of compressed binlog transaction payloads that were processed using a stream")
+ // At what size should we switch from the in-memory buffer
+ // decoding to streaming mode which is much slower, but does
+ // not require everything be done in memory all at once.
+ ZstdInMemoryDecompressorMaxSize = uint64(128 << (10 * 2)) // 128MiB
+
// A concurrent stateless decoder that caches decompressors. This is
// used for smaller payloads that we want to handle entirely using
// in-memory buffers via DecodeAll.
statelessDecoder *zstd.Decoder
// A pool of stateful decoders for larger payloads that we want to
- // stream. The number of large (> zstdInMemoryDecompressorMaxSize)
+ // stream. The number of large (> ZstdInMemoryDecompressorMaxSize)
// payloads should typically be relatively low, but there may be times
// where there are many of them -- and users like vstreamer may have
// N concurrent streams per tablet which could lead to a lot of
@@ -271,7 +271,7 @@ func (tp *TransactionPayload) decode() error {
}
// decompress decompresses the payload. If the payload is larger than
-// zstdInMemoryDecompressorMaxSize then we stream the decompression via
+// ZstdInMemoryDecompressorMaxSize then we stream the decompression via
// the package's pool of zstd.Decoders, otherwise we use in-memory
// buffers with the package's concurrent statelessDecoder.
// In either case, we setup the reader that can be used within the
@@ -284,7 +284,7 @@ func (tp *TransactionPayload) decompress() error {
// Switch to slower but less memory intensive stream mode for
// larger payloads.
- if tp.uncompressedSize > zstdInMemoryDecompressorMaxSize {
+ if tp.uncompressedSize > ZstdInMemoryDecompressorMaxSize {
in := bytes.NewReader(tp.payload)
streamDecoder, err := statefulDecoderPool.Get(in)
if err != nil {
@@ -366,7 +366,10 @@ func (dp *decoderPool) Get(reader io.Reader) (*zstd.Decoder, error) {
return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "[BUG] expected *zstd.Decoder but got %T", pooled)
}
} else {
- d, err := zstd.NewReader(nil, zstd.WithDecoderMaxMemory(zstdInMemoryDecompressorMaxSize))
+ // Use the minimum amount of memory we can in processing the transaction by
+ // setting lowMem to true and limiting the decoder concurrency to 1 so that
+ // there's no async decoding of multiple windows or blocks.
+ d, err := zstd.NewReader(nil, zstd.WithDecoderLowmem(true), zstd.WithDecoderConcurrency(1))
if err != nil { // Should only happen e.g. due to ENOMEM
return nil, vterrors.Wrap(err, "failed to create stateful stream decoder")
}
diff --git a/go/mysql/binlog_event_mysql56_test.go b/go/mysql/binlog_event_mysql56_test.go
index f173e27e4af..861d98c6e4f 100644
--- a/go/mysql/binlog_event_mysql56_test.go
+++ b/go/mysql/binlog_event_mysql56_test.go
@@ -141,6 +141,12 @@ func TestMysql56DecodeTransactionPayload(t *testing.T) {
},
}
+ // Ensure that we can process events where the *uncompressed* size is
+ // larger than ZstdInMemoryDecompressorMaxSize. The *compressed* size
+ // of the payload in large_compressed_trx_payload.bin is 16KiB so we
+ // set the max to 2KiB to test this.
+ ZstdInMemoryDecompressorMaxSize = 2048
+
for _, tc := range testCases {
memDecodingCnt := compressedTrxPayloadsInMem.Get()
streamDecodingCnt := compressedTrxPayloadsUsingStream.Get()
@@ -191,7 +197,7 @@ func TestMysql56DecodeTransactionPayload(t *testing.T) {
totalSize += len(eventStr)
require.True(t, strings.HasPrefix(eventStr, want))
}
- require.Greater(t, totalSize, zstdInMemoryDecompressorMaxSize)
+ require.Greater(t, uint64(totalSize), ZstdInMemoryDecompressorMaxSize)
}
}
}
diff --git a/go/vt/vttablet/common/flags.go b/go/vt/vttablet/common/flags.go
index f9775b8af3e..3c6141d62eb 100644
--- a/go/vt/vttablet/common/flags.go
+++ b/go/vt/vttablet/common/flags.go
@@ -21,6 +21,7 @@ import (
"github.com/spf13/pflag"
+ "vitess.io/vitess/go/mysql"
"vitess.io/vitess/go/vt/servenv"
)
@@ -94,4 +95,6 @@ func registerFlags(fs *pflag.FlagSet) {
fs.BoolVar(&vreplicationStoreCompressedGTID, "vreplication_store_compressed_gtid", vreplicationStoreCompressedGTID, "Store compressed gtids in the pos column of the sidecar database's vreplication table")
fs.IntVar(&vreplicationParallelInsertWorkers, "vreplication-parallel-insert-workers", vreplicationParallelInsertWorkers, "Number of parallel insertion workers to use during copy phase. Set <= 1 to disable parallelism, or > 1 to enable concurrent insertion during copy phase.")
+
+ fs.Uint64Var(&mysql.ZstdInMemoryDecompressorMaxSize, "binlog-in-memory-decompressor-max-size", mysql.ZstdInMemoryDecompressorMaxSize, "This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode.")
}
From 7baa4f28e2e649e73790c319fb7dfbfb05d87bf5 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Tue, 19 Nov 2024 11:13:33 +0200
Subject: [PATCH 62/78] Handle MySQL handler error codes (#17252)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/mysql/sqlerror/constants.go | 190 ++++++++++++++++++
go/mysql/sqlerror/sql_error.go | 12 ++
go/mysql/sqlerror/sql_error_test.go | 21 ++
.../tabletmanager/vreplication/utils.go | 18 ++
.../tabletmanager/vreplication/utils_test.go | 10 +
5 files changed, 251 insertions(+)
diff --git a/go/mysql/sqlerror/constants.go b/go/mysql/sqlerror/constants.go
index da2351bf00d..5fedf567998 100644
--- a/go/mysql/sqlerror/constants.go
+++ b/go/mysql/sqlerror/constants.go
@@ -203,6 +203,7 @@ const (
ERBlobKeyWithoutLength = ErrorCode(1170)
ERPrimaryCantHaveNull = ErrorCode(1171)
ERTooManyRows = ErrorCode(1172)
+ ERErrorDuringCommit = ErrorCode(1180)
ERLockOrActiveTransaction = ErrorCode(1192)
ERUnknownSystemVariable = ErrorCode(1193)
ERSetConstantsOnly = ErrorCode(1204)
@@ -301,6 +302,195 @@ const (
ERServerIsntAvailable = ErrorCode(3168)
)
+// HandlerErrorCode is for errors thrown by the handler, and which are then embedded in other errors.
+// See https://github.com/mysql/mysql-server/blob/trunk/include/my_base.h
+type HandlerErrorCode uint16
+
+func (e HandlerErrorCode) ToString() string {
+ return strconv.FormatUint(uint64(e), 10)
+}
+
+const (
+ // Didn't find key on read or update
+ HaErrKeyNotFound = HandlerErrorCode(120)
+ // Duplicate key on write
+ HaErrFoundDuppKey = HandlerErrorCode(121)
+ // Internal error
+ HaErrInternalError = HandlerErrorCode(122)
+ // Uppdate with is recoverable
+ HaErrRecordChanged = HandlerErrorCode(123)
+ // Wrong index given to function
+ HaErrWrongIndex = HandlerErrorCode(124)
+ // Transaction has been rolled back
+ HaErrRolledBack = HandlerErrorCode(125)
+ // Indexfile is crashed
+ HaErrCrashed = HandlerErrorCode(126)
+ // Record-file is crashed
+ HaErrWrongInRecord = HandlerErrorCode(127)
+ // Record-file is crashed
+ HaErrOutOfMem = HandlerErrorCode(128)
+ // not a MYI file - no signature
+ HaErrNotATable = HandlerErrorCode(130)
+ // Command not supported
+ HaErrWrongCommand = HandlerErrorCode(131)
+ // old database file
+ HaErrOldFile = HandlerErrorCode(132)
+ // No record read in update()
+ HaErrNoActiveRecord = HandlerErrorCode(133)
+ // A record is not there
+ HaErrRecordDeleted = HandlerErrorCode(134)
+ // No more room in file
+ HaErrRecordFileFull = HandlerErrorCode(135)
+ // No more room in file
+ HaErrIndexFileFull = HandlerErrorCode(136)
+ // end in next/prev/first/last
+ HaErrEndOfFile = HandlerErrorCode(137)
+ // unsupported extension used
+ HaErrUnsupported = HandlerErrorCode(138)
+ // Too big row
+ HaErrTooBigRow = HandlerErrorCode(139)
+ // Wrong create option
+ HaWrongCreateOption = HandlerErrorCode(140)
+ // Duplicate unique on write
+ HaErrFoundDuppUnique = HandlerErrorCode(141)
+ // Can't open charset
+ HaErrUnknownCharset = HandlerErrorCode(142)
+ // conflicting tables in MERGE
+ HaErrWrongMrgTableDef = HandlerErrorCode(143)
+ // Last (automatic?) repair failed
+ HaErrCrashedOnRepair = HandlerErrorCode(144)
+ // Table must be repaired
+ HaErrCrashedOnUsage = HandlerErrorCode(145)
+ // Lock wait timeout
+ HaErrLockWaitTimeout = HandlerErrorCode(146)
+ // Lock table is full
+ HaErrLockTableFull = HandlerErrorCode(147)
+ // Updates not allowed
+ HaErrReadOnlyTransaction = HandlerErrorCode(148)
+ // Deadlock found when trying to get lock
+ HaErrLockDeadlock = HandlerErrorCode(149)
+ // Cannot add a foreign key constr.
+ HaErrCannotAddForeign = HandlerErrorCode(150)
+ // Cannot add a child row
+ HaErrNoReferencedRow = HandlerErrorCode(151)
+ // Cannot delete a parent row
+ HaErrRowIsReferenced = HandlerErrorCode(152)
+ // No savepoint with that name
+ HaErrNoSavepoint = HandlerErrorCode(153)
+ // Non unique key block size
+ HaErrNonUniqueBlockSize = HandlerErrorCode(154)
+ // The table does not exist in engine
+ HaErrNoSuchTable = HandlerErrorCode(155)
+ // The table existed in storage engine
+ HaErrTableExist = HandlerErrorCode(156)
+ // Could not connect to storage engine
+ HaErrNoConnection = HandlerErrorCode(157)
+ // NULLs are not supported in spatial index
+ HaErrNullInSpatial = HandlerErrorCode(158)
+ // The table changed in storage engine
+ HaErrTableDefChanged = HandlerErrorCode(159)
+ // There's no partition in table for given value
+ HaErrNoPartitionFound = HandlerErrorCode(160)
+ // Row-based binlogging of row failed
+ HaErrRbrLoggingFailed = HandlerErrorCode(161)
+ // Index needed in foreign key constraint
+ HaErrDropIndexFk = HandlerErrorCode(162)
+ // Upholding foreign key constraints would lead to a duplicate key error in some other table.
+ HaErrForeignDuplicateKey = HandlerErrorCode(163)
+ // The table changed in storage engine
+ HaErrTableNeedsUpgrade = HandlerErrorCode(164)
+ // The table is not writable
+ HaErrTableReadonly = HandlerErrorCode(165)
+ // Failed to get next autoinc value
+ HaErrAutoincReadFailed = HandlerErrorCode(166)
+ // Failed to set row autoinc value
+ HaErrAutoincErange = HandlerErrorCode(167)
+ // Generic error
+ HaErrGeneric = HandlerErrorCode(168)
+ // row not actually updated: new values same as the old values
+ HaErrRecordIsTheSame = HandlerErrorCode(169)
+ // It is not possible to log this statement
+ HaErrLoggingImpossible = HandlerErrorCode(170)
+ // The event was corrupt, leading to illegal data being read
+ HaErrCorruptEvent = HandlerErrorCode(171)
+ // New file format
+ HaErrNewFile = HandlerErrorCode(172)
+ // The event could not be processed no other handler error happened
+ HaErrRowsEventApply = HandlerErrorCode(173)
+ // Error during initialization
+ HaErrInitialization = HandlerErrorCode(174)
+ // File too short
+ HaErrFileTooShort = HandlerErrorCode(175)
+ // Wrong CRC on page
+ HaErrWrongCrc = HandlerErrorCode(176)
+ // Too many active concurrent transactions
+ HaErrTooManyConcurrentTrxs = HandlerErrorCode(177)
+ // There's no explicitly listed partition in table for the given value
+ HaErrNotInLockPartitions = HandlerErrorCode(178)
+ // Index column length exceeds limit
+ HaErrIndexColTooLong = HandlerErrorCode(179)
+ // InnoDB index corrupted
+ HaErrIndexCorrupt = HandlerErrorCode(180)
+ // Undo log record too big
+ HaErrUndoRecTooBig = HandlerErrorCode(181)
+ // Invalid InnoDB Doc ID
+ HaFtsInvalidDocid = HandlerErrorCode(182)
+ // Table being used in foreign key check
+ HaErrTableInFkCheck = HandlerErrorCode(183)
+ // The tablespace existed in storage engine
+ HaErrTablespaceExists = HandlerErrorCode(184)
+ // Table has too many columns
+ HaErrTooManyFields = HandlerErrorCode(185)
+ // Row in wrong partition
+ HaErrRowInWrongPartition = HandlerErrorCode(186)
+ // InnoDB is in read only mode.
+ HaErrInnodbReadOnly = HandlerErrorCode(187)
+ // FTS query exceeds result cache limit
+ HaErrFtsExceedResultCacheLimit = HandlerErrorCode(188)
+ // Temporary file write failure
+ HaErrTempFileWriteFailure = HandlerErrorCode(189)
+ // Innodb is in force recovery mode
+ HaErrInnodbForcedRecovery = HandlerErrorCode(190)
+ // Too many words in a phrase
+ HaErrFtsTooManyWordsInPhrase = HandlerErrorCode(191)
+ // FK cascade depth exceeded
+ HaErrFkDepthExceeded = HandlerErrorCode(192)
+ // Option Missing during Create
+ HaMissingCreateOption = HandlerErrorCode(193)
+ // Out of memory in storage engine
+ HaErrSeOutOfMemory = HandlerErrorCode(194)
+ // Table/Clustered index is corrupted.
+ HaErrTableCorrupt = HandlerErrorCode(195)
+ // The query was interrupted
+ HaErrQueryInterrupted = HandlerErrorCode(196)
+ // Missing Tablespace
+ HaErrTablespaceMissing = HandlerErrorCode(197)
+ // Tablespace is not empty
+ HaErrTablespaceIsNotEmpty = HandlerErrorCode(198)
+ // Invalid Filename
+ HaErrWrongFileName = HandlerErrorCode(199)
+ // Operation is not allowed
+ HaErrNotAllowedCommand = HandlerErrorCode(200)
+ // Compute generated column value failed
+ HaErrComputeFailed = HandlerErrorCode(201)
+ // Table's row format has changed in the storage engine. Information in the data-dictionary needs to be updated.
+ HaErrRowFormatChanged = HandlerErrorCode(202)
+ // Don't wait for record lock
+ HaErrNoWaitLock = HandlerErrorCode(203)
+ // No more room in disk
+ HaErrDiskFullNowait = HandlerErrorCode(204)
+ // No session temporary space available
+ HaErrNoSessionTemp = HandlerErrorCode(205)
+ // Wrong or Invalid table name
+ HaErrWrongTableName = HandlerErrorCode(206)
+ // Path is too long for the OS
+ HaErrTooLongPath = HandlerErrorCode(207)
+ // Histogram sampling initialization failed
+ HaErrSamplingInitFailed = HandlerErrorCode(208)
+ // Too many sub-expression in search string
+ HaErrFtsTooManyNestedExp = HandlerErrorCode(209)
+)
+
// Sql states for errors.
// Originally found in include/mysql/sql_state.h
const (
diff --git a/go/mysql/sqlerror/sql_error.go b/go/mysql/sqlerror/sql_error.go
index f2a5fb46388..4600f0927cc 100644
--- a/go/mysql/sqlerror/sql_error.go
+++ b/go/mysql/sqlerror/sql_error.go
@@ -53,6 +53,18 @@ func NewSQLError(number ErrorCode, sqlState string, msg string) *SQLError {
}
}
+var handlerErrExtract = regexp.MustCompile(`Got error ([0-9]*) [-] .* (from storage engine|during COMMIT|during ROLLBACK)`)
+
+func (se *SQLError) HaErrorCode() HandlerErrorCode {
+ match := handlerErrExtract.FindStringSubmatch(se.Message)
+ if len(match) >= 1 {
+ if code, err := strconv.ParseUint(match[1], 10, 16); err == nil {
+ return HandlerErrorCode(code)
+ }
+ }
+ return 0
+}
+
// Error implements the error interface
func (se *SQLError) Error() string {
var buf strings.Builder
diff --git a/go/mysql/sqlerror/sql_error_test.go b/go/mysql/sqlerror/sql_error_test.go
index b38cec26388..9e73138d60f 100644
--- a/go/mysql/sqlerror/sql_error_test.go
+++ b/go/mysql/sqlerror/sql_error_test.go
@@ -57,6 +57,7 @@ func TestNewSQLErrorFromError(t *testing.T) {
var tCases = []struct {
err error
num ErrorCode
+ ha HandlerErrorCode
ss string
}{
{
@@ -179,6 +180,24 @@ func TestNewSQLErrorFromError(t *testing.T) {
num: ERDupEntry,
ss: SSConstraintViolation,
},
+ {
+ err: fmt.Errorf("ERROR HY000: Got error 204 - 'No more room in disk' during COMMIT"),
+ num: ERUnknownError,
+ ss: SSUnknownSQLState,
+ ha: HaErrDiskFullNowait,
+ },
+ {
+ err: fmt.Errorf("COMMIT failed w/ error: Got error 204 - 'No more room in disk' during COMMIT (errno 1180) (sqlstate HY000) during query: commit"),
+ num: ERErrorDuringCommit,
+ ss: SSUnknownSQLState,
+ ha: HaErrDiskFullNowait,
+ },
+ {
+ err: fmt.Errorf("COMMIT failed w/ error: Got error 149 - 'Lock deadlock; Retry transaction' during COMMIT (errno 1180) (sqlstate HY000) during query: commit"),
+ num: ERErrorDuringCommit,
+ ss: SSUnknownSQLState,
+ ha: HaErrLockDeadlock,
+ },
}
for _, tc := range tCases {
@@ -187,6 +206,8 @@ func TestNewSQLErrorFromError(t *testing.T) {
require.ErrorAs(t, NewSQLErrorFromError(tc.err), &err)
assert.Equal(t, tc.num, err.Number())
assert.Equal(t, tc.ss, err.SQLState())
+ ha := err.HaErrorCode()
+ assert.Equal(t, tc.ha, ha)
})
}
}
diff --git a/go/vt/vttablet/tabletmanager/vreplication/utils.go b/go/vt/vttablet/tabletmanager/vreplication/utils.go
index bb1c469cc93..67b52c56261 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/utils.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/utils.go
@@ -232,6 +232,24 @@ func isUnrecoverableError(err error) bool {
sqlerror.ERWrongValueCountOnRow:
log.Errorf("Got unrecoverable error: %v", sqlErr)
return true
+ case sqlerror.ERErrorDuringCommit:
+ switch sqlErr.HaErrorCode() {
+ case
+ 0, // Not really a HA error.
+ sqlerror.HaErrLockDeadlock,
+ sqlerror.HaErrLockTableFull,
+ sqlerror.HaErrLockWaitTimeout,
+ sqlerror.HaErrNotInLockPartitions,
+ sqlerror.HaErrQueryInterrupted,
+ sqlerror.HaErrRolledBack,
+ sqlerror.HaErrTooManyConcurrentTrxs,
+ sqlerror.HaErrUndoRecTooBig:
+ // These are recoverable errors.
+ return false
+ default:
+ log.Errorf("Got unrecoverable error: %v", sqlErr)
+ return true
+ }
}
return false
}
diff --git a/go/vt/vttablet/tabletmanager/vreplication/utils_test.go b/go/vt/vttablet/tabletmanager/vreplication/utils_test.go
index 69a57c34341..15093e299fc 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/utils_test.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/utils_test.go
@@ -152,6 +152,16 @@ func TestIsUnrecoverableError(t *testing.T) {
err: sqlerror.NewSQLError(sqlerror.ERDataOutOfRange, "data out of range", "test"),
expected: true,
},
+ {
+ name: "SQL error with HaErrDiskFullNowait error",
+ err: sqlerror.NewSQLError(sqlerror.ERErrorDuringCommit, "unknown", "ERROR HY000: Got error 204 - 'No more room in disk' during COMMIT"),
+ expected: true,
+ },
+ {
+ name: "SQL error with HaErrLockDeadlock error",
+ err: sqlerror.NewSQLError(sqlerror.ERErrorDuringCommit, "unknown", "ERROR HY000: Got error 149 - 'Lock deadlock; Retry transaction' during COMMIT"),
+ expected: false,
+ },
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
From ea600c3d3569d826710cf9e262967511152e390a Mon Sep 17 00:00:00 2001
From: Florent Poinsard <35779988+frouioui@users.noreply.github.com>
Date: Tue, 19 Nov 2024 12:54:29 -0600
Subject: [PATCH 63/78] Use proper keyspace when updating the query graph of a
reference DML (#17226)
Signed-off-by: Florent Poinsard
---
.../queries/reference/reference_test.go | 9 +++++++
go/vt/vtgate/planbuilder/operators/delete.go | 2 +-
go/vt/vtgate/planbuilder/plan_test.go | 1 +
.../dml_cases_with_user_as_default.json | 24 +++++++++++++++++++
4 files changed, 35 insertions(+), 1 deletion(-)
create mode 100644 go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json
diff --git a/go/test/endtoend/vtgate/queries/reference/reference_test.go b/go/test/endtoend/vtgate/queries/reference/reference_test.go
index 08e9cbe13b1..66d46dfaf15 100644
--- a/go/test/endtoend/vtgate/queries/reference/reference_test.go
+++ b/go/test/endtoend/vtgate/queries/reference/reference_test.go
@@ -171,3 +171,12 @@ func TestMultiReferenceQuery(t *testing.T) {
utils.Exec(t, conn, query)
}
+
+func TestDMLReferenceUsingShardedKS(t *testing.T) {
+ utils.SkipIfBinaryIsBelowVersion(t, 22, "vtgate")
+ conn, closer := start(t)
+ defer closer()
+
+ utils.Exec(t, conn, "use sks")
+ utils.Exec(t, conn, "update zip_detail set zip_id = 1 where id = 1")
+}
diff --git a/go/vt/vtgate/planbuilder/operators/delete.go b/go/vt/vtgate/planbuilder/operators/delete.go
index 4d30d9b9cc1..81e36d54315 100644
--- a/go/vt/vtgate/planbuilder/operators/delete.go
+++ b/go/vt/vtgate/planbuilder/operators/delete.go
@@ -328,7 +328,7 @@ func updateQueryGraphWithSource(ctx *plancontext.PlanningContext, input Operator
if tbl.ID != tblID {
continue
}
- tbl.Alias = sqlparser.NewAliasedTableExpr(sqlparser.NewTableName(vTbl.Name.String()), tbl.Alias.As.String())
+ tbl.Alias = sqlparser.NewAliasedTableExpr(sqlparser.NewTableNameWithQualifier(vTbl.Name.String(), vTbl.Keyspace.Name), tbl.Alias.As.String())
tbl.Table, _ = tbl.Alias.TableName()
}
return op, Rewrote("change query table point to source table")
diff --git a/go/vt/vtgate/planbuilder/plan_test.go b/go/vt/vtgate/planbuilder/plan_test.go
index 9cf92a91ddf..acba2caf937 100644
--- a/go/vt/vtgate/planbuilder/plan_test.go
+++ b/go/vt/vtgate/planbuilder/plan_test.go
@@ -557,6 +557,7 @@ func (s *planTestSuite) TestWithUserDefaultKeyspaceFromFileSharded() {
}
s.testFile("select_cases_with_user_as_default.json", vschema, false)
+ s.testFile("dml_cases_with_user_as_default.json", vschema, false)
}
func (s *planTestSuite) TestWithSystemSchemaAsDefaultKeyspace() {
diff --git a/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json b/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json
new file mode 100644
index 00000000000..ff66967c2ce
--- /dev/null
+++ b/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json
@@ -0,0 +1,24 @@
+[
+ {
+ "comment": "Update reference table from sharded keyspace to unsharded keyspace",
+ "query": "update ambiguous_ref_with_source set done = true where id = 1;",
+ "plan": {
+ "QueryType": "UPDATE",
+ "Original": "update ambiguous_ref_with_source set done = true where id = 1;",
+ "Instructions": {
+ "OperatorType": "Update",
+ "Variant": "Unsharded",
+ "Keyspace": {
+ "Name": "main",
+ "Sharded": false
+ },
+ "TargetTabletType": "PRIMARY",
+ "Query": "update ambiguous_ref_with_source set done = true where id = 1",
+ "Table": "ambiguous_ref_with_source"
+ },
+ "TablesUsed": [
+ "main.ambiguous_ref_with_source"
+ ]
+ }
+ }
+]
\ No newline at end of file
From d2815bfb23594106fdb396e3372936abc98cf490 Mon Sep 17 00:00:00 2001
From: Gabriel Parreiras
Date: Tue, 19 Nov 2024 19:30:49 +0000
Subject: [PATCH 64/78] Add support for receiving `grpc_bind_adress` on
`vttestserver` (#17231)
Signed-off-by: Gabriel Parreiras
---
go/vt/servenv/grpc_server.go | 5 ++++
go/vt/vttest/local_cluster.go | 1 +
go/vt/vttest/vtprocess.go | 50 ++++++++++++++++++++++-------------
3 files changed, 37 insertions(+), 19 deletions(-)
diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go
index 96fe3c25ea9..8d30ee6d253 100644
--- a/go/vt/servenv/grpc_server.go
+++ b/go/vt/servenv/grpc_server.go
@@ -169,6 +169,11 @@ func GRPCPort() int {
return gRPCPort
}
+// GRPCPort returns the value of the `--grpc_bind_address` flag.
+func GRPCBindAddress() string {
+ return gRPCBindAddress
+}
+
// isGRPCEnabled returns true if gRPC server is set
func isGRPCEnabled() bool {
if gRPCPort != 0 {
diff --git a/go/vt/vttest/local_cluster.go b/go/vt/vttest/local_cluster.go
index 576a78bb761..fa7e40feb12 100644
--- a/go/vt/vttest/local_cluster.go
+++ b/go/vt/vttest/local_cluster.go
@@ -660,6 +660,7 @@ func (db *LocalCluster) JSONConfig() any {
config := map[string]any{
"bind_address": db.vt.BindAddress,
"port": db.vt.Port,
+ "grpc_bind_address": db.vt.BindAddressGprc,
"socket": db.mysql.UnixSocket(),
"vtcombo_mysql_port": db.Env.PortForProtocol("vtcombo_mysql_port", ""),
"mysql": db.Env.PortForProtocol("mysql", ""),
diff --git a/go/vt/vttest/vtprocess.go b/go/vt/vttest/vtprocess.go
index 3f34994bb75..6371811a60e 100644
--- a/go/vt/vttest/vtprocess.go
+++ b/go/vt/vttest/vtprocess.go
@@ -44,16 +44,17 @@ type HealthChecker func(addr string) bool
// It can be spawned manually or through one of the available
// helper methods.
type VtProcess struct {
- Name string
- Directory string
- LogDirectory string
- Binary string
- ExtraArgs []string
- Env []string
- BindAddress string
- Port int
- PortGrpc int
- HealthCheck HealthChecker
+ Name string
+ Directory string
+ LogDirectory string
+ Binary string
+ ExtraArgs []string
+ Env []string
+ BindAddress string
+ BindAddressGprc string
+ Port int
+ PortGrpc int
+ HealthCheck HealthChecker
proc *exec.Cmd
exit chan error
@@ -139,6 +140,11 @@ func (vtp *VtProcess) WaitStart() (err error) {
vtp.proc.Args = append(vtp.proc.Args, fmt.Sprintf("%d", vtp.PortGrpc))
}
+ if vtp.BindAddressGprc != "" {
+ vtp.proc.Args = append(vtp.proc.Args, "--grpc_bind_address")
+ vtp.proc.Args = append(vtp.proc.Args, vtp.BindAddressGprc)
+ }
+
vtp.proc.Args = append(vtp.proc.Args, vtp.ExtraArgs...)
vtp.proc.Env = append(vtp.proc.Env, os.Environ()...)
vtp.proc.Env = append(vtp.proc.Env, vtp.Env...)
@@ -199,16 +205,22 @@ func VtcomboProcess(environment Environment, args *Config, mysql MySQLManager) (
if args.VtComboBindAddress != "" {
vtcomboBindAddress = args.VtComboBindAddress
}
+ grpcBindAddress := "127.0.0.1"
+ if servenv.GRPCBindAddress() != "" {
+ grpcBindAddress = servenv.GRPCBindAddress()
+ }
+
vt := &VtProcess{
- Name: "vtcombo",
- Directory: environment.Directory(),
- LogDirectory: environment.LogDirectory(),
- Binary: environment.BinaryPath("vtcombo"),
- BindAddress: vtcomboBindAddress,
- Port: environment.PortForProtocol("vtcombo", ""),
- PortGrpc: environment.PortForProtocol("vtcombo", "grpc"),
- HealthCheck: environment.ProcessHealthCheck("vtcombo"),
- Env: environment.EnvVars(),
+ Name: "vtcombo",
+ Directory: environment.Directory(),
+ LogDirectory: environment.LogDirectory(),
+ Binary: environment.BinaryPath("vtcombo"),
+ BindAddress: vtcomboBindAddress,
+ BindAddressGprc: grpcBindAddress,
+ Port: environment.PortForProtocol("vtcombo", ""),
+ PortGrpc: environment.PortForProtocol("vtcombo", "grpc"),
+ HealthCheck: environment.ProcessHealthCheck("vtcombo"),
+ Env: environment.EnvVars(),
}
user, pass := mysql.Auth()
From 626b16ff12a328e8a114f431b2ab51a472afcee9 Mon Sep 17 00:00:00 2001
From: Derek Perkins
Date: Tue, 19 Nov 2024 18:00:11 -0700
Subject: [PATCH 65/78] sqltypes: add ToTime conversion funcs (#17178)
Signed-off-by: Derek Perkins
---
go/sqltypes/value.go | 95 +++++++++++++++++
go/sqltypes/value_test.go | 151 +++++++++++++++++++++++++++
go/vt/vitessdriver/convert.go | 6 +-
go/vt/vitessdriver/time.go | 71 -------------
go/vt/vitessdriver/time_test.go | 175 --------------------------------
5 files changed, 248 insertions(+), 250 deletions(-)
delete mode 100644 go/vt/vitessdriver/time_test.go
diff --git a/go/sqltypes/value.go b/go/sqltypes/value.go
index 438b51a13ba..7fb6fa80396 100644
--- a/go/sqltypes/value.go
+++ b/go/sqltypes/value.go
@@ -26,6 +26,7 @@ import (
"math/big"
"strconv"
"strings"
+ "time"
"google.golang.org/protobuf/encoding/protowire"
@@ -435,6 +436,100 @@ func (v Value) String() string {
return fmt.Sprintf("%v(%s)", Type(v.typ), v.val)
}
+// ToTime returns the value as a time.Time in UTC.
+// NULL values are returned as zero time.
+func (v Value) ToTime() (time.Time, error) {
+ return v.ToTimeInLocation(time.UTC)
+}
+
+// ToTimeInLocation returns the value as a time.Time in the provided location.
+// NULL values are returned as zero time.
+func (v Value) ToTimeInLocation(loc *time.Location) (time.Time, error) {
+ if v.Type() == Null {
+ return time.Time{}, nil
+ }
+ switch v.Type() {
+ case Datetime, Timestamp:
+ return datetimeToNative(v, loc)
+ case Date:
+ return dateToNative(v, loc)
+ default:
+ return time.Time{}, ErrIncompatibleTypeCast
+ }
+}
+
+// ErrInvalidTime is returned when we fail to parse a datetime
+// string from MySQL. This should never happen unless things are
+// seriously messed up.
+var ErrInvalidTime = errors.New("invalid MySQL time string")
+
+var isoTimeFormat = "2006-01-02 15:04:05.999999"
+var isoNullTime = "0000-00-00 00:00:00.000000"
+var isoTimeLength = len(isoTimeFormat)
+
+// parseISOTime pases a time string in MySQL's textual datetime format.
+// This is very similar to ISO8601, with some differences:
+//
+// - There is no T separator between the date and time sections;
+// a space is used instead.
+// - There is never a timezone section in the string, as these datetimes
+// are not timezone-aware. There isn't a Z value for UTC times for
+// the same reason.
+//
+// Note that this function can handle both DATE (which should _always_ have
+// a length of 10) and DATETIME strings (which have a variable length, 18+
+// depending on the number of decimal sub-second places).
+//
+// Also note that this function handles the case where MySQL returns a NULL
+// time (with a string where all sections are zeroes) by returning a zeroed
+// out time.Time object. NULL time strings are not considered a parsing error.
+//
+// See: isoTimeFormat
+func parseISOTime(tstr string, loc *time.Location, minLen, maxLen int) (t time.Time, err error) {
+ tlen := len(tstr)
+ if tlen < minLen || tlen > maxLen {
+ err = ErrInvalidTime
+ return
+ }
+
+ if tstr == isoNullTime[:tlen] {
+ // This is what MySQL would send when the date is NULL,
+ // so return an empty time.Time instead.
+ // This is not a parsing error
+ return
+ }
+
+ if loc == nil {
+ loc = time.UTC
+ }
+
+ // Since the time format returned from MySQL never has a Timezone
+ // section, ParseInLocation will initialize the time.Time struct
+ // with the default `loc` we're passing here.
+ return time.ParseInLocation(isoTimeFormat[:tlen], tstr, loc)
+}
+
+// datetimeToNative converts a Datetime Value into a time.Time
+func datetimeToNative(v Value, loc *time.Location) (time.Time, error) {
+ // Valid format string offsets for a DATETIME
+ // |DATETIME |19+
+ // |------------------|------|
+ // "2006-01-02 15:04:05.999999"
+ return parseISOTime(v.ToString(), loc, 19, isoTimeLength)
+}
+
+// dateToNative converts a Date Value into a time.Time.
+// Note that there's no specific type in the Go stdlib to represent
+// dates without time components, so the returned Time will have
+// their hours/mins/seconds zeroed out.
+func dateToNative(v Value, loc *time.Location) (time.Time, error) {
+ // Valid format string offsets for a DATE
+ // |DATE |10
+ // |---------|
+ // "2006-01-02 00:00:00.000000"
+ return parseISOTime(v.ToString(), loc, 10, 10)
+}
+
// EncodeSQL encodes the value into an SQL statement. Can be binary.
func (v Value) EncodeSQL(b BinWriter) {
switch {
diff --git a/go/sqltypes/value_test.go b/go/sqltypes/value_test.go
index fbf9be5b19b..99f8566472e 100644
--- a/go/sqltypes/value_test.go
+++ b/go/sqltypes/value_test.go
@@ -18,8 +18,10 @@ package sqltypes
import (
"math"
+ "reflect"
"strings"
"testing"
+ "time"
"github.com/stretchr/testify/assert"
@@ -611,6 +613,155 @@ func TestToUint32(t *testing.T) {
}
}
+var randomLocation = time.FixedZone("Nowhere", 3*60*60)
+
+func DatetimeValue(str string) Value {
+ return TestValue(Datetime, str)
+}
+
+func DateValue(str string) Value {
+ return TestValue(Date, str)
+}
+
+func TestDatetimeToNative(t *testing.T) {
+ tcases := []struct {
+ val Value
+ loc *time.Location
+ out time.Time
+ err bool
+ }{{
+ val: DatetimeValue("1899-08-24 17:20:00"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
+ }, {
+ val: DatetimeValue("1952-03-11 01:02:03"),
+ loc: time.Local,
+ out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.Local),
+ }, {
+ val: DatetimeValue("1952-03-11 01:02:03"),
+ loc: randomLocation,
+ out: time.Date(1952, 3, 11, 1, 2, 3, 0, randomLocation),
+ }, {
+ val: DatetimeValue("1952-03-11 01:02:03"),
+ loc: time.UTC,
+ out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.UTC),
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.000000"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.000001"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, int(1*time.Microsecond), time.UTC),
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.123456"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, int(123456*time.Microsecond), time.UTC),
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.222"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, int(222*time.Millisecond), time.UTC),
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.1234567"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00.1"),
+ out: time.Date(1899, 8, 24, 17, 20, 0, int(100*time.Millisecond), time.UTC),
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00"),
+ out: time.Time{},
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00.0"),
+ out: time.Time{},
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00.000"),
+ out: time.Time{},
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00.000000"),
+ out: time.Time{},
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00.0000000"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-08-24T17:20:00.000000"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-02-31 17:20:00.000000"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00."),
+ out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
+ }, {
+ val: DatetimeValue("0000-00-00 00:00:00.000001"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-08-24 17:20:00 +02:00"),
+ err: true,
+ }, {
+ val: DatetimeValue("1899-08-24"),
+ err: true,
+ }, {
+ val: DatetimeValue("This is not a valid timestamp"),
+ err: true,
+ }}
+
+ for _, tcase := range tcases {
+ got, err := datetimeToNative(tcase.val, tcase.loc)
+ if tcase.err && err == nil {
+ t.Errorf("datetimeToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc)
+ }
+ if !tcase.err && err != nil {
+ t.Errorf("datetimeToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err)
+ }
+ if !reflect.DeepEqual(got, tcase.out) {
+ t.Errorf("datetimeToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out)
+ }
+ }
+}
+
+func TestDateToNative(t *testing.T) {
+ tcases := []struct {
+ val Value
+ loc *time.Location
+ out time.Time
+ err bool
+ }{{
+ val: DateValue("1899-08-24"),
+ out: time.Date(1899, 8, 24, 0, 0, 0, 0, time.UTC),
+ }, {
+ val: DateValue("1952-03-11"),
+ loc: time.Local,
+ out: time.Date(1952, 3, 11, 0, 0, 0, 0, time.Local),
+ }, {
+ val: DateValue("1952-03-11"),
+ loc: randomLocation,
+ out: time.Date(1952, 3, 11, 0, 0, 0, 0, randomLocation),
+ }, {
+ val: DateValue("0000-00-00"),
+ out: time.Time{},
+ }, {
+ val: DateValue("1899-02-31"),
+ err: true,
+ }, {
+ val: DateValue("1899-08-24 17:20:00"),
+ err: true,
+ }, {
+ val: DateValue("0000-00-00 00:00:00"),
+ err: true,
+ }, {
+ val: DateValue("This is not a valid timestamp"),
+ err: true,
+ }}
+
+ for _, tcase := range tcases {
+ got, err := dateToNative(tcase.val, tcase.loc)
+ if tcase.err && err == nil {
+ t.Errorf("dateToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc)
+ }
+ if !tcase.err && err != nil {
+ t.Errorf("dateToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err)
+ }
+ if !reflect.DeepEqual(got, tcase.out) {
+ t.Errorf("dateToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out)
+ }
+ }
+}
+
func TestEncodeSQLStringBuilder(t *testing.T) {
testcases := []struct {
in Value
diff --git a/go/vt/vitessdriver/convert.go b/go/vt/vitessdriver/convert.go
index 7ba95db4147..aa8bcedc7ee 100644
--- a/go/vt/vitessdriver/convert.go
+++ b/go/vt/vitessdriver/convert.go
@@ -43,10 +43,8 @@ func (cv *converter) ToNative(v sqltypes.Value) (any, error) {
return v.ToUint64()
case v.IsFloat():
return v.ToFloat64()
- case v.Type() == sqltypes.Datetime, v.Type() == sqltypes.Timestamp:
- return datetimeToNative(v, cv.location)
- case v.Type() == sqltypes.Date:
- return dateToNative(v, cv.location)
+ case v.Type() == sqltypes.Datetime, v.Type() == sqltypes.Timestamp, v.Type() == sqltypes.Date:
+ return v.ToTimeInLocation(cv.location)
case v.IsQuoted() || v.Type() == sqltypes.Bit || v.Type() == sqltypes.Decimal:
out, err = v.ToBytes()
case v.Type() == sqltypes.Expression:
diff --git a/go/vt/vitessdriver/time.go b/go/vt/vitessdriver/time.go
index 70ec2d679ae..c6526197d9d 100644
--- a/go/vt/vitessdriver/time.go
+++ b/go/vt/vitessdriver/time.go
@@ -17,83 +17,12 @@ limitations under the License.
package vitessdriver
import (
- "errors"
"time"
"vitess.io/vitess/go/sqltypes"
)
-// ErrInvalidTime is returned when we fail to parse a datetime
-// string from MySQL. This should never happen unless things are
-// seriously messed up.
-var ErrInvalidTime = errors.New("invalid MySQL time string")
-
var isoTimeFormat = "2006-01-02 15:04:05.999999"
-var isoNullTime = "0000-00-00 00:00:00.000000"
-var isoTimeLength = len(isoTimeFormat)
-
-// parseISOTime pases a time string in MySQL's textual datetime format.
-// This is very similar to ISO8601, with some differences:
-//
-// - There is no T separator between the date and time sections;
-// a space is used instead.
-// - There is never a timezone section in the string, as these datetimes
-// are not timezone-aware. There isn't a Z value for UTC times for
-// the same reason.
-//
-// Note that this function can handle both DATE (which should _always_ have
-// a length of 10) and DATETIME strings (which have a variable length, 18+
-// depending on the number of decimal sub-second places).
-//
-// Also note that this function handles the case where MySQL returns a NULL
-// time (with a string where all sections are zeroes) by returning a zeroed
-// out time.Time object. NULL time strings are not considered a parsing error.
-//
-// See: isoTimeFormat
-func parseISOTime(tstr string, loc *time.Location, minLen, maxLen int) (t time.Time, err error) {
- tlen := len(tstr)
- if tlen < minLen || tlen > maxLen {
- err = ErrInvalidTime
- return
- }
-
- if tstr == isoNullTime[:tlen] {
- // This is what MySQL would send when the date is NULL,
- // so return an empty time.Time instead.
- // This is not a parsing error
- return
- }
-
- if loc == nil {
- loc = time.UTC
- }
-
- // Since the time format returned from MySQL never has a Timezone
- // section, ParseInLocation will initialize the time.Time struct
- // with the default `loc` we're passing here.
- return time.ParseInLocation(isoTimeFormat[:tlen], tstr, loc)
-}
-
-// datetimeToNative converts a Datetime Value into a time.Time
-func datetimeToNative(v sqltypes.Value, loc *time.Location) (time.Time, error) {
- // Valid format string offsets for a DATETIME
- // |DATETIME |19+
- // |------------------|------|
- // "2006-01-02 15:04:05.999999"
- return parseISOTime(v.ToString(), loc, 19, isoTimeLength)
-}
-
-// dateToNative converts a Date Value into a time.Time.
-// Note that there's no specific type in the Go stdlib to represent
-// dates without time components, so the returned Time will have
-// their hours/mins/seconds zeroed out.
-func dateToNative(v sqltypes.Value, loc *time.Location) (time.Time, error) {
- // Valid format string offsets for a DATE
- // |DATE |10
- // |---------|
- // "2006-01-02 00:00:00.000000"
- return parseISOTime(v.ToString(), loc, 10, 10)
-}
// NewDatetime builds a Datetime Value
func NewDatetime(t time.Time, defaultLoc *time.Location) sqltypes.Value {
diff --git a/go/vt/vitessdriver/time_test.go b/go/vt/vitessdriver/time_test.go
deleted file mode 100644
index 949d8f43354..00000000000
--- a/go/vt/vitessdriver/time_test.go
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
-Copyright 2019 The Vitess Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package vitessdriver
-
-import (
- "reflect"
- "testing"
- "time"
-
- "vitess.io/vitess/go/sqltypes"
-)
-
-var randomLocation = time.FixedZone("Nowhere", 3*60*60)
-
-func DatetimeValue(str string) sqltypes.Value {
- return sqltypes.TestValue(sqltypes.Datetime, str)
-}
-
-func DateValue(str string) sqltypes.Value {
- return sqltypes.TestValue(sqltypes.Date, str)
-}
-
-func TestDatetimeToNative(t *testing.T) {
-
- tcases := []struct {
- val sqltypes.Value
- loc *time.Location
- out time.Time
- err bool
- }{{
- val: DatetimeValue("1899-08-24 17:20:00"),
- out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
- }, {
- val: DatetimeValue("1952-03-11 01:02:03"),
- loc: time.Local,
- out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.Local),
- }, {
- val: DatetimeValue("1952-03-11 01:02:03"),
- loc: randomLocation,
- out: time.Date(1952, 3, 11, 1, 2, 3, 0, randomLocation),
- }, {
- val: DatetimeValue("1952-03-11 01:02:03"),
- loc: time.UTC,
- out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.UTC),
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.000000"),
- out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.000001"),
- out: time.Date(1899, 8, 24, 17, 20, 0, int(1*time.Microsecond), time.UTC),
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.123456"),
- out: time.Date(1899, 8, 24, 17, 20, 0, int(123456*time.Microsecond), time.UTC),
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.222"),
- out: time.Date(1899, 8, 24, 17, 20, 0, int(222*time.Millisecond), time.UTC),
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.1234567"),
- err: true,
- }, {
- val: DatetimeValue("1899-08-24 17:20:00.1"),
- out: time.Date(1899, 8, 24, 17, 20, 0, int(100*time.Millisecond), time.UTC),
- }, {
- val: DatetimeValue("0000-00-00 00:00:00"),
- out: time.Time{},
- }, {
- val: DatetimeValue("0000-00-00 00:00:00.0"),
- out: time.Time{},
- }, {
- val: DatetimeValue("0000-00-00 00:00:00.000"),
- out: time.Time{},
- }, {
- val: DatetimeValue("0000-00-00 00:00:00.000000"),
- out: time.Time{},
- }, {
- val: DatetimeValue("0000-00-00 00:00:00.0000000"),
- err: true,
- }, {
- val: DatetimeValue("1899-08-24T17:20:00.000000"),
- err: true,
- }, {
- val: DatetimeValue("1899-02-31 17:20:00.000000"),
- err: true,
- }, {
- val: DatetimeValue("1899-08-24 17:20:00."),
- out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC),
- }, {
- val: DatetimeValue("0000-00-00 00:00:00.000001"),
- err: true,
- }, {
- val: DatetimeValue("1899-08-24 17:20:00 +02:00"),
- err: true,
- }, {
- val: DatetimeValue("1899-08-24"),
- err: true,
- }, {
- val: DatetimeValue("This is not a valid timestamp"),
- err: true,
- }}
-
- for _, tcase := range tcases {
- got, err := datetimeToNative(tcase.val, tcase.loc)
- if tcase.err && err == nil {
- t.Errorf("datetimeToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc)
- }
- if !tcase.err && err != nil {
- t.Errorf("datetimeToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err)
- }
- if !reflect.DeepEqual(got, tcase.out) {
- t.Errorf("datetimeToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out)
- }
- }
-}
-
-func TestDateToNative(t *testing.T) {
- tcases := []struct {
- val sqltypes.Value
- loc *time.Location
- out time.Time
- err bool
- }{{
- val: DateValue("1899-08-24"),
- out: time.Date(1899, 8, 24, 0, 0, 0, 0, time.UTC),
- }, {
- val: DateValue("1952-03-11"),
- loc: time.Local,
- out: time.Date(1952, 3, 11, 0, 0, 0, 0, time.Local),
- }, {
- val: DateValue("1952-03-11"),
- loc: randomLocation,
- out: time.Date(1952, 3, 11, 0, 0, 0, 0, randomLocation),
- }, {
- val: DateValue("0000-00-00"),
- out: time.Time{},
- }, {
- val: DateValue("1899-02-31"),
- err: true,
- }, {
- val: DateValue("1899-08-24 17:20:00"),
- err: true,
- }, {
- val: DateValue("0000-00-00 00:00:00"),
- err: true,
- }, {
- val: DateValue("This is not a valid timestamp"),
- err: true,
- }}
-
- for _, tcase := range tcases {
- got, err := dateToNative(tcase.val, tcase.loc)
- if tcase.err && err == nil {
- t.Errorf("dateToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc)
- }
- if !tcase.err && err != nil {
- t.Errorf("dateToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err)
- }
- if !reflect.DeepEqual(got, tcase.out) {
- t.Errorf("dateToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out)
- }
- }
-}
From 2c6e053e5078197ad20742b79215239d156fb46e Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Wed, 20 Nov 2024 08:39:26 +0200
Subject: [PATCH 66/78] VReplication: recover from closed connection (#17249)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/binlog/binlogplayer/dbclient.go | 5 +++++
go/vt/binlog/binlogplayer/fake_dbclient.go | 4 ++++
go/vt/binlog/binlogplayer/mock_dbclient.go | 4 ++++
.../vttablet/tabletmanager/vdiff/framework_test.go | 4 ++++
.../tabletmanager/vreplication/framework_test.go | 4 ++++
.../tabletmanager/vreplication/vreplicator.go | 13 ++++++++++---
go/vt/wrangler/fake_dbclient_test.go | 4 ++++
7 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/go/vt/binlog/binlogplayer/dbclient.go b/go/vt/binlog/binlogplayer/dbclient.go
index c3463b4cc2c..4cbfd962528 100644
--- a/go/vt/binlog/binlogplayer/dbclient.go
+++ b/go/vt/binlog/binlogplayer/dbclient.go
@@ -40,6 +40,7 @@ type DBClient interface {
Commit() error
Rollback() error
Close()
+ IsClosed() bool
ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error)
ExecuteFetchMulti(query string, maxrows int) (qrs []*sqltypes.Result, err error)
SupportsCapability(capability capabilities.FlavorCapability) (bool, error)
@@ -125,6 +126,10 @@ func (dc *dbClientImpl) Close() {
dc.dbConn.Close()
}
+func (dc *dbClientImpl) IsClosed() bool {
+ return dc.dbConn.IsClosed()
+}
+
func (dc *dbClientImpl) SupportsCapability(capability capabilities.FlavorCapability) (bool, error) {
return dc.dbConn.SupportsCapability(capability)
}
diff --git a/go/vt/binlog/binlogplayer/fake_dbclient.go b/go/vt/binlog/binlogplayer/fake_dbclient.go
index 234dfd528e0..69bbd06f7c6 100644
--- a/go/vt/binlog/binlogplayer/fake_dbclient.go
+++ b/go/vt/binlog/binlogplayer/fake_dbclient.go
@@ -56,6 +56,10 @@ func (dc *fakeDBClient) Rollback() error {
func (dc *fakeDBClient) Close() {
}
+func (dc *fakeDBClient) IsClosed() bool {
+ return false
+}
+
func (dc *fakeDBClient) ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error) {
query = strings.ToLower(query)
switch {
diff --git a/go/vt/binlog/binlogplayer/mock_dbclient.go b/go/vt/binlog/binlogplayer/mock_dbclient.go
index f0a811a30cf..12005a16c2e 100644
--- a/go/vt/binlog/binlogplayer/mock_dbclient.go
+++ b/go/vt/binlog/binlogplayer/mock_dbclient.go
@@ -181,6 +181,10 @@ func (dc *MockDBClient) Rollback() error {
func (dc *MockDBClient) Close() {
}
+func (dc *MockDBClient) IsClosed() bool {
+ return false
+}
+
// ExecuteFetch is part of the DBClient interface
func (dc *MockDBClient) ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error) {
// Serialize ExecuteFetch to enforce a strict order on shared dbClients.
diff --git a/go/vt/vttablet/tabletmanager/vdiff/framework_test.go b/go/vt/vttablet/tabletmanager/vdiff/framework_test.go
index 33a0da8e23f..7d4cdb78c20 100644
--- a/go/vt/vttablet/tabletmanager/vdiff/framework_test.go
+++ b/go/vt/vttablet/tabletmanager/vdiff/framework_test.go
@@ -396,6 +396,10 @@ func (dbc *realDBClient) Close() {
dbc.conn.Close()
}
+func (dbc *realDBClient) IsClosed() bool {
+ return dbc.conn.IsClosed()
+}
+
func (dbc *realDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) {
// Use Clone() because the contents of memory region referenced by
// string can change when clients (e.g. vcopier) use unsafe string methods.
diff --git a/go/vt/vttablet/tabletmanager/vreplication/framework_test.go b/go/vt/vttablet/tabletmanager/vreplication/framework_test.go
index 12d20e3a867..fe8b62d3cef 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/framework_test.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/framework_test.go
@@ -479,6 +479,10 @@ func (dbc *realDBClient) Close() {
dbc.conn.Close()
}
+func (dbc *realDBClient) IsClosed() bool {
+ return dbc.conn.IsClosed()
+}
+
func (dbc *realDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) {
// Use Clone() because the contents of memory region referenced by
// string can change when clients (e.g. vcopier) use unsafe string methods.
diff --git a/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go b/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go
index 0c5c0b5b334..9ec274ab0ea 100644
--- a/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go
+++ b/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go
@@ -186,11 +186,18 @@ func newVReplicator(id int32, source *binlogdatapb.BinlogSource, sourceVStreamer
// code.
func (vr *vreplicator) Replicate(ctx context.Context) error {
err := vr.replicate(ctx)
- if err != nil {
- if err := vr.setMessage(err.Error()); err != nil {
- binlogplayer.LogError("Failed to set error state", err)
+ if err == nil {
+ return nil
+ }
+ if vr.dbClient.IsClosed() {
+ // Connection was possible terminated by the server. We should renew it.
+ if cerr := vr.dbClient.Connect(); cerr != nil {
+ return vterrors.Wrapf(err, "failed to reconnect to the database: %v", cerr)
}
}
+ if err := vr.setMessage(err.Error()); err != nil {
+ binlogplayer.LogError("Failed to set error state", err)
+ }
return err
}
diff --git a/go/vt/wrangler/fake_dbclient_test.go b/go/vt/wrangler/fake_dbclient_test.go
index 14ef0913383..02ee79210d7 100644
--- a/go/vt/wrangler/fake_dbclient_test.go
+++ b/go/vt/wrangler/fake_dbclient_test.go
@@ -153,6 +153,10 @@ func (dc *fakeDBClient) Rollback() error {
func (dc *fakeDBClient) Close() {
}
+func (dc *fakeDBClient) IsClosed() bool {
+ return false
+}
+
// ExecuteFetch is part of the DBClient interface
func (dc *fakeDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) {
dc.mu.Lock()
From fb79106214a55e9ce0031fe50eaec0f83e46f0eb Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Wed, 20 Nov 2024 09:11:57 +0200
Subject: [PATCH 67/78] Tablet throttler: read and use MySQL host metrics
(#16904)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/osutil/loadavg.go | 33 ++++
go/osutil/loadavg_darwin.go | 40 +++++
go/osutil/loadavg_linux.go | 33 ++++
go/osutil/loadavg_other.go | 25 +++
go/osutil/loadavg_test.go | 77 +++++++++
.../throttler_topo/throttler_test.go | 64 +++++--
go/test/endtoend/throttler/util.go | 8 +-
go/textutil/strings.go | 13 ++
go/textutil/strings_test.go | 58 +++++++
go/vt/mysqlctl/mysqld.go | 14 +-
.../throttle/base/metric_cache.go | 5 +-
.../tabletserver/throttle/base/metric_name.go | 12 +-
.../throttle/base/metric_name_test.go | 24 +++
.../tabletserver/throttle/base/self_metric.go | 11 +-
.../throttle/base/self_metric_custom_query.go | 6 +-
.../throttle/base/self_metric_default.go | 4 +-
.../throttle/base/self_metric_lag.go | 5 +-
.../throttle/base/self_metric_loadavg.go | 49 +++---
.../throttle/base/self_metric_mysqld.go | 156 ++++++++++++++++++
.../throttle/base/self_metric_mysqld_test.go | 72 ++++++++
.../base/self_metric_threads_running.go | 6 +-
.../base/throttler_metrics_publisher.go | 4 +-
go/vt/vttablet/tabletserver/throttle/check.go | 8 +-
.../tabletserver/throttle/throttler.go | 52 +++---
.../tabletserver/throttle/throttler_test.go | 74 +++++++--
25 files changed, 735 insertions(+), 118 deletions(-)
create mode 100644 go/osutil/loadavg.go
create mode 100644 go/osutil/loadavg_darwin.go
create mode 100644 go/osutil/loadavg_linux.go
create mode 100644 go/osutil/loadavg_other.go
create mode 100644 go/osutil/loadavg_test.go
create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go
create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go
diff --git a/go/osutil/loadavg.go b/go/osutil/loadavg.go
new file mode 100644
index 00000000000..0c71f9e18b1
--- /dev/null
+++ b/go/osutil/loadavg.go
@@ -0,0 +1,33 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package osutil
+
+import (
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+// parseLoadAvg parses the load average from the content of /proc/loadavg or sysctl output.
+// Input such as "1.00 0.99 0.98 1/1 1", "2.83 3.01 3.36"
+func parseLoadAvg(content string) (float64, error) {
+ fields := strings.Fields(content)
+ if len(fields) == 0 {
+ return 0, fmt.Errorf("unexpected loadavg content: %s", content)
+ }
+ return strconv.ParseFloat(fields[0], 64)
+}
diff --git a/go/osutil/loadavg_darwin.go b/go/osutil/loadavg_darwin.go
new file mode 100644
index 00000000000..f7b5b6e492a
--- /dev/null
+++ b/go/osutil/loadavg_darwin.go
@@ -0,0 +1,40 @@
+//go:build darwin
+
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package osutil
+
+import (
+ "fmt"
+ "os/exec"
+)
+
+// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems.
+// On other systems, it returns 0 with no error.
+func LoadAvg() (float64, error) {
+ cmd := exec.Command("sysctl", "-n", "vm.loadavg")
+ // Sample output: `{ 2.83 3.01 3.36 }`
+ output, err := cmd.CombinedOutput()
+ if err != nil {
+ return 0, err
+ }
+ if len(output) < 1 {
+ return 0, fmt.Errorf("unexpected sysctl output: %q", output)
+ }
+ output = output[1:] // Remove the leading `{ `
+ return parseLoadAvg(string(output))
+}
diff --git a/go/osutil/loadavg_linux.go b/go/osutil/loadavg_linux.go
new file mode 100644
index 00000000000..7663bf60ab7
--- /dev/null
+++ b/go/osutil/loadavg_linux.go
@@ -0,0 +1,33 @@
+//go:build linux
+
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package osutil
+
+import (
+ "os"
+)
+
+// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems.
+// On other systems, it returns 0 with no error.
+func LoadAvg() (float64, error) {
+ content, err := os.ReadFile("/proc/loadavg")
+ if err != nil {
+ return 0, err
+ }
+ return parseLoadAvg(string(content))
+}
diff --git a/go/osutil/loadavg_other.go b/go/osutil/loadavg_other.go
new file mode 100644
index 00000000000..a516cb46a66
--- /dev/null
+++ b/go/osutil/loadavg_other.go
@@ -0,0 +1,25 @@
+//go:build !linux && !darwin
+
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package osutil
+
+// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems.
+// On other systems, it returns 0 with no error.
+func LoadAvg() (float64, error) {
+ return 0, nil
+}
diff --git a/go/osutil/loadavg_test.go b/go/osutil/loadavg_test.go
new file mode 100644
index 00000000000..5f3831648c6
--- /dev/null
+++ b/go/osutil/loadavg_test.go
@@ -0,0 +1,77 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package osutil
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestLoadAvgValue(t *testing.T) {
+ tcases := []struct {
+ input string
+ loadavg float64
+ isError bool
+ }{
+ {
+ input: "",
+ isError: true,
+ },
+ {
+ input: "{}",
+ isError: true,
+ },
+ {
+ input: "{ x y z }",
+ isError: true,
+ },
+ {
+ input: "1",
+ loadavg: 1.0,
+ },
+ {
+ input: "0.00 0.00 0.00 1/1 1",
+ loadavg: 0.0,
+ },
+ {
+ input: "2.72 2.89 3.17",
+ loadavg: 2.72,
+ },
+ {
+ input: " 2.72 2.89 3.17",
+ loadavg: 2.72,
+ },
+ }
+ for _, tcase := range tcases {
+ t.Run(tcase.input, func(t *testing.T) {
+ loadavg, err := parseLoadAvg(tcase.input)
+ if tcase.isError {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ assert.Equal(t, tcase.loadavg, loadavg)
+ }
+ })
+ }
+}
+
+func TestLoadAvg(t *testing.T) {
+ loadavg, err := LoadAvg()
+ assert.NoError(t, err)
+ assert.GreaterOrEqual(t, loadavg, 0.0)
+}
diff --git a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
index 08cea643940..f96069c81b8 100644
--- a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
+++ b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
@@ -215,7 +215,7 @@ func warmUpHeartbeat(t *testing.T) tabletmanagerdatapb.CheckThrottlerResponseCod
}
// waitForThrottleCheckStatus waits for the tablet to return the provided HTTP code in a throttle check
-func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode tabletmanagerdatapb.CheckThrottlerResponseCode) bool {
+func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode tabletmanagerdatapb.CheckThrottlerResponseCode) (*tabletmanagerdatapb.CheckThrottlerResponse, bool) {
_ = warmUpHeartbeat(t)
ctx, cancel := context.WithTimeout(context.Background(), onDemandHeartbeatDuration*4)
defer cancel()
@@ -229,11 +229,11 @@ func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode
if wantCode == resp.Check.ResponseCode {
// Wait for any cached check values to be cleared and the new
// status value to be in effect everywhere before returning.
- return true
+ return resp.Check, true
}
select {
case <-ctx.Done():
- return assert.EqualValues(t, wantCode, resp.Check.StatusCode, "response: %+v", resp)
+ return resp.Check, false
case <-ticker.C:
}
}
@@ -779,16 +779,16 @@ func TestUpdateAppCheckedMetrics(t *testing.T) {
}
waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED)
})
- t.Run("assigning 'loadavg' metrics to 'test' app", func(t *testing.T) {
+ t.Run("assigning 'threads_running' metrics to 'test' app", func(t *testing.T) {
{
- req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: "loadavg", Threshold: 7777}
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.ThreadsRunningMetricName.String(), Threshold: 7777}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
assert.NoError(t, err)
}
{
req := &vtctldatapb.UpdateThrottlerConfigRequest{}
appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{
- testAppName.String(): {Names: []string{"loadavg"}},
+ testAppName.String(): {Names: []string{base.ThreadsRunningMetricName.String()}},
}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics)
assert.NoError(t, err)
@@ -802,18 +802,18 @@ func TestUpdateAppCheckedMetrics(t *testing.T) {
for _, tablet := range []cluster.Vttablet{*primaryTablet, *replicaTablet} {
throttler.WaitForThrottlerStatusEnabled(t, &clusterInstance.VtctldClientProcess, &tablet, true, &throttler.Config{Query: throttler.DefaultQuery, Threshold: unreasonablyLowThreshold.Seconds()}, throttlerEnabledTimeout)
}
- t.Run("validating OK response from throttler since it's checking loadavg", func(t *testing.T) {
- if !waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK) {
+ t.Run("validating OK response from throttler since it's checking threads_running", func(t *testing.T) {
+ if _, ok := waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK); !ok {
t.Logf("throttler primary status: %+v", throttleStatus(t, primaryTablet))
t.Logf("throttler replica status: %+v", throttleStatus(t, replicaTablet))
}
})
})
- t.Run("assigning 'loadavg,lag' metrics to 'test' app", func(t *testing.T) {
+ t.Run("assigning 'threads_running,lag' metrics to 'test' app", func(t *testing.T) {
{
req := &vtctldatapb.UpdateThrottlerConfigRequest{}
appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{
- testAppName.String(): {Names: []string{"loadavg,lag"}},
+ testAppName.String(): {Names: []string{base.ThreadsRunningMetricName.String(), base.LagMetricName.String()}},
}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics)
assert.NoError(t, err)
@@ -831,9 +831,51 @@ func TestUpdateAppCheckedMetrics(t *testing.T) {
waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED)
})
})
+ t.Run("assigning 'mysqld-loadavg,mysqld-datadir-used-ratio' metrics to 'test' app", func(t *testing.T) {
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldDatadirUsedRatioMetricName.String(), Threshold: 0.9999}
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
+ assert.NoError(t, err)
+ }
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldLoadAvgMetricName.String(), Threshold: 5555}
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
+ assert.NoError(t, err)
+ }
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{}
+ appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{
+ testAppName.String(): {Names: []string{base.MysqldDatadirUsedRatioMetricName.String(), base.MysqldLoadAvgMetricName.String()}},
+ }
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics)
+ assert.NoError(t, err)
+ }
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: extremelyHighThreshold.Seconds()}
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
+ assert.NoError(t, err)
+ }
+ // Wait for the throttler to be enabled everywhere with new config.
+ for _, tablet := range []cluster.Vttablet{*primaryTablet, *replicaTablet} {
+ throttler.WaitForThrottlerStatusEnabled(t, &clusterInstance.VtctldClientProcess, &tablet, true, &throttler.Config{Query: throttler.DefaultQuery, Threshold: extremelyHighThreshold.Seconds()}, throttlerEnabledTimeout)
+ }
+ t.Run("validating OK response from throttler since it's checking mysqld-loadavg,mysqld-datadir-used-ratio", func(t *testing.T) {
+ resp, ok := waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK)
+ if !ok {
+ t.Logf("response: %+v", resp)
+ t.Logf("throttler primary status: %+v", throttleStatus(t, primaryTablet))
+ t.Logf("throttler replica status: %+v", throttleStatus(t, replicaTablet))
+ }
+ require.Contains(t, resp.Metrics, base.MysqldDatadirUsedRatioMetricName.String())
+ require.Contains(t, resp.Metrics, base.MysqldLoadAvgMetricName.String())
+ assert.NotContains(t, resp.Metrics, base.ThreadsRunningMetricName.String())
+
+ assert.NotZero(t, resp.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value)
+ })
+ })
t.Run("removing assignment from 'test' app and restoring defaults", func(t *testing.T) {
{
- req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: "loadavg", Threshold: 0}
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.ThreadsRunningMetricName.String(), Threshold: 0}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
assert.NoError(t, err)
}
diff --git a/go/test/endtoend/throttler/util.go b/go/test/endtoend/throttler/util.go
index fccad19c324..a426355e01c 100644
--- a/go/test/endtoend/throttler/util.go
+++ b/go/test/endtoend/throttler/util.go
@@ -529,7 +529,7 @@ func WaitForValidData(t *testing.T, tablet *cluster.Vttablet, timeout time.Durat
selfCheckURL := fmt.Sprintf("http://localhost:%d/throttler/check-self", tablet.HTTPPort)
ctx, cancel := context.WithTimeout(context.Background(), timeout)
defer cancel()
- ticker := time.NewTicker(500 * time.Millisecond)
+ ticker := time.NewTicker(time.Second)
defer ticker.Stop()
for {
@@ -548,8 +548,10 @@ func WaitForValidData(t *testing.T, tablet *cluster.Vttablet, timeout time.Durat
}
select {
case <-ctx.Done():
- t.Errorf("timed out waiting for %s tablet's throttler to return a valid result after %v; last seen value: %+v",
- tablet.Alias, timeout, checkResp)
+ respByte, _ := io.ReadAll(checkResp.Body)
+ body := string(respByte)
+ require.Failf(t, "time out", "waiting for %s tablet's throttler to return a valid result after %v; last seen result: %+v",
+ tablet.Alias, timeout, body)
return
case <-ticker.C:
}
diff --git a/go/textutil/strings.go b/go/textutil/strings.go
index 2a923cd3259..a17daf8d382 100644
--- a/go/textutil/strings.go
+++ b/go/textutil/strings.go
@@ -90,6 +90,19 @@ func SingleWordCamel(w string) string {
return strings.ToUpper(w[0:1]) + strings.ToLower(w[1:])
}
+var multiWordSplitterRegexp = regexp.MustCompile(`[-_.\s]+`)
+
+// PascalCase turns a string into PascalCase by splitting it into words and
+// capitalizing the first letter of each word.
+func PascalCase(w string) string {
+ var b strings.Builder
+ words := multiWordSplitterRegexp.Split(w, -1)
+ for _, word := range words {
+ b.WriteString(SingleWordCamel(word))
+ }
+ return b.String()
+}
+
// ValueIsSimulatedNull returns true if the slice value represents
// a NULL or unknown/unspecified value. This is used to distinguish
// between a zero value empty slice and a user provided value of an
diff --git a/go/textutil/strings_test.go b/go/textutil/strings_test.go
index d65c187c4cb..828f39847cf 100644
--- a/go/textutil/strings_test.go
+++ b/go/textutil/strings_test.go
@@ -122,6 +122,64 @@ func TestSingleWordCamel(t *testing.T) {
}
}
+func TestPascalCase(t *testing.T) {
+ tt := []struct {
+ word string
+ expect string
+ }{
+ {
+ word: "",
+ expect: "",
+ },
+ {
+ word: "_",
+ expect: "",
+ },
+ {
+ word: "_a",
+ expect: "A",
+ },
+ {
+ word: "A",
+ expect: "A",
+ },
+ {
+ word: "mysql",
+ expect: "Mysql",
+ },
+ {
+ word: "mySQL",
+ expect: "Mysql",
+ },
+ {
+ word: "foo-bar",
+ expect: "FooBar",
+ },
+ {
+ word: "mysql-server",
+ expect: "MysqlServer",
+ },
+ {
+ word: "io_util",
+ expect: "IoUtil",
+ },
+ {
+ word: "there and back again",
+ expect: "ThereAndBackAgain",
+ },
+ {
+ word: "combine_all_OF the\tabove",
+ expect: "CombineAllOfTheAbove",
+ },
+ }
+ for _, tc := range tt {
+ t.Run(tc.word, func(t *testing.T) {
+ pascal := PascalCase(tc.word)
+ assert.Equal(t, tc.expect, pascal)
+ })
+ }
+}
+
func TestValueIsSimulatedNull(t *testing.T) {
tt := []struct {
name string
diff --git a/go/vt/mysqlctl/mysqld.go b/go/vt/mysqlctl/mysqld.go
index 72c1d8f6658..d7435705a8a 100644
--- a/go/vt/mysqlctl/mysqld.go
+++ b/go/vt/mysqlctl/mysqld.go
@@ -47,6 +47,7 @@ import (
"vitess.io/vitess/config"
"vitess.io/vitess/go/mysql"
"vitess.io/vitess/go/mysql/sqlerror"
+ "vitess.io/vitess/go/osutil"
"vitess.io/vitess/go/protoutil"
"vitess.io/vitess/go/sqltypes"
"vitess.io/vitess/go/vt/dbconfigs"
@@ -1332,18 +1333,7 @@ func hostMetrics(ctx context.Context, cnf *Mycnf) (*mysqlctlpb.HostMetricsRespon
_ = func() error {
metric := newMetric("loadavg")
- if runtime.GOOS != "linux" {
- return withError(metric, fmt.Errorf("loadavg metric is only available on Linux"))
- }
- content, err := os.ReadFile("/proc/loadavg")
- if err != nil {
- return withError(metric, err)
- }
- fields := strings.Fields(string(content))
- if len(fields) == 0 {
- return withError(metric, fmt.Errorf("unexpected /proc/loadavg content"))
- }
- loadAvg, err := strconv.ParseFloat(fields[0], 64)
+ loadAvg, err := osutil.LoadAvg()
if err != nil {
return withError(metric, err)
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go b/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go
index 8695cb83229..faad65ca79e 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go
@@ -49,6 +49,7 @@ import (
"github.com/patrickmn/go-cache"
"vitess.io/vitess/go/stats"
+ "vitess.io/vitess/go/vt/vttablet/tmclient"
)
// MetricsQueryType indicates the type of metrics query on MySQL backend. See following.
@@ -142,13 +143,13 @@ func (metric *ThrottleMetric) WithError(err error) *ThrottleMetric {
// ReadThrottleMetrics returns a metric for the given probe. Either by explicit query
// or via SHOW REPLICA STATUS
-func ReadThrottleMetrics(ctx context.Context, probe *Probe, metricsFunc func(context.Context) ThrottleMetrics) ThrottleMetrics {
+func ReadThrottleMetrics(ctx context.Context, probe *Probe, tmClient tmclient.TabletManagerClient, metricsFunc func(context.Context, tmclient.TabletManagerClient) ThrottleMetrics) ThrottleMetrics {
if metrics := getCachedThrottleMetrics(probe); metrics != nil {
return metrics
}
started := time.Now()
- throttleMetrics := metricsFunc(ctx)
+ throttleMetrics := metricsFunc(ctx, tmClient)
go func(metrics ThrottleMetrics, started time.Time) {
stats.GetOrNewGauge("ThrottlerProbesLatency", "probes latency").Set(time.Since(started).Nanoseconds())
diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
index 98e1288fb23..607192b9c0c 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
@@ -60,11 +60,13 @@ func (names MetricNames) Unique() MetricNames {
}
const (
- DefaultMetricName MetricName = "default"
- LagMetricName MetricName = "lag"
- ThreadsRunningMetricName MetricName = "threads_running"
- CustomMetricName MetricName = "custom"
- LoadAvgMetricName MetricName = "loadavg"
+ DefaultMetricName MetricName = "default"
+ LagMetricName MetricName = "lag"
+ ThreadsRunningMetricName MetricName = "threads_running"
+ CustomMetricName MetricName = "custom"
+ LoadAvgMetricName MetricName = "loadavg"
+ MysqldLoadAvgMetricName MetricName = "mysqld-loadavg"
+ MysqldDatadirUsedRatioMetricName MetricName = "mysqld-datadir-used-ratio"
)
func (metric MetricName) DefaultScope() Scope {
diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
index 9867ca18db3..ffd7f674cc2 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
@@ -21,6 +21,9 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "vitess.io/vitess/go/textutil"
)
func TestAggregateName(t *testing.T) {
@@ -238,4 +241,25 @@ func TestKnownMetricNames(t *testing.T) {
assert.Contains(t, KnownMetricNames, LoadAvgMetricName)
assert.Contains(t, KnownMetricNames, CustomMetricName)
assert.Contains(t, KnownMetricNames, DefaultMetricName)
+ assert.Contains(t, KnownMetricNames, MysqldLoadAvgMetricName)
+ assert.Contains(t, KnownMetricNames, MysqldDatadirUsedRatioMetricName)
+}
+
+func TestSingleWordCamelKnownMetricNames(t *testing.T) {
+ expectCases := map[MetricName]string{
+ LagMetricName: "Lag",
+ ThreadsRunningMetricName: "ThreadsRunning",
+ LoadAvgMetricName: "Loadavg",
+ CustomMetricName: "Custom",
+ DefaultMetricName: "Default",
+ MysqldLoadAvgMetricName: "MysqldLoadavg",
+ MysqldDatadirUsedRatioMetricName: "MysqldDatadirUsedRatio",
+ }
+ for _, metricName := range KnownMetricNames {
+ t.Run(metricName.String(), func(t *testing.T) {
+ expect, ok := expectCases[metricName]
+ require.True(t, ok)
+ assert.Equal(t, expect, textutil.PascalCase(metricName.String()))
+ })
+ }
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric.go
index 220dfa6bf60..88fbe2bdd13 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric.go
@@ -21,15 +21,24 @@ import (
"fmt"
"strconv"
+ "vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
+ "vitess.io/vitess/go/vt/vttablet/tmclient"
)
+type SelfMetricReadParams struct {
+ Throttler metricsPublisher
+ Conn *connpool.Conn
+ TmClient tmclient.TabletManagerClient
+ TabletInfo *topo.TabletInfo
+}
+
type SelfMetric interface {
Name() MetricName
DefaultScope() Scope
DefaultThreshold() float64
RequiresConn() bool
- Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric
+ Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric
}
var (
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go
index 585e63ea285..88f789e5dcd 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go
@@ -18,8 +18,6 @@ package base
import (
"context"
-
- "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
)
var _ SelfMetric = registerSelfMetric(&CustomQuerySelfMetric{})
@@ -43,6 +41,6 @@ func (m *CustomQuerySelfMetric) RequiresConn() bool {
return true
}
-func (m *CustomQuerySelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric {
- return ReadSelfMySQLThrottleMetric(ctx, conn, throttler.GetCustomMetricsQuery())
+func (m *CustomQuerySelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ return ReadSelfMySQLThrottleMetric(ctx, params.Conn, params.Throttler.GetCustomMetricsQuery())
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go
index 8bce295da7c..97309fa6ea9 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go
@@ -19,8 +19,6 @@ package base
import (
"context"
"fmt"
-
- "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
)
var _ SelfMetric = registerSelfMetric(&DefaultSelfMetric{})
@@ -44,7 +42,7 @@ func (m *DefaultSelfMetric) RequiresConn() bool {
return false
}
-func (m *DefaultSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric {
+func (m *DefaultSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
return &ThrottleMetric{
Err: fmt.Errorf("unexpected direct call to DefaultSelfMetric.Read"),
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go
index dc25ee5622a..3d0e4beebe1 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go
@@ -23,7 +23,6 @@ import (
"vitess.io/vitess/go/constants/sidecar"
"vitess.io/vitess/go/vt/sqlparser"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
)
var (
@@ -65,6 +64,6 @@ func (m *LagSelfMetric) RequiresConn() bool {
return true
}
-func (m *LagSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric {
- return ReadSelfMySQLThrottleMetric(ctx, conn, m.GetQuery())
+func (m *LagSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ return ReadSelfMySQLThrottleMetric(ctx, params.Conn, m.GetQuery())
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go
index 40a2878421a..2d880169020 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go
@@ -18,20 +18,16 @@ package base
import (
"context"
- "fmt"
- "os"
"runtime"
- "strconv"
- "strings"
+ "sync/atomic"
+ "time"
- "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
+ "vitess.io/vitess/go/osutil"
)
var (
- loadavgOnlyAvailableOnLinuxMetric = &ThrottleMetric{
- Scope: SelfScope,
- Err: fmt.Errorf("loadavg metric is only available on Linux"),
- }
+ cachedLoadAvgMetric atomic.Pointer[ThrottleMetric]
+ loadAvgCacheDuration = 1 * time.Second
)
var _ SelfMetric = registerSelfMetric(&LoadAvgSelfMetric{})
@@ -55,27 +51,26 @@ func (m *LoadAvgSelfMetric) RequiresConn() bool {
return false
}
-func (m *LoadAvgSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric {
- if runtime.GOOS != "linux" {
- return loadavgOnlyAvailableOnLinuxMetric
+func (m *LoadAvgSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ // This function will be called sequentially, and therefore does not need strong mutex protection. Still, we use atomics
+ // to ensure correctness in case an external goroutine tries to read the metric concurrently.
+ metric := cachedLoadAvgMetric.Load()
+ if metric != nil {
+ return metric
}
- metric := &ThrottleMetric{
+ metric = &ThrottleMetric{
Scope: SelfScope,
}
- {
- content, err := os.ReadFile("/proc/loadavg")
- if err != nil {
- return metric.WithError(err)
- }
- fields := strings.Fields(string(content))
- if len(fields) == 0 {
- return metric.WithError(fmt.Errorf("unexpected /proc/loadavg content"))
- }
- loadAvg, err := strconv.ParseFloat(fields[0], 64)
- if err != nil {
- return metric.WithError(err)
- }
- metric.Value = loadAvg / float64(runtime.NumCPU())
+ val, err := osutil.LoadAvg()
+ if err != nil {
+ return metric.WithError(err)
}
+ metric.Value = val / float64(runtime.NumCPU())
+
+ cachedLoadAvgMetric.Store(metric)
+ time.AfterFunc(loadAvgCacheDuration, func() {
+ cachedLoadAvgMetric.Store(nil)
+ })
+
return metric
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go
new file mode 100644
index 00000000000..321837d86b4
--- /dev/null
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go
@@ -0,0 +1,156 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package base
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "sync/atomic"
+ "time"
+
+ "vitess.io/vitess/go/timer"
+
+ tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata"
+)
+
+var (
+ mysqlHostMetricsRpcTimeout = 5 * time.Second
+ mysqlHostMetricsRateLimit = 10 * time.Second
+ mysqlHostMetricsRateLimiter atomic.Pointer[timer.RateLimiter]
+ lastMySQLHostMetricsResponse atomic.Pointer[tabletmanagerdatapb.MysqlHostMetricsResponse]
+)
+
+// getMysqlMetricsRateLimiter returns a rate limiter that is active until the given context is cancelled.
+// This function will be called sequentially, but nonetheless it offers _some_ concurrent safety. Namely,
+// that a created rate limiter is guaranteed to be cleaned up
+func getMysqlMetricsRateLimiter(ctx context.Context, rateLimit time.Duration) *timer.RateLimiter {
+ rateLimiter := mysqlHostMetricsRateLimiter.Load()
+ if rateLimiter == nil {
+ rateLimiter = timer.NewRateLimiter(rateLimit)
+ go func() {
+ defer mysqlHostMetricsRateLimiter.Store(nil)
+ defer rateLimiter.Stop()
+ <-ctx.Done()
+ }()
+ mysqlHostMetricsRateLimiter.Store(rateLimiter)
+ }
+ return rateLimiter
+}
+
+// readMysqlHostMetrics reads MySQL host metrics sporadically from the tablet manager (which in turn reads
+// them from mysql deamon). The metrics are then cached, whether successful or not.
+// This idea is that is is very wasteful to read these metrics for every single query. E.g. right now the throttler
+// can issue 4 reads per second, which is wasteful to go through two RPCs to get the disk space usage for example. Even the load
+// average on the MySQL server is not that susceptible to change.
+func readMysqlHostMetrics(ctx context.Context, params *SelfMetricReadParams) error {
+ if params.TmClient == nil {
+ return fmt.Errorf("tmClient is nil")
+ }
+ if params.TabletInfo == nil {
+ return fmt.Errorf("tabletInfo is nil")
+ }
+ rateLimiter := getMysqlMetricsRateLimiter(ctx, mysqlHostMetricsRateLimit)
+ err := rateLimiter.Do(func() error {
+ ctx, cancel := context.WithTimeout(ctx, mysqlHostMetricsRpcTimeout)
+ defer cancel()
+
+ resp, err := params.TmClient.MysqlHostMetrics(ctx, params.TabletInfo.Tablet, &tabletmanagerdatapb.MysqlHostMetricsRequest{})
+ if err != nil {
+ return err
+ }
+ lastMySQLHostMetricsResponse.Store(resp)
+ return nil
+ })
+ return err
+}
+
+// getMysqlHostMetric gets a metric from the last read MySQL host metrics. The metric will either be directly read from
+// tablet manager (which then reads it from the mysql deamon), or from the cache.
+func getMysqlHostMetric(ctx context.Context, params *SelfMetricReadParams, mysqlHostMetricName string) *ThrottleMetric {
+ metric := &ThrottleMetric{
+ Scope: SelfScope,
+ }
+ if err := readMysqlHostMetrics(ctx, params); err != nil {
+ return metric.WithError(err)
+ }
+ resp := lastMySQLHostMetricsResponse.Load()
+ if resp == nil {
+ return metric.WithError(ErrNoResultYet)
+ }
+ mysqlMetric := resp.HostMetrics.Metrics[mysqlHostMetricName]
+ if mysqlMetric == nil {
+ return metric.WithError(ErrNoSuchMetric)
+ }
+ metric.Value = mysqlMetric.Value
+ if mysqlMetric.Error != nil {
+ metric.Err = errors.New(mysqlMetric.Error.Message)
+ }
+ return metric
+}
+
+var _ SelfMetric = registerSelfMetric(&MysqldLoadAvgSelfMetric{})
+var _ SelfMetric = registerSelfMetric(&MysqldDatadirUsedRatioSelfMetric{})
+
+// MysqldLoadAvgSelfMetric stands for the load average per cpu, on the MySQL host.
+type MysqldLoadAvgSelfMetric struct {
+}
+
+func (m *MysqldLoadAvgSelfMetric) Name() MetricName {
+ return MysqldLoadAvgMetricName
+}
+
+func (m *MysqldLoadAvgSelfMetric) DefaultScope() Scope {
+ return SelfScope
+}
+
+func (m *MysqldLoadAvgSelfMetric) DefaultThreshold() float64 {
+ return 1.0
+}
+
+func (m *MysqldLoadAvgSelfMetric) RequiresConn() bool {
+ return false
+}
+
+func (m *MysqldLoadAvgSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ return getMysqlHostMetric(ctx, params, "loadavg")
+}
+
+// MysqldDatadirUsedRatioSelfMetric stands for the disk space usage of the mount where MySQL's datadir is located.
+// Range: 0.0 (empty) - 1.0 (full)
+type MysqldDatadirUsedRatioSelfMetric struct {
+}
+
+func (m *MysqldDatadirUsedRatioSelfMetric) Name() MetricName {
+ return MysqldDatadirUsedRatioMetricName
+}
+
+func (m *MysqldDatadirUsedRatioSelfMetric) DefaultScope() Scope {
+ return SelfScope
+}
+
+func (m *MysqldDatadirUsedRatioSelfMetric) DefaultThreshold() float64 {
+ return 0.98
+}
+
+func (m *MysqldDatadirUsedRatioSelfMetric) RequiresConn() bool {
+ return false
+}
+
+func (m *MysqldDatadirUsedRatioSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ return getMysqlHostMetric(ctx, params, "datadir-used-ratio")
+}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go
new file mode 100644
index 00000000000..39d3f3f5ec2
--- /dev/null
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go
@@ -0,0 +1,72 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package base
+
+import (
+ "context"
+ "fmt"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestGetMysqlMetricsRateLimiter(t *testing.T) {
+ rateLimit := 10 * time.Millisecond
+ for i := range 3 {
+ testName := fmt.Sprintf("iteration %d", i)
+ t.Run(testName, func(t *testing.T) {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ {
+ rateLimiter := mysqlHostMetricsRateLimiter.Load()
+ assert.Nil(t, rateLimiter)
+ }
+ rateLimiter := getMysqlMetricsRateLimiter(ctx, rateLimit)
+ assert.NotNil(t, rateLimiter)
+ for range 5 {
+ r := getMysqlMetricsRateLimiter(ctx, rateLimit)
+ // Returning the same rate limiter
+ assert.Equal(t, rateLimiter, r)
+ }
+ val := 0
+ incr := func() error {
+ val++
+ return nil
+ }
+ for range 10 {
+ rateLimiter.Do(incr)
+ time.Sleep(2 * rateLimit)
+ }
+ assert.EqualValues(t, 10, val)
+ cancel()
+ // There can be a race condition where the rate limiter still emits one final tick after the context is cancelled.
+ // So we wait enough time to ensure that tick is "wasted".
+ time.Sleep(2 * rateLimit)
+ // Now that the rate limited was stopped (we invoked `cancel()`), its `Do()` should not invoke the function anymore.
+ for range 7 {
+ rateLimiter.Do(incr)
+ time.Sleep(time.Millisecond)
+ }
+ assert.EqualValues(t, 10, val) // Same "10" value as before.
+ {
+ rateLimiter := mysqlHostMetricsRateLimiter.Load()
+ assert.Nil(t, rateLimiter)
+ }
+ })
+ }
+}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go
index 08f7d408d1c..cb59547a768 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go
@@ -18,8 +18,6 @@ package base
import (
"context"
-
- "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool"
)
var (
@@ -47,6 +45,6 @@ func (m *ThreadsRunningSelfMetric) RequiresConn() bool {
return true
}
-func (m *ThreadsRunningSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric {
- return ReadSelfMySQLThrottleMetric(ctx, conn, threadsRunningMetricQuery)
+func (m *ThreadsRunningSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ return ReadSelfMySQLThrottleMetric(ctx, params.Conn, threadsRunningMetricQuery)
}
diff --git a/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go b/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go
index 1d2d4d0652c..10020af27e6 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go
@@ -16,8 +16,8 @@ limitations under the License.
package base
-// ThrottlerMetricsPublisher is implemented by throttler.Throttler and is used by SelfMetric
+// metricsPublisher is implemented by throttler.Throttler and is used by SelfMetric
// implementations to query the throttler.
-type ThrottlerMetricsPublisher interface {
+type metricsPublisher interface {
GetCustomMetricsQuery() string
}
diff --git a/go/vt/vttablet/tabletserver/throttle/check.go b/go/vt/vttablet/tabletserver/throttle/check.go
index ccdfcb2ce23..d7f43d85e9d 100644
--- a/go/vt/vttablet/tabletserver/throttle/check.go
+++ b/go/vt/vttablet/tabletserver/throttle/check.go
@@ -188,9 +188,9 @@ func (check *ThrottlerCheck) Check(ctx context.Context, appName string, scope ba
// Out of abundance of caution, we will protect against such a scenario.
return
}
- stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sTotal", textutil.SingleWordCamel(metricScope.String()), textutil.SingleWordCamel(metricName.String())), "").Add(1)
+ stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sTotal", textutil.PascalCase(metricScope.String()), textutil.PascalCase(metricName.String())), "").Add(1)
if !metricCheckResult.IsOK() {
- stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sError", textutil.SingleWordCamel(metricScope.String()), textutil.SingleWordCamel(metricName.String())), "").Add(1)
+ stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sError", textutil.PascalCase(metricScope.String()), textutil.PascalCase(metricName.String())), "").Add(1)
}
}(metricCheckResult)
}
@@ -249,7 +249,7 @@ func (check *ThrottlerCheck) localCheck(ctx context.Context, aggregatedMetricNam
check.throttler.markMetricHealthy(aggregatedMetricName)
}
if timeSinceHealthy, found := check.throttler.timeSinceMetricHealthy(aggregatedMetricName); found {
- go stats.GetOrNewGauge(fmt.Sprintf("ThrottlerCheck%sSecondsSinceHealthy", textutil.SingleWordCamel(scope.String())), fmt.Sprintf("seconds since last healthy check for %v", scope)).Set(int64(timeSinceHealthy.Seconds()))
+ go stats.GetOrNewGauge(fmt.Sprintf("ThrottlerCheck%sSecondsSinceHealthy", textutil.PascalCase(scope.String())), fmt.Sprintf("seconds since last healthy check for %v", scope)).Set(int64(timeSinceHealthy.Seconds()))
}
return checkResult
@@ -261,7 +261,7 @@ func (check *ThrottlerCheck) reportAggregated(aggregatedMetricName string, metri
return
}
if value, err := metricResult.Get(); err == nil {
- stats.GetOrNewGaugeFloat64(fmt.Sprintf("ThrottlerAggregated%s%s", textutil.SingleWordCamel(scope.String()), textutil.SingleWordCamel(metricName.String())), fmt.Sprintf("aggregated value for %v", scope)).Set(value)
+ stats.GetOrNewGaugeFloat64(fmt.Sprintf("ThrottlerAggregated%s%s", textutil.PascalCase(scope.String()), textutil.PascalCase(metricName.String())), fmt.Sprintf("aggregated value for %v", scope)).Set(value)
}
}
diff --git a/go/vt/vttablet/tabletserver/throttle/throttler.go b/go/vt/vttablet/tabletserver/throttle/throttler.go
index af7f59abb7e..839ba9d43b8 100644
--- a/go/vt/vttablet/tabletserver/throttle/throttler.go
+++ b/go/vt/vttablet/tabletserver/throttle/throttler.go
@@ -95,7 +95,6 @@ const (
DefaultThrottleRatio = 1.0
defaultReplicationLagQuery = "select unix_timestamp(now(6))-max(ts/1000000000) as replication_lag from %s.heartbeat"
- threadsRunningQuery = "show global status like 'threads_running'"
inventoryPrefix = "inventory/"
throttlerConfigPrefix = "config/"
@@ -137,6 +136,7 @@ type Throttler struct {
keyspace string
shard string
tabletAlias *topodatapb.TabletAlias
+ tabletInfo atomic.Pointer[topo.TabletInfo]
check *ThrottlerCheck
isEnabled atomic.Bool
@@ -190,7 +190,7 @@ type Throttler struct {
cancelEnableContext context.CancelFunc
throttledAppsMutex sync.Mutex
- readSelfThrottleMetrics func(context.Context) base.ThrottleMetrics // overwritten by unit test
+ readSelfThrottleMetrics func(context.Context, tmclient.TabletManagerClient) base.ThrottleMetrics // overwritten by unit test
}
// ThrottlerStatus published some status values from the throttler
@@ -262,8 +262,8 @@ func NewThrottler(env tabletenv.Env, srvTopoServer srvtopo.Server, ts *topo.Serv
}
throttler.StoreMetricsThreshold(base.RegisteredSelfMetrics[base.LagMetricName].DefaultThreshold())
- throttler.readSelfThrottleMetrics = func(ctx context.Context) base.ThrottleMetrics {
- return throttler.readSelfThrottleMetricsInternal(ctx)
+ throttler.readSelfThrottleMetrics = func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics {
+ return throttler.readSelfThrottleMetricsInternal(ctx, tmClient)
}
return throttler
}
@@ -338,6 +338,15 @@ func (throttler *Throttler) initConfig() {
// readThrottlerConfig proactively reads the throttler's config from SrvKeyspace in local topo
func (throttler *Throttler) readThrottlerConfig(ctx context.Context) (*topodatapb.ThrottlerConfig, error) {
+ // since we're reading from topo, let's seize this opportunity to read table info as well
+ if throttler.tabletInfo.Load() == nil {
+ if ti, err := throttler.ts.GetTablet(ctx, throttler.tabletAlias); err == nil {
+ throttler.tabletInfo.Store(ti)
+ } else {
+ log.Errorf("Throttler: error reading tablet info: %v", err)
+ }
+ }
+
srvks, err := throttler.ts.GetSrvKeyspace(ctx, throttler.tabletAlias.Cell, throttler.keyspace)
if err != nil {
return nil, err
@@ -804,7 +813,7 @@ func (throttler *Throttler) Operate(ctx context.Context, wg *sync.WaitGroup) {
if throttler.IsOpen() {
// frequent
// Always collect self metrics:
- throttler.collectSelfMetrics(ctx)
+ throttler.collectSelfMetrics(ctx, tmClient)
if !throttler.isDormant() {
throttler.collectShardMetrics(ctx, tmClient)
}
@@ -869,7 +878,7 @@ func (throttler *Throttler) Operate(ctx context.Context, wg *sync.WaitGroup) {
}()
}
-func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClient tmclient.TabletManagerClient, probe *base.Probe) (probeFunc func(context.Context) base.ThrottleMetrics) {
+func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, probe *base.Probe) (probeFunc func(context.Context, tmclient.TabletManagerClient) base.ThrottleMetrics) {
metricsWithError := func(err error) base.ThrottleMetrics {
metrics := base.ThrottleMetrics{}
for _, metricName := range base.KnownMetricNames {
@@ -882,7 +891,7 @@ func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClie
}
return metrics
}
- return func(ctx context.Context) base.ThrottleMetrics {
+ return func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics {
// Some reasonable timeout, to ensure we release connections even if they're hanging (otherwise grpc-go keeps polling those connections forever)
ctx, cancel := context.WithTimeout(ctx, 4*activeCollectInterval)
defer cancel()
@@ -940,7 +949,7 @@ func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClie
// readSelfThrottleMetricsInternal rreads all registsred self metrics on this tablet (or backend MySQL server).
// This is the actual place where metrics are read, to be later aggregated and/or propagated to other tablets.
-func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context) base.ThrottleMetrics {
+func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics {
result := make(base.ThrottleMetrics, len(base.RegisteredSelfMetrics))
writeMetric := func(metric *base.ThrottleMetric) {
select {
@@ -950,15 +959,20 @@ func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context)
}
}
readMetric := func(selfMetric base.SelfMetric) *base.ThrottleMetric {
- if !selfMetric.RequiresConn() {
- return selfMetric.Read(ctx, throttler, nil)
+ params := &base.SelfMetricReadParams{
+ Throttler: throttler,
+ TmClient: tmClient,
+ TabletInfo: throttler.tabletInfo.Load(),
}
- conn, err := throttler.pool.Get(ctx, nil)
- if err != nil {
- return &base.ThrottleMetric{Err: err}
+ if selfMetric.RequiresConn() {
+ conn, err := throttler.pool.Get(ctx, nil)
+ if err != nil {
+ return &base.ThrottleMetric{Err: err}
+ }
+ defer conn.Recycle()
+ params.Conn = conn.Conn
}
- defer conn.Recycle()
- return selfMetric.Read(ctx, throttler, conn.Conn)
+ return selfMetric.Read(ctx, params)
}
for metricName, selfMetric := range base.RegisteredSelfMetrics {
if metricName == base.DefaultMetricName {
@@ -975,7 +989,7 @@ func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context)
return result
}
-func (throttler *Throttler) collectSelfMetrics(ctx context.Context) {
+func (throttler *Throttler) collectSelfMetrics(ctx context.Context, tmClient tmclient.TabletManagerClient) {
probe := throttler.inventory.ClustersProbes[throttler.tabletAliasString()]
if probe == nil {
// probe not created yet
@@ -990,7 +1004,7 @@ func (throttler *Throttler) collectSelfMetrics(ctx context.Context) {
defer atomic.StoreInt64(&probe.QueryInProgress, 0)
// Throttler is probing its own tablet's metrics:
- _ = base.ReadThrottleMetrics(ctx, probe, throttler.readSelfThrottleMetrics)
+ _ = base.ReadThrottleMetrics(ctx, probe, tmClient, throttler.readSelfThrottleMetrics)
}()
}
@@ -1011,9 +1025,9 @@ func (throttler *Throttler) collectShardMetrics(ctx context.Context, tmClient tm
defer atomic.StoreInt64(&probe.QueryInProgress, 0)
// Throttler probing other tablets:
- throttleMetricFunc := throttler.generateTabletProbeFunction(base.ShardScope, tmClient, probe)
+ throttleMetricFunc := throttler.generateTabletProbeFunction(base.ShardScope, probe)
- throttleMetrics := base.ReadThrottleMetrics(ctx, probe, throttleMetricFunc)
+ throttleMetrics := base.ReadThrottleMetrics(ctx, probe, tmClient, throttleMetricFunc)
for _, metric := range throttleMetrics {
select {
case <-ctx.Done():
diff --git a/go/vt/vttablet/tabletserver/throttle/throttler_test.go b/go/vt/vttablet/tabletserver/throttle/throttler_test.go
index fd7921899da..0a1162b02d3 100644
--- a/go/vt/vttablet/tabletserver/throttle/throttler_test.go
+++ b/go/vt/vttablet/tabletserver/throttle/throttler_test.go
@@ -71,6 +71,18 @@ var (
Value: 2.718,
Err: nil,
},
+ base.MysqldLoadAvgMetricName: &base.ThrottleMetric{
+ Scope: base.SelfScope,
+ Alias: "",
+ Value: 0.3311,
+ Err: nil,
+ },
+ base.MysqldDatadirUsedRatioMetricName: &base.ThrottleMetric{
+ Scope: base.SelfScope,
+ Alias: "",
+ Value: 0.85,
+ Err: nil,
+ },
}
replicaMetrics = map[string]*MetricResult{
base.LagMetricName.String(): {
@@ -93,6 +105,16 @@ var (
ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
Value: 5.1,
},
+ base.MysqldLoadAvgMetricName.String(): {
+ StatusCode: http.StatusOK,
+ ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
+ Value: 0.2211,
+ },
+ base.MysqldDatadirUsedRatioMetricName.String(): {
+ StatusCode: http.StatusOK,
+ ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
+ Value: 0.87,
+ },
}
nonPrimaryTabletType atomic.Int32
)
@@ -283,7 +305,7 @@ func newTestThrottler() *Throttler {
throttler.recentCheckDormantDiff = int64(throttler.dormantPeriod / recentCheckRateLimiterInterval)
throttler.recentCheckDiff = int64(3 * time.Second / recentCheckRateLimiterInterval)
- throttler.readSelfThrottleMetrics = func(ctx context.Context) base.ThrottleMetrics {
+ throttler.readSelfThrottleMetrics = func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics {
for _, metric := range selfMetrics {
go func() {
select {
@@ -1827,10 +1849,12 @@ func TestChecks(t *testing.T) {
assert.Equal(t, testAppName.String(), checkResult.AppName)
assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics))
- assert.EqualValues(t, 0.3, checkResult.Metrics[base.LagMetricName.String()].Value) // self lag value, because flags.Scope is set
- assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set
- assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set
- assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 0.3, checkResult.Metrics[base.LagMetricName.String()].Value) // self lag value, because flags.Scope is set
+ assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because flags.Scope is set
for _, metric := range checkResult.Metrics {
assert.EqualValues(t, base.SelfScope.String(), metric.Scope)
}
@@ -1886,10 +1910,12 @@ func TestChecks(t *testing.T) {
assert.Equal(t, testAppName.String(), checkResult.AppName)
assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics))
- assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because flags.Scope is set
- assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set
- assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set
- assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because flags.Scope is set
+ assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, because flags.Scope is set
for _, metric := range checkResult.Metrics {
assert.EqualValues(t, base.ShardScope.String(), metric.Scope)
}
@@ -1918,14 +1944,18 @@ func TestChecks(t *testing.T) {
assert.ErrorIs(t, checkResult.Error, base.ErrThresholdExceeded)
assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics))
- assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because "shard" is the default scope for lag
- assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running
- assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom
- assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
+ assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because "shard" is the default scope for lag
+ assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running
+ assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom
+ assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
+ assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
+ assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
assert.EqualValues(t, base.ShardScope.String(), checkResult.Metrics[base.LagMetricName.String()].Scope)
assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.ThreadsRunningMetricName.String()].Scope)
assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.CustomMetricName.String()].Scope)
assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.LoadAvgMetricName.String()].Scope)
+ assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Scope)
+ assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Scope)
})
})
t.Run("checks, defined scope masks explicit scope metrics", func(t *testing.T) {
@@ -1939,6 +1969,8 @@ func TestChecks(t *testing.T) {
base.MetricName("self/threads_running"),
base.MetricName("custom"),
base.MetricName("shard/loadavg"),
+ base.MetricName("shard/mysqld-loadavg"),
+ base.MetricName("self/mysqld-datadir-used-ratio"),
base.MetricName("default"),
}
checkResult := throttler.Check(ctx, testAppName.String(), metricNames, flags)
@@ -1950,10 +1982,12 @@ func TestChecks(t *testing.T) {
assert.ErrorIs(t, checkResult.Error, base.ErrThresholdExceeded)
assert.Equal(t, len(metricNames), len(checkResult.Metrics))
- assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, even though scope name is in metric name
- assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name
- assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set
- assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set
+ assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, even though scope name is in metric name
+ assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name
+ assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set
+ assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set
+ assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set
+ assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, even though scope name is in metric name
for _, metric := range checkResult.Metrics {
assert.EqualValues(t, base.ShardScope.String(), metric.Scope)
}
@@ -2222,8 +2256,12 @@ func TestReplica(t *testing.T) {
base.DefaultMetricName:
assert.Error(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold)
assert.ErrorIs(t, metricResult.Error, base.ErrThresholdExceeded)
- case base.ThreadsRunningMetricName:
+ case base.ThreadsRunningMetricName,
+ base.MysqldLoadAvgMetricName,
+ base.MysqldDatadirUsedRatioMetricName:
assert.NoError(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold)
+ default:
+ assert.Fail(t, "unexpected metric", "name=%v", metricName)
}
}
})
From c5d0eccd8735719f94fbae147cedddf6b53ad044 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Wed, 20 Nov 2024 09:48:26 +0200
Subject: [PATCH 68/78] Online DDL: dynamic cut-over threshold via `ALTER
VITESS_MIGRATION ... CUTOVER_THRESHOLD ...` command (#17126)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
.../scheduler/onlineddl_scheduler_test.go | 29 +-
go/test/endtoend/onlineddl/vtgate_util.go | 10 +
go/vt/schema/online_ddl.go | 2 +
.../schema/onlineddl/schema_migrations.sql | 1 +
go/vt/sqlparser/ast.go | 11 +-
go/vt/sqlparser/ast_equals.go | 1 +
go/vt/sqlparser/ast_format.go | 5 +
go/vt/sqlparser/ast_format_fast.go | 7 +
go/vt/sqlparser/cached_size.go | 4 +-
go/vt/sqlparser/constants.go | 1 +
go/vt/sqlparser/keywords.go | 1 +
go/vt/sqlparser/parse_test.go | 2 +
go/vt/sqlparser/sql.go | 18434 ++++++++--------
go/vt/sqlparser/sql.y | 11 +-
go/vt/vttablet/onlineddl/executor.go | 109 +-
go/vt/vttablet/onlineddl/executor_test.go | 57 +
go/vt/vttablet/onlineddl/schema.go | 9 +-
go/vt/vttablet/tabletserver/query_executor.go | 2 +
18 files changed, 9469 insertions(+), 9227 deletions(-)
diff --git a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
index 7b8180e80fb..53a1c8137fd 100644
--- a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
+++ b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go
@@ -484,7 +484,7 @@ func testScheduler(t *testing.T) {
testTableSequentialTimes(t, t1uuid, t2uuid)
})
t.Run("Postpone launch CREATE", func(t *testing.T) {
- t1uuid = testOnlineDDLStatement(t, createParams(createT1IfNotExistsStatement, ddlStrategy+" --postpone-launch", "vtgate", "", "", true)) // skip wait
+ t1uuid = testOnlineDDLStatement(t, createParams(createT1IfNotExistsStatement, ddlStrategy+" --postpone-launch --cut-over-threshold=14s", "vtgate", "", "", true)) // skip wait
time.Sleep(2 * time.Second)
rs := onlineddl.ReadMigrations(t, &vtParams, t1uuid)
require.NotNil(t, rs)
@@ -501,6 +501,10 @@ func testScheduler(t *testing.T) {
for _, row := range rs.Named().Rows {
postponeLaunch := row.AsInt64("postpone_launch", 0)
assert.Equal(t, int64(0), postponeLaunch)
+
+ cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0)
+ // Threshold supplied in DDL strategy
+ assert.EqualValues(t, 14, cutOverThresholdSeconds)
}
status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
@@ -580,6 +584,9 @@ func testScheduler(t *testing.T) {
assert.Equal(t, int64(1), postponeCompletion)
}
})
+ t.Run("set cut-over threshold", func(t *testing.T) {
+ onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, t1uuid, 17700*time.Millisecond, "")
+ })
t.Run("complete", func(t *testing.T) {
onlineddl.CheckCompleteMigration(t, &vtParams, shards, t1uuid, true)
status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
@@ -592,6 +599,11 @@ func testScheduler(t *testing.T) {
for _, row := range rs.Named().Rows {
postponeCompletion := row.AsInt64("postpone_completion", 0)
assert.Equal(t, int64(0), postponeCompletion)
+
+ cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0)
+ // Expect 17800*time.Millisecond to be truncated to 17 seconds
+ assert.EqualValues(t, 17, cutOverThresholdSeconds)
+
assert.False(t, row["shadow_analyzed_timestamp"].IsNull())
}
})
@@ -1062,6 +1074,10 @@ func testScheduler(t *testing.T) {
for _, row := range rs.Named().Rows {
retries := row.AsInt64("retries", 0)
assert.Greater(t, retries, int64(0))
+
+ cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0)
+ // No explicit cut-over threshold given. Expect the default 10s
+ assert.EqualValues(t, 10, cutOverThresholdSeconds)
}
})
})
@@ -1088,6 +1104,13 @@ func testScheduler(t *testing.T) {
executedUUID := testOnlineDDLStatement(t, createParams(trivialAlterT1Statement, ddlStrategy, "vtctl", "", "", true)) // skip wait
require.Equal(t, uuid, executedUUID)
+ t.Run("set low cut-over threshold", func(t *testing.T) {
+ onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, uuid, 2*time.Second, "cut-over min value")
+ })
+ t.Run("set high cut-over threshold", func(t *testing.T) {
+ onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, uuid, 2000*time.Second, "cut-over max value")
+ })
+
// expect it to complete
status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed)
fmt.Printf("# Migration status (for debug purposes): <%s>\n", status)
@@ -1098,6 +1121,10 @@ func testScheduler(t *testing.T) {
for _, row := range rs.Named().Rows {
retries := row.AsInt64("retries", 0)
assert.Greater(t, retries, int64(0))
+
+ cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0)
+ // Teh default remains unchanged.
+ assert.EqualValues(t, 10, cutOverThresholdSeconds)
}
})
})
diff --git a/go/test/endtoend/onlineddl/vtgate_util.go b/go/test/endtoend/onlineddl/vtgate_util.go
index 639b3ce8eb4..ffb6423a346 100644
--- a/go/test/endtoend/onlineddl/vtgate_util.go
+++ b/go/test/endtoend/onlineddl/vtgate_util.go
@@ -255,6 +255,16 @@ func CheckForceMigrationCutOver(t *testing.T, vtParams *mysql.ConnParams, shards
}
}
+// CheckSetMigrationCutOverThreshold sets the cut-over threshold for a given migration.
+func CheckSetMigrationCutOverThreshold(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, threshold time.Duration, expectError string) {
+ query, err := sqlparser.ParseAndBind("alter vitess_migration %a cutover_threshold %a",
+ sqltypes.StringBindVariable(uuid),
+ sqltypes.StringBindVariable(threshold.String()),
+ )
+ require.NoError(t, err)
+ _ = VtgateExecQuery(t, vtParams, query, expectError)
+}
+
// CheckMigrationStatus verifies that the migration indicated by given UUID has the given expected status
func CheckMigrationStatus(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, expectStatuses ...schema.OnlineDDLStatus) bool {
ksName := shards[0].PrimaryTablet().VttabletProcess.Keyspace
diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go
index 59363b00889..8de54d98b1e 100644
--- a/go/vt/schema/online_ddl.go
+++ b/go/vt/schema/online_ddl.go
@@ -24,6 +24,7 @@ import (
"regexp"
"strconv"
"strings"
+ "time"
vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc"
"vitess.io/vitess/go/vt/sqlparser"
@@ -116,6 +117,7 @@ type OnlineDDL struct {
Retries int64 `json:"retries,omitempty"`
ReadyToComplete int64 `json:"ready_to_complete,omitempty"`
WasReadyToComplete int64 `json:"was_ready_to_complete,omitempty"`
+ CutOverThreshold time.Duration `json:"cutover_threshold,omitempty"`
}
// ParseOnlineDDLStatement parses the given SQL into a statement and returns the action type of the DDL statement, or error
diff --git a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
index e0b4e27b180..91c0323e54b 100644
--- a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
+++ b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
@@ -76,6 +76,7 @@ CREATE TABLE IF NOT EXISTS schema_migrations
`removed_foreign_key_names` text NOT NULL,
`last_cutover_attempt_timestamp` timestamp NULL DEFAULT NULL,
`force_cutover` tinyint unsigned NOT NULL DEFAULT '0',
+ `cutover_threshold_seconds` int unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uuid_idx` (`migration_uuid`),
KEY `keyspace_shard_idx` (`keyspace`(64), `shard`(64)),
diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go
index 3d4f56ef628..92c67d55999 100644
--- a/go/vt/sqlparser/ast.go
+++ b/go/vt/sqlparser/ast.go
@@ -491,11 +491,12 @@ type (
// AlterMigration represents a ALTER VITESS_MIGRATION statement
AlterMigration struct {
- Type AlterMigrationType
- UUID string
- Expire string
- Ratio *Literal
- Shards string
+ Type AlterMigrationType
+ UUID string
+ Expire string
+ Ratio *Literal
+ Threshold string
+ Shards string
}
// AlterTable represents a ALTER TABLE statement.
diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go
index 502a4a78d88..c4c0b34c271 100644
--- a/go/vt/sqlparser/ast_equals.go
+++ b/go/vt/sqlparser/ast_equals.go
@@ -1790,6 +1790,7 @@ func (cmp *Comparator) RefOfAlterMigration(a, b *AlterMigration) bool {
}
return a.UUID == b.UUID &&
a.Expire == b.Expire &&
+ a.Threshold == b.Threshold &&
a.Shards == b.Shards &&
a.Type == b.Type &&
cmp.RefOfLiteral(a.Ratio, b.Ratio)
diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go
index b9af85d410e..dff17911d8e 100644
--- a/go/vt/sqlparser/ast_format.go
+++ b/go/vt/sqlparser/ast_format.go
@@ -322,8 +322,13 @@ func (node *AlterMigration) Format(buf *TrackedBuffer) {
alterType = "force_cutover"
case ForceCutOverAllMigrationType:
alterType = "force_cutover all"
+ case SetCutOverThresholdMigrationType:
+ alterType = "cutover_threshold"
}
buf.astPrintf(node, " %#s", alterType)
+ if node.Threshold != "" {
+ buf.astPrintf(node, " '%#s'", node.Threshold)
+ }
if node.Expire != "" {
buf.astPrintf(node, " expire '%#s'", node.Expire)
}
diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go
index 1950a79a613..9855c70a21d 100644
--- a/go/vt/sqlparser/ast_format_fast.go
+++ b/go/vt/sqlparser/ast_format_fast.go
@@ -448,9 +448,16 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) {
alterType = "force_cutover"
case ForceCutOverAllMigrationType:
alterType = "force_cutover all"
+ case SetCutOverThresholdMigrationType:
+ alterType = "cutover_threshold"
}
buf.WriteByte(' ')
buf.WriteString(alterType)
+ if node.Threshold != "" {
+ buf.WriteString(" '")
+ buf.WriteString(node.Threshold)
+ buf.WriteByte('\'')
+ }
if node.Expire != "" {
buf.WriteString(" expire '")
buf.WriteString(node.Expire)
diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go
index 9703d189b7a..524291a03b4 100644
--- a/go/vt/sqlparser/cached_size.go
+++ b/go/vt/sqlparser/cached_size.go
@@ -208,7 +208,7 @@ func (cached *AlterMigration) CachedSize(alloc bool) int64 {
}
size := int64(0)
if alloc {
- size += int64(64)
+ size += int64(80)
}
// field UUID string
size += hack.RuntimeAllocSize(int64(len(cached.UUID)))
@@ -216,6 +216,8 @@ func (cached *AlterMigration) CachedSize(alloc bool) int64 {
size += hack.RuntimeAllocSize(int64(len(cached.Expire)))
// field Ratio *vitess.io/vitess/go/vt/sqlparser.Literal
size += cached.Ratio.CachedSize(true)
+ // field Threshold string
+ size += hack.RuntimeAllocSize(int64(len(cached.Threshold)))
// field Shards string
size += hack.RuntimeAllocSize(int64(len(cached.Shards)))
return size
diff --git a/go/vt/sqlparser/constants.go b/go/vt/sqlparser/constants.go
index 1c8f831274c..bdf35a2654d 100644
--- a/go/vt/sqlparser/constants.go
+++ b/go/vt/sqlparser/constants.go
@@ -915,6 +915,7 @@ const (
UnthrottleAllMigrationType
ForceCutOverMigrationType
ForceCutOverAllMigrationType
+ SetCutOverThresholdMigrationType
)
// ColumnStorage constants
diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go
index e32d7d0b72a..5c1b881df30 100644
--- a/go/vt/sqlparser/keywords.go
+++ b/go/vt/sqlparser/keywords.go
@@ -205,6 +205,7 @@ var keywords = []keyword{
{"current_timestamp", CURRENT_TIMESTAMP},
{"current_user", CURRENT_USER},
{"cursor", UNUSED},
+ {"cutover_threshold", CUTOVER_THRESHOLD},
{"data", DATA},
{"database", DATABASE},
{"databases", DATABASES},
diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go
index 3a769f05688..d3d5fd469e7 100644
--- a/go/vt/sqlparser/parse_test.go
+++ b/go/vt/sqlparser/parse_test.go
@@ -2482,6 +2482,8 @@ var (
input: "alter vitess_migration force_cutover all",
}, {
input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' force_cutover",
+ }, {
+ input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' cutover_threshold '17s'",
}, {
input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' FORCE_CUTOVER",
output: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' force_cutover",
diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go
index 682efc9f6ec..befd9b44c3b 100644
--- a/go/vt/sqlparser/sql.go
+++ b/go/vt/sqlparser/sql.go
@@ -340,431 +340,432 @@ const CLEANUP = 57647
const THROTTLE = 57648
const UNTHROTTLE = 57649
const FORCE_CUTOVER = 57650
-const EXPIRE = 57651
-const RATIO = 57652
-const VITESS_THROTTLER = 57653
-const BEGIN = 57654
-const START = 57655
-const TRANSACTION = 57656
-const COMMIT = 57657
-const ROLLBACK = 57658
-const SAVEPOINT = 57659
-const RELEASE = 57660
-const WORK = 57661
-const CONSISTENT = 57662
-const SNAPSHOT = 57663
-const UNRESOLVED = 57664
-const TRANSACTIONS = 57665
-const BIT = 57666
-const TINYINT = 57667
-const SMALLINT = 57668
-const MEDIUMINT = 57669
-const INT = 57670
-const INTEGER = 57671
-const BIGINT = 57672
-const INTNUM = 57673
-const REAL = 57674
-const DOUBLE = 57675
-const FLOAT_TYPE = 57676
-const FLOAT4_TYPE = 57677
-const FLOAT8_TYPE = 57678
-const DECIMAL_TYPE = 57679
-const NUMERIC = 57680
-const TIME = 57681
-const TIMESTAMP = 57682
-const DATETIME = 57683
-const YEAR = 57684
-const CHAR = 57685
-const VARCHAR = 57686
-const BOOL = 57687
-const CHARACTER = 57688
-const VARBINARY = 57689
-const NCHAR = 57690
-const TEXT = 57691
-const TINYTEXT = 57692
-const MEDIUMTEXT = 57693
-const LONGTEXT = 57694
-const BLOB = 57695
-const TINYBLOB = 57696
-const MEDIUMBLOB = 57697
-const LONGBLOB = 57698
-const JSON = 57699
-const JSON_SCHEMA_VALID = 57700
-const JSON_SCHEMA_VALIDATION_REPORT = 57701
-const ENUM = 57702
-const GEOMETRY = 57703
-const POINT = 57704
-const LINESTRING = 57705
-const POLYGON = 57706
-const GEOMCOLLECTION = 57707
-const GEOMETRYCOLLECTION = 57708
-const MULTIPOINT = 57709
-const MULTILINESTRING = 57710
-const MULTIPOLYGON = 57711
-const ASCII = 57712
-const UNICODE = 57713
-const VECTOR = 57714
-const NULLX = 57715
-const AUTO_INCREMENT = 57716
-const APPROXNUM = 57717
-const SIGNED = 57718
-const UNSIGNED = 57719
-const ZEROFILL = 57720
-const PURGE = 57721
-const BEFORE = 57722
-const CODE = 57723
-const COLLATION = 57724
-const COLUMNS = 57725
-const DATABASES = 57726
-const ENGINES = 57727
-const EVENT = 57728
-const EXTENDED = 57729
-const FIELDS = 57730
-const FULL = 57731
-const FUNCTION = 57732
-const GTID_EXECUTED = 57733
-const KEYSPACES = 57734
-const OPEN = 57735
-const PLUGINS = 57736
-const PRIVILEGES = 57737
-const PROCESSLIST = 57738
-const SCHEMAS = 57739
-const TABLES = 57740
-const TRIGGERS = 57741
-const USER = 57742
-const VGTID_EXECUTED = 57743
-const VITESS_KEYSPACES = 57744
-const VITESS_METADATA = 57745
-const VITESS_MIGRATIONS = 57746
-const VITESS_REPLICATION_STATUS = 57747
-const VITESS_SHARDS = 57748
-const VITESS_TABLETS = 57749
-const VITESS_TARGET = 57750
-const VSCHEMA = 57751
-const VITESS_THROTTLED_APPS = 57752
-const NAMES = 57753
-const GLOBAL = 57754
-const SESSION = 57755
-const ISOLATION = 57756
-const LEVEL = 57757
-const READ = 57758
-const WRITE = 57759
-const ONLY = 57760
-const REPEATABLE = 57761
-const COMMITTED = 57762
-const UNCOMMITTED = 57763
-const SERIALIZABLE = 57764
-const ADDDATE = 57765
-const CURRENT_TIMESTAMP = 57766
-const DATABASE = 57767
-const CURRENT_DATE = 57768
-const CURDATE = 57769
-const DATE_ADD = 57770
-const DATE_SUB = 57771
-const NOW = 57772
-const SUBDATE = 57773
-const CURTIME = 57774
-const CURRENT_TIME = 57775
-const LOCALTIME = 57776
-const LOCALTIMESTAMP = 57777
-const CURRENT_USER = 57778
-const UTC_DATE = 57779
-const UTC_TIME = 57780
-const UTC_TIMESTAMP = 57781
-const SYSDATE = 57782
-const DAY = 57783
-const DAY_HOUR = 57784
-const DAY_MICROSECOND = 57785
-const DAY_MINUTE = 57786
-const DAY_SECOND = 57787
-const HOUR = 57788
-const HOUR_MICROSECOND = 57789
-const HOUR_MINUTE = 57790
-const HOUR_SECOND = 57791
-const MICROSECOND = 57792
-const MINUTE = 57793
-const MINUTE_MICROSECOND = 57794
-const MINUTE_SECOND = 57795
-const MONTH = 57796
-const QUARTER = 57797
-const SECOND = 57798
-const SECOND_MICROSECOND = 57799
-const YEAR_MONTH = 57800
-const WEEK = 57801
-const SQL_TSI_DAY = 57802
-const SQL_TSI_WEEK = 57803
-const SQL_TSI_HOUR = 57804
-const SQL_TSI_MINUTE = 57805
-const SQL_TSI_MONTH = 57806
-const SQL_TSI_QUARTER = 57807
-const SQL_TSI_SECOND = 57808
-const SQL_TSI_MICROSECOND = 57809
-const SQL_TSI_YEAR = 57810
-const REPLACE = 57811
-const CONVERT = 57812
-const CAST = 57813
-const SUBSTR = 57814
-const SUBSTRING = 57815
-const MID = 57816
-const SEPARATOR = 57817
-const TIMESTAMPADD = 57818
-const TIMESTAMPDIFF = 57819
-const WEIGHT_STRING = 57820
-const LTRIM = 57821
-const RTRIM = 57822
-const TRIM = 57823
-const JSON_ARRAY = 57824
-const JSON_OBJECT = 57825
-const JSON_QUOTE = 57826
-const JSON_DEPTH = 57827
-const JSON_TYPE = 57828
-const JSON_LENGTH = 57829
-const JSON_VALID = 57830
-const JSON_ARRAY_APPEND = 57831
-const JSON_ARRAY_INSERT = 57832
-const JSON_INSERT = 57833
-const JSON_MERGE = 57834
-const JSON_MERGE_PATCH = 57835
-const JSON_MERGE_PRESERVE = 57836
-const JSON_REMOVE = 57837
-const JSON_REPLACE = 57838
-const JSON_SET = 57839
-const JSON_UNQUOTE = 57840
-const COUNT = 57841
-const AVG = 57842
-const MAX = 57843
-const MIN = 57844
-const SUM = 57845
-const GROUP_CONCAT = 57846
-const BIT_AND = 57847
-const BIT_OR = 57848
-const BIT_XOR = 57849
-const STD = 57850
-const STDDEV = 57851
-const STDDEV_POP = 57852
-const STDDEV_SAMP = 57853
-const VAR_POP = 57854
-const VAR_SAMP = 57855
-const VARIANCE = 57856
-const ANY_VALUE = 57857
-const REGEXP_INSTR = 57858
-const REGEXP_LIKE = 57859
-const REGEXP_REPLACE = 57860
-const REGEXP_SUBSTR = 57861
-const ExtractValue = 57862
-const UpdateXML = 57863
-const GET_LOCK = 57864
-const RELEASE_LOCK = 57865
-const RELEASE_ALL_LOCKS = 57866
-const IS_FREE_LOCK = 57867
-const IS_USED_LOCK = 57868
-const LOCATE = 57869
-const POSITION = 57870
-const ST_GeometryCollectionFromText = 57871
-const ST_GeometryFromText = 57872
-const ST_LineStringFromText = 57873
-const ST_MultiLineStringFromText = 57874
-const ST_MultiPointFromText = 57875
-const ST_MultiPolygonFromText = 57876
-const ST_PointFromText = 57877
-const ST_PolygonFromText = 57878
-const ST_GeometryCollectionFromWKB = 57879
-const ST_GeometryFromWKB = 57880
-const ST_LineStringFromWKB = 57881
-const ST_MultiLineStringFromWKB = 57882
-const ST_MultiPointFromWKB = 57883
-const ST_MultiPolygonFromWKB = 57884
-const ST_PointFromWKB = 57885
-const ST_PolygonFromWKB = 57886
-const ST_AsBinary = 57887
-const ST_AsText = 57888
-const ST_Dimension = 57889
-const ST_Envelope = 57890
-const ST_IsSimple = 57891
-const ST_IsEmpty = 57892
-const ST_GeometryType = 57893
-const ST_X = 57894
-const ST_Y = 57895
-const ST_Latitude = 57896
-const ST_Longitude = 57897
-const ST_EndPoint = 57898
-const ST_IsClosed = 57899
-const ST_Length = 57900
-const ST_NumPoints = 57901
-const ST_StartPoint = 57902
-const ST_PointN = 57903
-const ST_Area = 57904
-const ST_Centroid = 57905
-const ST_ExteriorRing = 57906
-const ST_InteriorRingN = 57907
-const ST_NumInteriorRings = 57908
-const ST_NumGeometries = 57909
-const ST_GeometryN = 57910
-const ST_LongFromGeoHash = 57911
-const ST_PointFromGeoHash = 57912
-const ST_LatFromGeoHash = 57913
-const ST_GeoHash = 57914
-const ST_AsGeoJSON = 57915
-const ST_GeomFromGeoJSON = 57916
-const MATCH = 57917
-const AGAINST = 57918
-const BOOLEAN = 57919
-const LANGUAGE = 57920
-const WITH = 57921
-const QUERY = 57922
-const EXPANSION = 57923
-const WITHOUT = 57924
-const VALIDATION = 57925
-const ROLLUP = 57926
-const UNUSED = 57927
-const ARRAY = 57928
-const BYTE = 57929
-const CUME_DIST = 57930
-const DESCRIPTION = 57931
-const DENSE_RANK = 57932
-const EMPTY = 57933
-const EXCEPT = 57934
-const FIRST_VALUE = 57935
-const GROUPING = 57936
-const GROUPS = 57937
-const JSON_TABLE = 57938
-const LAG = 57939
-const LAST_VALUE = 57940
-const LATERAL = 57941
-const LEAD = 57942
-const NTH_VALUE = 57943
-const NTILE = 57944
-const OF = 57945
-const OVER = 57946
-const PERCENT_RANK = 57947
-const RANK = 57948
-const RECURSIVE = 57949
-const ROW_NUMBER = 57950
-const SYSTEM = 57951
-const WINDOW = 57952
-const ACTIVE = 57953
-const ADMIN = 57954
-const AUTOEXTEND_SIZE = 57955
-const BUCKETS = 57956
-const CLONE = 57957
-const COLUMN_FORMAT = 57958
-const COMPONENT = 57959
-const DEFINITION = 57960
-const ENFORCED = 57961
-const ENGINE_ATTRIBUTE = 57962
-const EXCLUDE = 57963
-const FOLLOWING = 57964
-const GET_MASTER_PUBLIC_KEY = 57965
-const HISTOGRAM = 57966
-const HISTORY = 57967
-const INACTIVE = 57968
-const INVISIBLE = 57969
-const LOCKED = 57970
-const MASTER_COMPRESSION_ALGORITHMS = 57971
-const MASTER_PUBLIC_KEY_PATH = 57972
-const MASTER_TLS_CIPHERSUITES = 57973
-const MASTER_ZSTD_COMPRESSION_LEVEL = 57974
-const NESTED = 57975
-const NETWORK_NAMESPACE = 57976
-const NOWAIT = 57977
-const NULLS = 57978
-const OJ = 57979
-const OLD = 57980
-const OPTIONAL = 57981
-const ORDINALITY = 57982
-const ORGANIZATION = 57983
-const OTHERS = 57984
-const PARTIAL = 57985
-const PATH = 57986
-const PERSIST = 57987
-const PERSIST_ONLY = 57988
-const PRECEDING = 57989
-const PRIVILEGE_CHECKS_USER = 57990
-const PROCESS = 57991
-const RANDOM = 57992
-const REFERENCE = 57993
-const REQUIRE_ROW_FORMAT = 57994
-const RESOURCE = 57995
-const RESPECT = 57996
-const RESTART = 57997
-const RETAIN = 57998
-const REUSE = 57999
-const ROLE = 58000
-const SECONDARY = 58001
-const SECONDARY_ENGINE = 58002
-const SECONDARY_ENGINE_ATTRIBUTE = 58003
-const SECONDARY_LOAD = 58004
-const SECONDARY_UNLOAD = 58005
-const SIMPLE = 58006
-const SKIP = 58007
-const SRID = 58008
-const THREAD_PRIORITY = 58009
-const TIES = 58010
-const UNBOUNDED = 58011
-const VCPU = 58012
-const VISIBLE = 58013
-const RETURNING = 58014
-const FORMAT_BYTES = 58015
-const FORMAT_PICO_TIME = 58016
-const PS_CURRENT_THREAD_ID = 58017
-const PS_THREAD_ID = 58018
-const GTID_SUBSET = 58019
-const GTID_SUBTRACT = 58020
-const WAIT_FOR_EXECUTED_GTID_SET = 58021
-const WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 58022
-const FORMAT = 58023
-const TREE = 58024
-const VITESS = 58025
-const TRADITIONAL = 58026
-const VTEXPLAIN = 58027
-const VEXPLAIN = 58028
-const PLAN = 58029
-const LOCAL = 58030
-const LOW_PRIORITY = 58031
-const NO_WRITE_TO_BINLOG = 58032
-const LOGS = 58033
-const ERROR = 58034
-const GENERAL = 58035
-const HOSTS = 58036
-const OPTIMIZER_COSTS = 58037
-const USER_RESOURCES = 58038
-const SLOW = 58039
-const CHANNEL = 58040
-const RELAY = 58041
-const EXPORT = 58042
-const CURRENT = 58043
-const ROW = 58044
-const ROWS = 58045
-const AVG_ROW_LENGTH = 58046
-const CONNECTION = 58047
-const CHECKSUM = 58048
-const DELAY_KEY_WRITE = 58049
-const ENCRYPTION = 58050
-const ENGINE = 58051
-const INSERT_METHOD = 58052
-const MAX_ROWS = 58053
-const MIN_ROWS = 58054
-const PACK_KEYS = 58055
-const PASSWORD = 58056
-const FIXED = 58057
-const DYNAMIC = 58058
-const COMPRESSED = 58059
-const REDUNDANT = 58060
-const COMPACT = 58061
-const ROW_FORMAT = 58062
-const STATS_AUTO_RECALC = 58063
-const STATS_PERSISTENT = 58064
-const STATS_SAMPLE_PAGES = 58065
-const STORAGE = 58066
-const MEMORY = 58067
-const DISK = 58068
-const PARTITIONS = 58069
-const LINEAR = 58070
-const RANGE = 58071
-const LIST = 58072
-const SUBPARTITION = 58073
-const SUBPARTITIONS = 58074
-const HASH = 58075
+const CUTOVER_THRESHOLD = 57651
+const EXPIRE = 57652
+const RATIO = 57653
+const VITESS_THROTTLER = 57654
+const BEGIN = 57655
+const START = 57656
+const TRANSACTION = 57657
+const COMMIT = 57658
+const ROLLBACK = 57659
+const SAVEPOINT = 57660
+const RELEASE = 57661
+const WORK = 57662
+const CONSISTENT = 57663
+const SNAPSHOT = 57664
+const UNRESOLVED = 57665
+const TRANSACTIONS = 57666
+const BIT = 57667
+const TINYINT = 57668
+const SMALLINT = 57669
+const MEDIUMINT = 57670
+const INT = 57671
+const INTEGER = 57672
+const BIGINT = 57673
+const INTNUM = 57674
+const REAL = 57675
+const DOUBLE = 57676
+const FLOAT_TYPE = 57677
+const FLOAT4_TYPE = 57678
+const FLOAT8_TYPE = 57679
+const DECIMAL_TYPE = 57680
+const NUMERIC = 57681
+const TIME = 57682
+const TIMESTAMP = 57683
+const DATETIME = 57684
+const YEAR = 57685
+const CHAR = 57686
+const VARCHAR = 57687
+const BOOL = 57688
+const CHARACTER = 57689
+const VARBINARY = 57690
+const NCHAR = 57691
+const TEXT = 57692
+const TINYTEXT = 57693
+const MEDIUMTEXT = 57694
+const LONGTEXT = 57695
+const BLOB = 57696
+const TINYBLOB = 57697
+const MEDIUMBLOB = 57698
+const LONGBLOB = 57699
+const JSON = 57700
+const JSON_SCHEMA_VALID = 57701
+const JSON_SCHEMA_VALIDATION_REPORT = 57702
+const ENUM = 57703
+const GEOMETRY = 57704
+const POINT = 57705
+const LINESTRING = 57706
+const POLYGON = 57707
+const GEOMCOLLECTION = 57708
+const GEOMETRYCOLLECTION = 57709
+const MULTIPOINT = 57710
+const MULTILINESTRING = 57711
+const MULTIPOLYGON = 57712
+const ASCII = 57713
+const UNICODE = 57714
+const VECTOR = 57715
+const NULLX = 57716
+const AUTO_INCREMENT = 57717
+const APPROXNUM = 57718
+const SIGNED = 57719
+const UNSIGNED = 57720
+const ZEROFILL = 57721
+const PURGE = 57722
+const BEFORE = 57723
+const CODE = 57724
+const COLLATION = 57725
+const COLUMNS = 57726
+const DATABASES = 57727
+const ENGINES = 57728
+const EVENT = 57729
+const EXTENDED = 57730
+const FIELDS = 57731
+const FULL = 57732
+const FUNCTION = 57733
+const GTID_EXECUTED = 57734
+const KEYSPACES = 57735
+const OPEN = 57736
+const PLUGINS = 57737
+const PRIVILEGES = 57738
+const PROCESSLIST = 57739
+const SCHEMAS = 57740
+const TABLES = 57741
+const TRIGGERS = 57742
+const USER = 57743
+const VGTID_EXECUTED = 57744
+const VITESS_KEYSPACES = 57745
+const VITESS_METADATA = 57746
+const VITESS_MIGRATIONS = 57747
+const VITESS_REPLICATION_STATUS = 57748
+const VITESS_SHARDS = 57749
+const VITESS_TABLETS = 57750
+const VITESS_TARGET = 57751
+const VSCHEMA = 57752
+const VITESS_THROTTLED_APPS = 57753
+const NAMES = 57754
+const GLOBAL = 57755
+const SESSION = 57756
+const ISOLATION = 57757
+const LEVEL = 57758
+const READ = 57759
+const WRITE = 57760
+const ONLY = 57761
+const REPEATABLE = 57762
+const COMMITTED = 57763
+const UNCOMMITTED = 57764
+const SERIALIZABLE = 57765
+const ADDDATE = 57766
+const CURRENT_TIMESTAMP = 57767
+const DATABASE = 57768
+const CURRENT_DATE = 57769
+const CURDATE = 57770
+const DATE_ADD = 57771
+const DATE_SUB = 57772
+const NOW = 57773
+const SUBDATE = 57774
+const CURTIME = 57775
+const CURRENT_TIME = 57776
+const LOCALTIME = 57777
+const LOCALTIMESTAMP = 57778
+const CURRENT_USER = 57779
+const UTC_DATE = 57780
+const UTC_TIME = 57781
+const UTC_TIMESTAMP = 57782
+const SYSDATE = 57783
+const DAY = 57784
+const DAY_HOUR = 57785
+const DAY_MICROSECOND = 57786
+const DAY_MINUTE = 57787
+const DAY_SECOND = 57788
+const HOUR = 57789
+const HOUR_MICROSECOND = 57790
+const HOUR_MINUTE = 57791
+const HOUR_SECOND = 57792
+const MICROSECOND = 57793
+const MINUTE = 57794
+const MINUTE_MICROSECOND = 57795
+const MINUTE_SECOND = 57796
+const MONTH = 57797
+const QUARTER = 57798
+const SECOND = 57799
+const SECOND_MICROSECOND = 57800
+const YEAR_MONTH = 57801
+const WEEK = 57802
+const SQL_TSI_DAY = 57803
+const SQL_TSI_WEEK = 57804
+const SQL_TSI_HOUR = 57805
+const SQL_TSI_MINUTE = 57806
+const SQL_TSI_MONTH = 57807
+const SQL_TSI_QUARTER = 57808
+const SQL_TSI_SECOND = 57809
+const SQL_TSI_MICROSECOND = 57810
+const SQL_TSI_YEAR = 57811
+const REPLACE = 57812
+const CONVERT = 57813
+const CAST = 57814
+const SUBSTR = 57815
+const SUBSTRING = 57816
+const MID = 57817
+const SEPARATOR = 57818
+const TIMESTAMPADD = 57819
+const TIMESTAMPDIFF = 57820
+const WEIGHT_STRING = 57821
+const LTRIM = 57822
+const RTRIM = 57823
+const TRIM = 57824
+const JSON_ARRAY = 57825
+const JSON_OBJECT = 57826
+const JSON_QUOTE = 57827
+const JSON_DEPTH = 57828
+const JSON_TYPE = 57829
+const JSON_LENGTH = 57830
+const JSON_VALID = 57831
+const JSON_ARRAY_APPEND = 57832
+const JSON_ARRAY_INSERT = 57833
+const JSON_INSERT = 57834
+const JSON_MERGE = 57835
+const JSON_MERGE_PATCH = 57836
+const JSON_MERGE_PRESERVE = 57837
+const JSON_REMOVE = 57838
+const JSON_REPLACE = 57839
+const JSON_SET = 57840
+const JSON_UNQUOTE = 57841
+const COUNT = 57842
+const AVG = 57843
+const MAX = 57844
+const MIN = 57845
+const SUM = 57846
+const GROUP_CONCAT = 57847
+const BIT_AND = 57848
+const BIT_OR = 57849
+const BIT_XOR = 57850
+const STD = 57851
+const STDDEV = 57852
+const STDDEV_POP = 57853
+const STDDEV_SAMP = 57854
+const VAR_POP = 57855
+const VAR_SAMP = 57856
+const VARIANCE = 57857
+const ANY_VALUE = 57858
+const REGEXP_INSTR = 57859
+const REGEXP_LIKE = 57860
+const REGEXP_REPLACE = 57861
+const REGEXP_SUBSTR = 57862
+const ExtractValue = 57863
+const UpdateXML = 57864
+const GET_LOCK = 57865
+const RELEASE_LOCK = 57866
+const RELEASE_ALL_LOCKS = 57867
+const IS_FREE_LOCK = 57868
+const IS_USED_LOCK = 57869
+const LOCATE = 57870
+const POSITION = 57871
+const ST_GeometryCollectionFromText = 57872
+const ST_GeometryFromText = 57873
+const ST_LineStringFromText = 57874
+const ST_MultiLineStringFromText = 57875
+const ST_MultiPointFromText = 57876
+const ST_MultiPolygonFromText = 57877
+const ST_PointFromText = 57878
+const ST_PolygonFromText = 57879
+const ST_GeometryCollectionFromWKB = 57880
+const ST_GeometryFromWKB = 57881
+const ST_LineStringFromWKB = 57882
+const ST_MultiLineStringFromWKB = 57883
+const ST_MultiPointFromWKB = 57884
+const ST_MultiPolygonFromWKB = 57885
+const ST_PointFromWKB = 57886
+const ST_PolygonFromWKB = 57887
+const ST_AsBinary = 57888
+const ST_AsText = 57889
+const ST_Dimension = 57890
+const ST_Envelope = 57891
+const ST_IsSimple = 57892
+const ST_IsEmpty = 57893
+const ST_GeometryType = 57894
+const ST_X = 57895
+const ST_Y = 57896
+const ST_Latitude = 57897
+const ST_Longitude = 57898
+const ST_EndPoint = 57899
+const ST_IsClosed = 57900
+const ST_Length = 57901
+const ST_NumPoints = 57902
+const ST_StartPoint = 57903
+const ST_PointN = 57904
+const ST_Area = 57905
+const ST_Centroid = 57906
+const ST_ExteriorRing = 57907
+const ST_InteriorRingN = 57908
+const ST_NumInteriorRings = 57909
+const ST_NumGeometries = 57910
+const ST_GeometryN = 57911
+const ST_LongFromGeoHash = 57912
+const ST_PointFromGeoHash = 57913
+const ST_LatFromGeoHash = 57914
+const ST_GeoHash = 57915
+const ST_AsGeoJSON = 57916
+const ST_GeomFromGeoJSON = 57917
+const MATCH = 57918
+const AGAINST = 57919
+const BOOLEAN = 57920
+const LANGUAGE = 57921
+const WITH = 57922
+const QUERY = 57923
+const EXPANSION = 57924
+const WITHOUT = 57925
+const VALIDATION = 57926
+const ROLLUP = 57927
+const UNUSED = 57928
+const ARRAY = 57929
+const BYTE = 57930
+const CUME_DIST = 57931
+const DESCRIPTION = 57932
+const DENSE_RANK = 57933
+const EMPTY = 57934
+const EXCEPT = 57935
+const FIRST_VALUE = 57936
+const GROUPING = 57937
+const GROUPS = 57938
+const JSON_TABLE = 57939
+const LAG = 57940
+const LAST_VALUE = 57941
+const LATERAL = 57942
+const LEAD = 57943
+const NTH_VALUE = 57944
+const NTILE = 57945
+const OF = 57946
+const OVER = 57947
+const PERCENT_RANK = 57948
+const RANK = 57949
+const RECURSIVE = 57950
+const ROW_NUMBER = 57951
+const SYSTEM = 57952
+const WINDOW = 57953
+const ACTIVE = 57954
+const ADMIN = 57955
+const AUTOEXTEND_SIZE = 57956
+const BUCKETS = 57957
+const CLONE = 57958
+const COLUMN_FORMAT = 57959
+const COMPONENT = 57960
+const DEFINITION = 57961
+const ENFORCED = 57962
+const ENGINE_ATTRIBUTE = 57963
+const EXCLUDE = 57964
+const FOLLOWING = 57965
+const GET_MASTER_PUBLIC_KEY = 57966
+const HISTOGRAM = 57967
+const HISTORY = 57968
+const INACTIVE = 57969
+const INVISIBLE = 57970
+const LOCKED = 57971
+const MASTER_COMPRESSION_ALGORITHMS = 57972
+const MASTER_PUBLIC_KEY_PATH = 57973
+const MASTER_TLS_CIPHERSUITES = 57974
+const MASTER_ZSTD_COMPRESSION_LEVEL = 57975
+const NESTED = 57976
+const NETWORK_NAMESPACE = 57977
+const NOWAIT = 57978
+const NULLS = 57979
+const OJ = 57980
+const OLD = 57981
+const OPTIONAL = 57982
+const ORDINALITY = 57983
+const ORGANIZATION = 57984
+const OTHERS = 57985
+const PARTIAL = 57986
+const PATH = 57987
+const PERSIST = 57988
+const PERSIST_ONLY = 57989
+const PRECEDING = 57990
+const PRIVILEGE_CHECKS_USER = 57991
+const PROCESS = 57992
+const RANDOM = 57993
+const REFERENCE = 57994
+const REQUIRE_ROW_FORMAT = 57995
+const RESOURCE = 57996
+const RESPECT = 57997
+const RESTART = 57998
+const RETAIN = 57999
+const REUSE = 58000
+const ROLE = 58001
+const SECONDARY = 58002
+const SECONDARY_ENGINE = 58003
+const SECONDARY_ENGINE_ATTRIBUTE = 58004
+const SECONDARY_LOAD = 58005
+const SECONDARY_UNLOAD = 58006
+const SIMPLE = 58007
+const SKIP = 58008
+const SRID = 58009
+const THREAD_PRIORITY = 58010
+const TIES = 58011
+const UNBOUNDED = 58012
+const VCPU = 58013
+const VISIBLE = 58014
+const RETURNING = 58015
+const FORMAT_BYTES = 58016
+const FORMAT_PICO_TIME = 58017
+const PS_CURRENT_THREAD_ID = 58018
+const PS_THREAD_ID = 58019
+const GTID_SUBSET = 58020
+const GTID_SUBTRACT = 58021
+const WAIT_FOR_EXECUTED_GTID_SET = 58022
+const WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 58023
+const FORMAT = 58024
+const TREE = 58025
+const VITESS = 58026
+const TRADITIONAL = 58027
+const VTEXPLAIN = 58028
+const VEXPLAIN = 58029
+const PLAN = 58030
+const LOCAL = 58031
+const LOW_PRIORITY = 58032
+const NO_WRITE_TO_BINLOG = 58033
+const LOGS = 58034
+const ERROR = 58035
+const GENERAL = 58036
+const HOSTS = 58037
+const OPTIMIZER_COSTS = 58038
+const USER_RESOURCES = 58039
+const SLOW = 58040
+const CHANNEL = 58041
+const RELAY = 58042
+const EXPORT = 58043
+const CURRENT = 58044
+const ROW = 58045
+const ROWS = 58046
+const AVG_ROW_LENGTH = 58047
+const CONNECTION = 58048
+const CHECKSUM = 58049
+const DELAY_KEY_WRITE = 58050
+const ENCRYPTION = 58051
+const ENGINE = 58052
+const INSERT_METHOD = 58053
+const MAX_ROWS = 58054
+const MIN_ROWS = 58055
+const PACK_KEYS = 58056
+const PASSWORD = 58057
+const FIXED = 58058
+const DYNAMIC = 58059
+const COMPRESSED = 58060
+const REDUNDANT = 58061
+const COMPACT = 58062
+const ROW_FORMAT = 58063
+const STATS_AUTO_RECALC = 58064
+const STATS_PERSISTENT = 58065
+const STATS_SAMPLE_PAGES = 58066
+const STORAGE = 58067
+const MEMORY = 58068
+const DISK = 58069
+const PARTITIONS = 58070
+const LINEAR = 58071
+const RANGE = 58072
+const LIST = 58073
+const SUBPARTITION = 58074
+const SUBPARTITIONS = 58075
+const HASH = 58076
var yyToknames = [...]string{
"$end",
@@ -1092,6 +1093,7 @@ var yyToknames = [...]string{
"THROTTLE",
"UNTHROTTLE",
"FORCE_CUTOVER",
+ "CUTOVER_THRESHOLD",
"EXPIRE",
"RATIO",
"VITESS_THROTTLER",
@@ -1537,29 +1539,29 @@ var yyExca = [...]int{
-2, 40,
-1, 52,
1, 157,
- 751, 157,
+ 752, 157,
-2, 165,
-1, 53,
149, 165,
191, 165,
- 363, 165,
+ 364, 165,
-2, 523,
-1, 61,
- 38, 783,
- 254, 783,
- 265, 783,
- 300, 797,
- 301, 797,
- -2, 785,
+ 38, 784,
+ 254, 784,
+ 265, 784,
+ 300, 798,
+ 301, 798,
+ -2, 786,
-1, 66,
- 256, 821,
- -2, 819,
+ 256, 822,
+ -2, 820,
-1, 122,
- 253, 1620,
+ 253, 1621,
-2, 131,
-1, 124,
1, 158,
- 751, 158,
+ 752, 158,
-2, 165,
-1, 135,
150, 408,
@@ -1568,214 +1570,214 @@ var yyExca = [...]int{
-1, 154,
149, 165,
191, 165,
- 363, 165,
+ 364, 165,
-2, 532,
- -1, 748,
+ -1, 749,
177, 41,
-2, 43,
- -1, 957,
- 95, 1637,
- -2, 1481,
-1, 958,
95, 1638,
- 236, 1642,
-2, 1482,
-1, 959,
- 236, 1641,
+ 95, 1639,
+ 236, 1643,
+ -2, 1483,
+ -1, 960,
+ 236, 1642,
-2, 42,
- -1, 1043,
- 65, 895,
- -2, 908,
- -1, 1131,
- 264, 1108,
- 269, 1108,
+ -1, 1044,
+ 65, 896,
+ -2, 909,
+ -1, 1132,
+ 264, 1109,
+ 269, 1109,
-2, 419,
- -1, 1216,
+ -1, 1217,
1, 580,
- 751, 580,
+ 752, 580,
-2, 165,
- -1, 1527,
- 236, 1642,
- -2, 1482,
- -1, 1739,
- 65, 896,
- -2, 912,
+ -1, 1528,
+ 236, 1643,
+ -2, 1483,
-1, 1740,
65, 897,
-2, 913,
- -1, 1800,
+ -1, 1741,
+ 65, 898,
+ -2, 914,
+ -1, 1801,
149, 165,
191, 165,
- 363, 165,
+ 364, 165,
-2, 458,
- -1, 1883,
+ -1, 1884,
150, 408,
259, 408,
-2, 512,
- -1, 1892,
- 264, 1109,
- 269, 1109,
+ -1, 1893,
+ 264, 1110,
+ 269, 1110,
-2, 420,
- -1, 2341,
- 236, 1646,
- -2, 1640,
-1, 2342,
- 236, 1642,
- -2, 1638,
- -1, 2445,
+ 236, 1647,
+ -2, 1641,
+ -1, 2343,
+ 236, 1643,
+ -2, 1639,
+ -1, 2446,
149, 165,
191, 165,
- 363, 165,
+ 364, 165,
-2, 459,
- -1, 2452,
+ -1, 2453,
28, 186,
-2, 188,
- -1, 2915,
+ -1, 2917,
86, 96,
96, 96,
- -2, 975,
- -1, 2983,
- 726, 701,
- -2, 675,
- -1, 3207,
- 55, 1585,
- -2, 1579,
- -1, 4044,
- 726, 701,
- -2, 689,
- -1, 4136,
- 98, 633,
- 104, 633,
- 114, 633,
- 193, 633,
- 194, 633,
- 195, 633,
- 196, 633,
- 197, 633,
- 198, 633,
- 199, 633,
- 200, 633,
- 201, 633,
- 202, 633,
- 203, 633,
- 204, 633,
- 205, 633,
- 206, 633,
- 207, 633,
- 208, 633,
- 209, 633,
- 210, 633,
- 211, 633,
- 212, 633,
- 213, 633,
- 214, 633,
- 215, 633,
- 216, 633,
- 217, 633,
- 218, 633,
- 219, 633,
- 220, 633,
- 221, 633,
- 222, 633,
- 223, 633,
- 224, 633,
- 225, 633,
- 226, 633,
- 227, 633,
- 228, 633,
- 229, 633,
- 230, 633,
- 231, 633,
- 232, 633,
- 233, 633,
- 234, 633,
- -2, 2017,
+ -2, 976,
+ -1, 2985,
+ 727, 702,
+ -2, 676,
+ -1, 3210,
+ 55, 1586,
+ -2, 1580,
+ -1, 4047,
+ 727, 702,
+ -2, 690,
+ -1, 4139,
+ 98, 634,
+ 104, 634,
+ 114, 634,
+ 193, 634,
+ 194, 634,
+ 195, 634,
+ 196, 634,
+ 197, 634,
+ 198, 634,
+ 199, 634,
+ 200, 634,
+ 201, 634,
+ 202, 634,
+ 203, 634,
+ 204, 634,
+ 205, 634,
+ 206, 634,
+ 207, 634,
+ 208, 634,
+ 209, 634,
+ 210, 634,
+ 211, 634,
+ 212, 634,
+ 213, 634,
+ 214, 634,
+ 215, 634,
+ 216, 634,
+ 217, 634,
+ 218, 634,
+ 219, 634,
+ 220, 634,
+ 221, 634,
+ 222, 634,
+ 223, 634,
+ 224, 634,
+ 225, 634,
+ 226, 634,
+ 227, 634,
+ 228, 634,
+ 229, 634,
+ 230, 634,
+ 231, 634,
+ 232, 634,
+ 233, 634,
+ 234, 634,
+ -2, 2019,
}
const yyPrivate = 57344
-const yyLast = 56607
+const yyLast = 57002
var yyAct = [...]int{
- 973, 3695, 3696, 87, 3694, 4025, 4179, 4211, 961, 4115,
- 4134, 2146, 3358, 2370, 4007, 4224, 4103, 1282, 4178, 1284,
- 968, 3644, 960, 2134, 3259, 2442, 3266, 2072, 3930, 3220,
- 5, 3307, 3494, 3316, 3321, 4005, 3318, 3317, 3315, 3320,
- 3319, 3073, 3631, 2372, 3158, 3336, 3274, 2517, 2013, 752,
- 3335, 3224, 3221, 3534, 3047, 3072, 3540, 3218, 2875, 3737,
- 2397, 747, 3338, 3208, 3524, 2480, 746, 922, 2949, 3365,
- 1860, 1803, 780, 3029, 2504, 2980, 2485, 1759, 1093, 4076,
- 921, 2951, 2950, 2430, 163, 2413, 1041, 2548, 87, 2881,
- 2418, 1061, 1038, 1068, 2867, 1908, 2851, 2900, 2326, 2416,
- 926, 41, 1163, 42, 1139, 2130, 2294, 1041, 2080, 2417,
- 2293, 2526, 3021, 2503, 43, 3562, 2168, 2405, 1890, 2487,
- 2565, 2942, 1103, 1126, 1121, 149, 1792, 2917, 1772, 2420,
- 100, 1720, 1540, 2174, 104, 105, 2105, 2094, 1465, 1448,
- 2009, 1897, 1100, 1097, 1869, 3223, 762, 1132, 1989, 2476,
- 1101, 1127, 1128, 1791, 2477, 1777, 1078, 1129, 757, 1080,
- 1742, 1050, 2201, 1523, 2182, 2888, 3732, 1499, 749, 1047,
- 2849, 2071, 85, 107, 1272, 2021, 167, 127, 2398, 125,
- 126, 3495, 1882, 1060, 132, 3724, 1040, 133, 1044, 1045,
- 1073, 1212, 93, 923, 3551, 99, 1549, 1036, 1048, 98,
- 4212, 750, 1046, 739, 1544, 3632, 1072, 1063, 1280, 3304,
- 2519, 1258, 84, 2519, 2520, 2521, 4060, 3003, 3002, 2563,
- 2971, 106, 1466, 3624, 1035, 4161, 3037, 3038, 3587, 128,
- 1053, 4055, 4056, 2367, 2368, 2087, 134, 3699, 3699, 1168,
- 682, 1143, 4061, 1094, 2086, 2085, 2084, 2083, 2082, 2052,
- 1228, 679, 2847, 680, 1165, 2616, 3204, 3162, 4234, 2552,
- 4177, 4182, 4202, 1176, 4155, 1110, 1105, 1182, 1183, 1184,
- 3498, 1187, 1188, 1189, 1190, 1087, 740, 1193, 1194, 1195,
- 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205,
- 1206, 1207, 1208, 1209, 1142, 1088, 1054, 1763, 1039, 1062,
- 1753, 128, 1117, 2551, 1116, 1115, 1037, 1118, 2, 1761,
- 1482, 95, 3326, 1169, 1172, 1173, 1974, 4034, 95, 2877,
- 724, 3497, 3326, 1229, 2394, 4217, 2973, 1764, 1462, 2393,
- 1476, 1459, 4056, 3698, 3698, 3323, 2996, 4008, 724, 1762,
- 2391, 2812, 95, 4165, 2092, 3384, 1185, 4130, 2993, 1034,
- 4216, 4163, 927, 111, 112, 113, 3926, 116, 3925, 1167,
- 122, 718, 2108, 191, 1166, 4192, 674, 95, 4164, 128,
- 190, 3936, 3324, 1086, 1090, 925, 4162, 3637, 737, 738,
- 3638, 4159, 3324, 86, 976, 977, 978, 718, 1029, 1030,
- 1031, 1032, 86, 129, 3656, 1043, 86, 1450, 3645, 4104,
- 4112, 3330, 2545, 1119, 2623, 3935, 2891, 2139, 4139, 172,
- 3410, 3330, 976, 977, 978, 1871, 3256, 3257, 2848, 1086,
- 1090, 925, 718, 1075, 1076, 2926, 3655, 1793, 2925, 1794,
- 713, 2927, 2437, 2438, 2892, 3255, 1461, 3036, 4116, 2064,
- 2065, 2620, 1472, 2550, 2436, 1464, 3020, 3751, 1248, 1253,
- 1254, 1277, 1027, 1026, 4026, 2931, 2974, 1211, 1236, 1479,
- 1249, 1480, 1481, 1237, 1242, 2938, 95, 718, 718, 169,
- 718, 1478, 170, 2017, 2621, 95, 2455, 2454, 698, 95,
- 1236, 718, 3362, 3360, 3392, 1237, 1114, 3094, 1221, 1222,
- 3390, 696, 4144, 1235, 1443, 1234, 2884, 2885, 189, 2614,
- 2063, 732, 2067, 736, 4039, 1995, 2369, 2210, 730, 718,
- 2401, 3366, 4142, 1724, 4120, 4183, 3327, 3022, 2572, 2527,
- 1224, 2496, 4148, 4149, 2401, 86, 3327, 1789, 88, 2981,
- 1964, 693, 3276, 3277, 2566, 3978, 4184, 3979, 3006, 4143,
- 708, 1460, 4120, 1466, 1112, 2490, 3353, 1990, 2590, 4214,
- 2591, 1186, 2592, 1269, 3354, 703, 1442, 1255, 1250, 1274,
- 1449, 1257, 1243, 1500, 1276, 1217, 706, 1256, 2570, 716,
- 1275, 1251, 1252, 2573, 1965, 719, 1966, 717, 3363, 3361,
- 2617, 3024, 2618, 2568, 3626, 3381, 3625, 1501, 1502, 1503,
- 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2593, 1192,
- 1191, 719, 3910, 1727, 1079, 1152, 2202, 1141, 95, 1141,
- 2569, 2204, 1150, 173, 2018, 2209, 2205, 2530, 3622, 2206,
- 2207, 2208, 179, 2571, 2203, 2211, 2212, 2213, 2214, 2215,
- 2216, 2217, 2218, 2219, 1122, 3703, 719, 683, 1123, 685,
- 699, 3275, 721, 2414, 720, 689, 1123, 687, 691, 700,
- 692, 1476, 686, 3278, 697, 3095, 1875, 688, 701, 702,
- 705, 709, 710, 711, 707, 704, 4156, 695, 722, 1162,
- 1161, 3161, 3010, 1514, 3011, 1160, 1113, 1159, 1158, 3537,
- 1157, 719, 719, 1156, 719, 2579, 2575, 2577, 2578, 2576,
- 2580, 2581, 2582, 1155, 1154, 719, 3278, 1149, 2489, 4235,
- 4189, 1089, 1083, 1081, 1098, 2399, 2400, 1098, 1171, 1135,
- 1140, 1096, 1140, 1281, 1134, 1281, 1281, 1098, 1170, 2399,
- 2400, 1134, 2010, 719, 1074, 1999, 1870, 1997, 1998, 1996,
- 2000, 2001, 2002, 3621, 3025, 2556, 2555, 2006, 1471, 1468,
- 1469, 1470, 1475, 1477, 1474, 1451, 1473, 1089, 1083, 1081,
- 164, 3189, 1179, 3187, 3298, 1153, 1467, 3005, 1790, 3041,
- 1868, 2975, 1151, 1472, 1867, 1041, 1524, 1529, 1530, 1866,
- 1533, 1535, 1536, 1537, 1538, 1539, 2991, 1542, 1543, 1545,
- 1545, 2007, 1545, 1545, 1550, 1550, 1550, 1553, 1554, 1555,
+ 974, 3698, 3699, 87, 3697, 4137, 4214, 4028, 4118, 3361,
+ 4227, 4181, 4106, 3647, 4182, 969, 1285, 961, 3262, 2135,
+ 2014, 2443, 2170, 3269, 2371, 1283, 3497, 4010, 2147, 3933,
+ 3319, 3310, 3324, 3321, 3320, 3318, 3323, 3322, 2073, 3223,
+ 4008, 5, 3634, 2373, 3161, 3076, 3339, 3277, 2518, 753,
+ 3338, 3227, 3224, 3543, 962, 3221, 3740, 3050, 3537, 923,
+ 747, 3211, 2877, 3075, 1804, 2398, 2481, 781, 2414, 1760,
+ 748, 2951, 4079, 3032, 3368, 1861, 3527, 2417, 2982, 922,
+ 3341, 2505, 2486, 3565, 2952, 2549, 1042, 1164, 87, 163,
+ 1094, 927, 2953, 2431, 42, 1062, 1039, 743, 2883, 1069,
+ 1909, 2902, 2419, 2869, 41, 2418, 2853, 1042, 2327, 2294,
+ 2169, 2295, 2131, 3023, 2527, 149, 43, 1891, 2504, 2081,
+ 2406, 2488, 1104, 2944, 1122, 2566, 1127, 1793, 2919, 1773,
+ 2421, 1721, 2890, 1541, 2175, 100, 2106, 2095, 104, 105,
+ 1466, 1449, 1898, 2010, 1101, 1098, 3226, 763, 1133, 1870,
+ 1102, 2477, 1990, 1128, 1130, 1129, 2478, 1792, 1079, 1778,
+ 1081, 1051, 758, 1140, 750, 2399, 1743, 2183, 3735, 2202,
+ 1048, 2851, 1524, 85, 2072, 2022, 1061, 1041, 107, 1045,
+ 3727, 1500, 99, 1273, 167, 3554, 3498, 1883, 127, 125,
+ 126, 132, 1046, 1213, 1037, 133, 924, 1049, 1064, 751,
+ 1074, 84, 1545, 98, 1047, 106, 4215, 1281, 3635, 3307,
+ 1259, 740, 1073, 93, 2520, 2521, 2522, 4063, 1550, 2520,
+ 3005, 3004, 2564, 2973, 3627, 1036, 4164, 683, 3040, 3590,
+ 3041, 4059, 2368, 2369, 4058, 1054, 2088, 128, 2087, 1166,
+ 2086, 134, 2085, 4064, 1169, 2084, 1095, 3329, 2083, 2053,
+ 1229, 4158, 1183, 1184, 1185, 2849, 1188, 1189, 1190, 1191,
+ 3326, 2618, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
+ 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1088,
+ 3207, 4185, 1089, 1055, 741, 2, 680, 1040, 681, 1764,
+ 1038, 1143, 95, 1975, 1119, 2553, 1762, 3702, 3702, 3329,
+ 1144, 2879, 4220, 725, 3165, 1111, 2392, 3327, 4237, 128,
+ 1170, 1173, 1174, 1118, 1117, 1116, 95, 4037, 95, 1765,
+ 1063, 1463, 1177, 1106, 1460, 2975, 1763, 4219, 4180, 1230,
+ 111, 112, 113, 1186, 116, 4059, 3333, 122, 725, 2552,
+ 191, 1483, 95, 675, 4205, 3501, 928, 3500, 4168, 4166,
+ 1035, 2395, 2394, 2995, 2998, 738, 739, 190, 4011, 3327,
+ 719, 1754, 2109, 2814, 2093, 1030, 1031, 1032, 1033, 1087,
+ 1091, 926, 1044, 4167, 4165, 3387, 4133, 128, 3929, 3928,
+ 129, 1168, 190, 1167, 977, 978, 979, 719, 3333, 977,
+ 978, 979, 3640, 3701, 3701, 3641, 172, 1451, 4195, 3939,
+ 1076, 1077, 1120, 4147, 86, 129, 1087, 1091, 926, 4162,
+ 3659, 3648, 4107, 4115, 2546, 86, 86, 3938, 719, 2625,
+ 2140, 172, 4142, 4145, 3413, 1872, 3012, 2850, 3013, 1462,
+ 714, 3259, 3260, 4151, 4152, 2551, 2438, 2439, 4119, 2893,
+ 3258, 1479, 2933, 3279, 3280, 1794, 1115, 1795, 1222, 1223,
+ 4146, 3330, 2065, 2066, 3039, 719, 169, 3658, 2928, 170,
+ 2622, 2927, 2437, 3022, 2929, 1278, 3754, 2894, 1254, 1255,
+ 1249, 1028, 1110, 1027, 1237, 1112, 4029, 2940, 699, 1238,
+ 1225, 169, 1250, 1243, 170, 189, 2018, 95, 719, 2623,
+ 1480, 697, 1481, 1482, 2456, 2455, 3365, 1212, 95, 95,
+ 719, 3395, 1237, 3330, 1113, 2370, 719, 1238, 3363, 4042,
+ 189, 2886, 2887, 1444, 4123, 1236, 2616, 1235, 3393, 4123,
+ 2068, 1790, 2064, 733, 737, 731, 3097, 3369, 2528, 3024,
+ 1187, 694, 1996, 1725, 1461, 4186, 3981, 3356, 3982, 2983,
+ 709, 3008, 2567, 2402, 2573, 3357, 1965, 86, 4217, 2592,
+ 88, 2593, 3278, 2594, 1991, 704, 4187, 1266, 1270, 1268,
+ 1450, 1252, 1253, 2569, 3281, 1443, 1275, 707, 2211, 1218,
+ 717, 1258, 2497, 3027, 1115, 720, 1107, 1256, 718, 1277,
+ 3913, 1251, 1244, 1109, 1108, 1276, 2619, 1257, 2620, 1501,
+ 1966, 3629, 1967, 3366, 3628, 2595, 2491, 1265, 1267, 2574,
+ 173, 1080, 720, 3625, 1142, 3364, 1142, 1193, 1192, 179,
+ 1153, 3384, 1151, 1502, 1503, 1504, 1505, 1506, 1507, 1508,
+ 1510, 1509, 1511, 1512, 2531, 173, 1728, 1123, 2019, 2571,
+ 95, 1124, 1113, 720, 179, 3281, 3706, 1114, 684, 2415,
+ 686, 700, 1124, 722, 1162, 721, 690, 1161, 688, 692,
+ 701, 693, 1160, 687, 4159, 698, 1159, 1158, 689, 702,
+ 703, 706, 710, 711, 712, 708, 705, 2203, 696, 723,
+ 720, 2570, 2205, 1157, 1156, 1155, 2210, 2206, 1150, 1876,
+ 2207, 2208, 2209, 1163, 2572, 2204, 2212, 2213, 2214, 2215,
+ 2216, 2217, 2218, 2219, 2220, 3098, 3540, 1099, 1090, 1084,
+ 1082, 1099, 1136, 720, 2976, 1097, 4238, 1141, 1263, 1141,
+ 4192, 1099, 1264, 1075, 1282, 720, 1282, 1282, 3624, 3164,
+ 1135, 720, 1269, 2580, 2576, 2578, 2579, 2577, 2581, 2582,
+ 2583, 2584, 2011, 1871, 3028, 1090, 1084, 1082, 164, 2400,
+ 2401, 2557, 3173, 2556, 2007, 1452, 1180, 1262, 3192, 2490,
+ 3190, 3301, 2000, 1791, 1998, 1999, 1997, 2001, 2002, 2003,
+ 1154, 3007, 1152, 164, 1869, 1114, 1042, 1525, 1530, 1531,
+ 1868, 1534, 1536, 1537, 1538, 1539, 1540, 1867, 1543, 1544,
+ 1546, 1546, 3010, 1546, 1546, 1551, 1551, 1551, 1554, 1555,
1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575,
1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
@@ -1788,1079 +1790,1090 @@ var yyAct = [...]int{
1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655,
1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
- 1676, 1521, 3697, 3697, 1270, 1677, 4033, 1679, 1680, 1681,
- 1682, 1683, 2549, 1440, 1441, 2972, 3585, 3586, 1439, 1550,
- 1550, 1550, 1550, 1550, 1550, 974, 2940, 1120, 3654, 1534,
- 1223, 1220, 974, 723, 1690, 1691, 1692, 1693, 1694, 1695,
- 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 2995, 1525,
- 1517, 1518, 1519, 1520, 714, 4118, 974, 94, 1514, 2621,
- 1531, 4079, 2852, 2854, 2622, 1717, 94, 1864, 1082, 715,
- 94, 1551, 1552, 1227, 1546, 1896, 1547, 1548, 3538, 165,
- 3328, 3329, 1215, 4118, 1458, 3482, 177, 4117, 1141, 89,
- 3328, 3329, 2994, 3332, 1233, 3382, 673, 1232, 4157, 1238,
- 1239, 1240, 1241, 3332, 1976, 1975, 1977, 1978, 1979, 3170,
- 3019, 1515, 1516, 3018, 1082, 4117, 4147, 3008, 2547, 1723,
- 4021, 2493, 190, 1278, 1279, 3576, 3558, 185, 1041, 2922,
- 1752, 3028, 1041, 2887, 1141, 2824, 1246, 1109, 1041, 2142,
- 1111, 1265, 1781, 1267, 2638, 129, 1678, 1226, 3169, 1471,
- 1468, 1469, 1470, 1475, 1477, 1474, 4228, 1473, 2882, 681,
- 4146, 172, 2494, 2443, 1714, 1715, 1178, 1467, 2166, 2492,
- 166, 171, 168, 174, 175, 176, 178, 180, 181, 182,
- 183, 1264, 1266, 1141, 1895, 1514, 184, 186, 187, 188,
- 124, 1140, 1506, 1507, 1509, 1508, 1510, 1511, 1994, 94,
- 1511, 3254, 2649, 2495, 1259, 1141, 1753, 1494, 2183, 1057,
- 119, 2022, 1273, 2491, 4047, 1684, 1685, 1686, 1687, 1688,
- 1689, 169, 1733, 1734, 170, 2184, 104, 105, 1731, 1164,
- 3031, 3617, 1735, 1715, 3550, 3030, 2853, 1140, 1040, 1114,
- 2110, 1106, 1144, 1134, 1114, 1210, 1721, 1146, 1108, 1107,
- 189, 1147, 1145, 2567, 2111, 1512, 1513, 2109, 1141, 2076,
- 2003, 1795, 2175, 1231, 3068, 107, 4193, 2158, 2147, 2148,
- 2149, 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155,
- 2162, 2163, 2164, 2156, 2157, 2159, 1140, 1482, 120, 1141,
- 2649, 1262, 1134, 1137, 1138, 1263, 1098, 1112, 1888, 2509,
- 1131, 1135, 3031, 1481, 2175, 1268, 2658, 3030, 1140, 1214,
- 1729, 1872, 1873, 1874, 1134, 1137, 1138, 3746, 1098, 1718,
- 1730, 1130, 1131, 1135, 3592, 2546, 3591, 1732, 2534, 1959,
- 1261, 1755, 1898, 1898, 1905, 1910, 2015, 1911, 1758, 1913,
- 1915, 1881, 1941, 1919, 1921, 1923, 1925, 1927, 1900, 3262,
- 1039, 1037, 1245, 1991, 1904, 1992, 1786, 1787, 1993, 1281,
- 2169, 1140, 1260, 1247, 2181, 173, 1144, 1134, 1855, 2023,
- 1899, 1146, 1480, 1481, 179, 1147, 1145, 1894, 1949, 1950,
- 1753, 2539, 1500, 1216, 1955, 1956, 1863, 2539, 4226, 1482,
- 2544, 4227, 1140, 4225, 1177, 2542, 1148, 1878, 1174, 1879,
- 3263, 1152, 1877, 1891, 1150, 4236, 1501, 1502, 1503, 1504,
- 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1230, 1213, 2098,
- 2099, 2096, 2097, 4185, 2543, 3265, 1902, 3577, 1052, 1113,
- 2541, 3048, 1753, 1984, 1113, 742, 1479, 4230, 1480, 1481,
- 2180, 1736, 4080, 724, 4013, 3260, 2095, 3651, 1945, 3652,
- 3918, 1482, 3917, 1937, 2011, 3908, 1940, 1982, 1942, 2098,
- 2099, 2628, 2629, 3668, 1971, 3276, 3277, 976, 977, 978,
- 3667, 3599, 3261, 1502, 1503, 1504, 1505, 1506, 1507, 1509,
- 1508, 1510, 1511, 128, 1117, 3598, 1116, 1115, 3588, 1482,
- 1789, 4081, 1500, 4014, 3305, 1496, 3294, 1497, 2947, 2946,
- 2945, 4237, 164, 2499, 1983, 1985, 3267, 1969, 1482, 1968,
- 2028, 1498, 1512, 1513, 1495, 3050, 1501, 1502, 1503, 1504,
- 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1967, 1981, 1281,
- 1281, 1957, 1951, 1948, 2050, 1970, 2024, 2025, 1479, 1947,
- 1480, 1481, 2331, 4198, 1753, 87, 2328, 3070, 87, 1946,
- 2029, 1500, 4186, 3040, 1917, 2330, 1728, 2036, 2037, 2038,
- 1482, 3582, 2331, 724, 2929, 3357, 724, 2049, 2515, 1482,
- 2514, 972, 1445, 4042, 3275, 1501, 1502, 1503, 1504, 1505,
- 1506, 1507, 1509, 1508, 1510, 1511, 3278, 2166, 3060, 3059,
- 3058, 1500, 2513, 3052, 2512, 3056, 2511, 3051, 2510, 3049,
- 1479, 4187, 1480, 1481, 3054, 1504, 1505, 1506, 1507, 1509,
- 1508, 1510, 1511, 3053, 4041, 1501, 1502, 1503, 1504, 1505,
- 1506, 1507, 1509, 1508, 1510, 1511, 2137, 2137, 2135, 2135,
- 2138, 1482, 3055, 3057, 101, 4017, 2697, 2100, 1479, 4016,
- 1480, 1481, 1482, 4015, 102, 42, 1478, 1753, 42, 1482,
- 2873, 4213, 4196, 1753, 1482, 3913, 2026, 1479, 1766, 1480,
- 1481, 4126, 1753, 2030, 1482, 2032, 2033, 2034, 2035, 4173,
- 1753, 3399, 2039, 3897, 2221, 1488, 1489, 1490, 1491, 1492,
- 1493, 1487, 1484, 3896, 2051, 3745, 2158, 2147, 2148, 2149,
- 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155, 2162,
- 2163, 2164, 2156, 2157, 2159, 1753, 3264, 1767, 3743, 1479,
- 3664, 1480, 1481, 1713, 85, 2873, 1753, 85, 1479, 2077,
- 1480, 1481, 1712, 4124, 1753, 1753, 1714, 1715, 1711, 1482,
- 1478, 1753, 2107, 3596, 4122, 1753, 4035, 2057, 2058, 110,
- 3581, 165, 1753, 101, 2170, 3367, 3991, 1753, 177, 103,
- 109, 3364, 108, 102, 2112, 3297, 2113, 4030, 2115, 2116,
- 2117, 2118, 2119, 2120, 2122, 2124, 2125, 2126, 2127, 2128,
- 2129, 1710, 3296, 2956, 1482, 2943, 1708, 1710, 2141, 1704,
- 1479, 1706, 1480, 1481, 1707, 1705, 2339, 1709, 2341, 185,
- 2114, 1479, 1482, 1480, 1481, 2873, 4111, 3945, 1479, 2245,
- 1480, 1481, 1482, 1479, 2611, 1480, 1481, 2603, 1525, 2185,
- 2186, 2187, 2188, 1479, 1753, 1480, 1481, 2340, 2406, 2407,
- 2602, 3989, 1753, 2199, 2220, 1753, 2176, 2329, 2327, 1482,
- 1500, 2561, 166, 171, 168, 174, 175, 176, 178, 180,
- 181, 182, 183, 2237, 2560, 1482, 2873, 4090, 184, 186,
- 187, 188, 2699, 1482, 1501, 1502, 1503, 1504, 1505, 1506,
- 1507, 1509, 1508, 1510, 1511, 1482, 3986, 1753, 3944, 1482,
- 2873, 4086, 3998, 1753, 1500, 2396, 2637, 2422, 1479, 2375,
- 1480, 1481, 3635, 4032, 2338, 3921, 1753, 2344, 2345, 2339,
- 1482, 2341, 2873, 3909, 3968, 1753, 104, 105, 1501, 1502,
- 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2053,
- 1482, 2647, 3635, 1753, 2873, 3633, 3901, 104, 105, 2452,
- 2411, 2646, 2386, 1479, 2019, 1480, 1481, 2539, 1753, 3900,
- 2374, 3556, 1753, 1482, 2685, 2779, 1753, 3940, 2106, 3287,
- 3286, 1479, 103, 1480, 1481, 3523, 1753, 2695, 3268, 1980,
- 1103, 1479, 3272, 1480, 1481, 3284, 3285, 3516, 1753, 3271,
- 1972, 3513, 1753, 3282, 3283, 2461, 2462, 2463, 2464, 2456,
- 2447, 2457, 2458, 2459, 2460, 2446, 1053, 2424, 1479, 1962,
- 1480, 1481, 3511, 1753, 1103, 2466, 2428, 1958, 2468, 2469,
- 2470, 2471, 2387, 3273, 1479, 1954, 1480, 1481, 3269, 3282,
- 3281, 2362, 1479, 3270, 1480, 1481, 2380, 1753, 2381, 2389,
- 2482, 1953, 1482, 1952, 1479, 2450, 1480, 1481, 1479, 2870,
- 1480, 1481, 1482, 2488, 2409, 2528, 1753, 86, 44, 45,
- 88, 2897, 1753, 103, 2434, 2433, 1768, 1087, 2432, 1479,
- 1271, 1480, 1481, 2449, 2448, 2918, 92, 1482, 2621, 3004,
- 48, 76, 77, 2889, 74, 78, 2525, 1088, 1482, 1479,
- 3643, 1480, 1481, 1859, 2985, 2982, 75, 3553, 2498, 1501,
- 1502, 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511,
- 2918, 1143, 1479, 2961, 1480, 1481, 2978, 2979, 109, 2483,
- 3219, 1898, 2479, 2472, 2474, 2475, 1482, 2868, 62, 2502,
- 2497, 3549, 2501, 2533, 3474, 1753, 2536, 2889, 2537, 2553,
- 95, 1482, 3249, 2919, 3472, 1753, 2873, 2872, 2140, 1753,
- 1859, 1858, 2621, 2921, 1482, 2483, 2532, 2540, 2535, 2531,
- 2897, 1482, 1801, 1800, 1142, 3552, 2896, 2451, 3549, 3468,
- 1753, 2557, 190, 2554, 1478, 2558, 2559, 1482, 2919, 4074,
- 3465, 1753, 4046, 2976, 2873, 2897, 3502, 110, 2621, 1482,
- 83, 1479, 1478, 1480, 1481, 129, 1482, 151, 109, 3600,
- 108, 1479, 3284, 1480, 1481, 3192, 1754, 1756, 103, 1482,
- 1770, 172, 2435, 2626, 3549, 2779, 2564, 2682, 3463, 1753,
- 2645, 2539, 1041, 1041, 1041, 2681, 1479, 2897, 1480, 1481,
- 2539, 2522, 2404, 3461, 1753, 1757, 2365, 1479, 2140, 1480,
- 1481, 1482, 1535, 2078, 1535, 162, 3459, 1753, 2062, 2005,
- 1933, 150, 1788, 3457, 1753, 1125, 3601, 3602, 3603, 1124,
- 2641, 1042, 1482, 95, 4152, 4093, 3932, 1760, 2596, 3455,
- 1753, 169, 3898, 1753, 170, 1479, 3758, 1480, 1481, 1482,
- 2644, 1769, 2341, 3616, 3613, 51, 54, 57, 56, 59,
- 1479, 73, 1480, 1481, 82, 79, 1884, 1885, 161, 160,
- 189, 3453, 1753, 1479, 1482, 1480, 1481, 1934, 1935, 1936,
- 1479, 2340, 1480, 1481, 3594, 3415, 3414, 1861, 61, 91,
- 90, 2481, 2613, 71, 72, 58, 1479, 1482, 1480, 1481,
- 3355, 80, 81, 3451, 1753, 3310, 1482, 2619, 1479, 3306,
- 1480, 1481, 1482, 2986, 95, 1479, 1482, 1480, 1481, 2478,
- 1482, 2473, 2467, 2627, 3449, 1753, 1482, 2465, 1479, 1987,
- 1480, 1481, 1893, 1889, 1716, 1857, 2633, 121, 2630, 2631,
- 2632, 3447, 1753, 1482, 63, 64, 2107, 65, 66, 67,
- 68, 3308, 2953, 2952, 1215, 3359, 3563, 3564, 3933, 2496,
- 1479, 2378, 1480, 1481, 2055, 4208, 3445, 1753, 4206, 2634,
- 4180, 2636, 155, 1886, 158, 4054, 1883, 3973, 156, 157,
- 2639, 1479, 2640, 1480, 1481, 173, 3566, 1482, 3302, 3443,
- 1753, 1482, 3301, 3569, 179, 3300, 3219, 2657, 1479, 3905,
- 1480, 1481, 3568, 2635, 3441, 1753, 1482, 2953, 3439, 1753,
- 1482, 60, 3437, 1753, 2965, 2597, 1482, 3238, 3435, 1753,
- 3237, 2384, 1482, 1479, 2642, 1480, 1481, 1482, 3241, 3239,
- 2823, 2056, 1482, 3242, 3240, 3421, 1753, 1482, 2605, 2606,
- 4050, 1482, 3723, 2608, 3722, 1482, 1479, 678, 1480, 1481,
- 3934, 1765, 2609, 2693, 2395, 1479, 2811, 1480, 1481, 2654,
- 3557, 1479, 2855, 1480, 1481, 1479, 3197, 1480, 1481, 1479,
- 3196, 1480, 1481, 1482, 3542, 1479, 1055, 1480, 1481, 3397,
- 1753, 1041, 3541, 2844, 1753, 4012, 3736, 2137, 3738, 2135,
- 2858, 3545, 1479, 2004, 1480, 1481, 3206, 3721, 2842, 1753,
- 1025, 89, 2817, 1753, 2894, 2895, 1482, 2856, 2794, 1753,
- 1058, 1482, 3280, 2422, 2786, 1753, 1041, 2914, 1059, 2777,
- 1753, 741, 164, 2936, 2775, 1753, 2957, 1056, 2589, 2762,
- 1753, 2893, 2183, 2859, 3618, 2861, 1479, 2653, 1480, 1481,
- 1479, 1482, 1480, 1481, 3209, 3211, 1482, 2874, 3375, 2184,
- 1482, 2588, 2106, 3212, 1482, 1479, 1067, 1480, 1481, 1479,
- 2587, 1480, 1481, 2586, 2585, 1479, 2948, 1480, 1481, 2584,
- 1066, 1479, 1482, 1480, 1481, 3604, 1479, 1482, 1480, 1481,
- 2883, 1479, 1482, 1480, 1481, 1721, 1479, 2846, 1480, 1481,
- 1479, 1181, 1480, 1481, 1479, 1929, 1480, 1481, 2760, 1753,
- 2583, 1180, 1482, 3571, 42, 2952, 2866, 101, 2939, 2941,
- 3034, 94, 2912, 2911, 1715, 1482, 2913, 102, 159, 1444,
- 2932, 1482, 1479, 2886, 1480, 1481, 2916, 2871, 3605, 3606,
- 3607, 2990, 3547, 2758, 1753, 2103, 2101, 2102, 2756, 1753,
- 2992, 129, 2754, 1753, 103, 1482, 3518, 2920, 1930, 1931,
- 1932, 2488, 2923, 1482, 4222, 1479, 2969, 1480, 1481, 2930,
- 1479, 2933, 1480, 1481, 2752, 1753, 2406, 2407, 2600, 2750,
- 1753, 4129, 4031, 3001, 2748, 1753, 2178, 3525, 3928, 2944,
- 3279, 2179, 2955, 2910, 2390, 1482, 2625, 2958, 2959, 1482,
- 1479, 2061, 1480, 1481, 3514, 1479, 2954, 1480, 1481, 1479,
- 2060, 1480, 1481, 1479, 108, 1480, 1481, 3480, 2962, 2966,
- 2967, 2968, 2963, 2746, 1753, 1482, 3997, 3195, 70, 2241,
- 2998, 1479, 109, 1480, 1481, 3194, 1479, 152, 1480, 1481,
- 153, 1479, 3996, 1480, 1481, 3976, 3744, 3476, 1881, 1482,
- 3742, 3044, 3045, 2987, 2988, 2744, 1753, 3243, 3741, 2906,
- 2907, 1479, 101, 1480, 1481, 2997, 3734, 3614, 103, 3546,
- 3544, 165, 102, 110, 1479, 3311, 1480, 1481, 177, 2523,
- 1479, 1876, 1480, 1481, 109, 110, 108, 2742, 1753, 1065,
- 3733, 2740, 1753, 3535, 1482, 2889, 109, 3707, 1482, 3042,
- 3023, 3061, 2870, 1482, 1479, 3026, 1480, 1481, 4209, 2324,
- 3098, 2683, 1479, 2376, 1480, 1481, 1482, 2738, 1753, 185,
- 4210, 4209, 3, 1482, 1782, 3079, 3080, 3081, 3082, 3083,
- 3084, 3085, 3086, 3087, 3088, 1774, 114, 115, 1482, 2356,
- 4210, 2736, 1753, 4018, 1479, 3096, 1480, 1481, 1479, 2999,
- 1480, 1481, 3580, 3062, 97, 2075, 1754, 2363, 10, 1,
- 1033, 1447, 166, 171, 168, 174, 175, 176, 178, 180,
- 181, 182, 183, 1446, 1479, 3584, 1480, 1481, 184, 186,
- 187, 188, 2073, 4141, 694, 9, 2734, 1753, 2366, 2074,
- 2732, 1753, 8, 1719, 4181, 3412, 2388, 4137, 1479, 4138,
- 1480, 1481, 1973, 3100, 1963, 3646, 1716, 2292, 2730, 1753,
- 3046, 3929, 3314, 3156, 2529, 3411, 3032, 3612, 3063, 3033,
- 2486, 1133, 154, 1482, 2444, 2445, 4106, 1482, 118, 1091,
- 2728, 1753, 2902, 2905, 2906, 2907, 2903, 117, 2904, 2908,
- 3043, 1136, 3174, 1479, 1244, 1480, 1481, 1479, 2524, 1480,
- 1481, 3636, 1479, 2235, 1480, 1481, 3163, 2937, 2453, 1807,
- 1805, 3165, 1806, 1482, 2977, 1479, 1804, 1480, 1481, 1809,
- 1808, 2422, 1479, 1482, 1480, 1481, 4078, 3089, 3383, 2684,
- 3481, 2066, 2329, 2327, 2329, 2327, 3136, 1479, 1482, 1480,
- 1481, 731, 2909, 3226, 1482, 87, 725, 192, 2422, 2422,
- 2422, 2422, 2422, 2500, 1796, 3174, 3146, 3147, 3148, 3149,
- 3150, 110, 1775, 2059, 3164, 3403, 3166, 1175, 2422, 2723,
- 1753, 2422, 109, 684, 108, 3288, 3231, 1482, 2562, 3248,
- 690, 1482, 103, 2318, 2319, 2320, 2321, 2322, 1532, 2054,
- 3173, 3193, 2015, 1482, 2924, 1085, 1077, 3185, 2377, 2860,
- 2343, 3191, 1482, 2346, 2347, 2719, 1753, 3186, 3188, 3190,
- 1482, 3198, 3200, 1084, 3906, 2717, 1753, 3227, 3213, 3214,
- 3201, 2424, 1479, 3539, 1480, 1481, 1479, 3205, 1480, 1481,
- 2710, 1753, 3207, 2876, 3331, 3210, 2708, 1753, 2364, 3233,
- 3234, 3230, 3236, 3203, 3339, 1044, 1045, 1482, 2424, 2424,
- 2424, 2424, 2424, 104, 105, 3252, 3244, 3232, 4011, 1046,
- 3235, 3735, 1479, 1482, 1480, 1481, 3258, 3250, 2424, 3401,
- 3251, 2424, 1479, 2840, 1480, 1481, 4091, 2934, 1771, 1482,
- 3501, 2656, 3290, 3199, 3291, 2839, 3289, 1479, 2173, 1480,
- 1481, 1522, 756, 1479, 2835, 1480, 1481, 1482, 2421, 3702,
- 2093, 754, 2834, 1482, 753, 3292, 3293, 3312, 751, 2862,
- 2488, 3343, 3333, 1482, 2890, 1486, 3340, 1482, 1485, 962,
- 2850, 1783, 3216, 3350, 3344, 1482, 1479, 2901, 1480, 1481,
- 1479, 2899, 1480, 1481, 2898, 3222, 2598, 2429, 3565, 2833,
- 3222, 3561, 1479, 3368, 1480, 1481, 3371, 1482, 4133, 2423,
- 3370, 1479, 3378, 1480, 1481, 2832, 2419, 2869, 913, 1479,
- 912, 1480, 1481, 763, 755, 745, 975, 911, 3388, 3385,
- 3386, 2831, 3387, 910, 3341, 3389, 3342, 3391, 3007, 3393,
- 3404, 3405, 3406, 3407, 3408, 3356, 3009, 2935, 3352, 2830,
- 1463, 1738, 1741, 2385, 1104, 2821, 1479, 3380, 1480, 1481,
- 2902, 2905, 2906, 2907, 2903, 2820, 2904, 2908, 4037, 2819,
- 3563, 3564, 1479, 2624, 1480, 1481, 3409, 2818, 1535, 1737,
- 4044, 3322, 1535, 3630, 3303, 3313, 2983, 2516, 1479, 69,
- 1480, 1481, 2643, 46, 4006, 4075, 2648, 905, 3526, 2815,
- 3528, 902, 3704, 3705, 3706, 3159, 1479, 3160, 1480, 1481,
- 3496, 4057, 1479, 4058, 1480, 1481, 901, 3500, 4059, 2651,
- 2230, 2652, 1479, 1457, 1480, 1481, 1479, 2660, 1480, 1481,
- 1454, 2662, 2663, 4154, 1479, 2068, 1480, 1481, 96, 36,
- 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678,
- 35, 2680, 34, 3379, 33, 3225, 1479, 32, 1480, 1481,
- 2422, 26, 25, 3527, 24, 3529, 23, 22, 29, 3531,
- 19, 21, 3536, 3578, 2686, 2687, 2688, 2689, 20, 2691,
- 2692, 3543, 2694, 1482, 18, 3325, 2696, 4176, 3548, 4221,
- 2701, 2702, 123, 2703, 55, 1482, 2706, 2707, 2709, 2711,
- 2712, 2713, 2714, 2715, 2716, 2718, 2720, 2721, 2722, 2724,
- 743, 2726, 2727, 2729, 2731, 2733, 2735, 2737, 2739, 2741,
- 2743, 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761,
- 2763, 2764, 2765, 3570, 2767, 3579, 2769, 3334, 2771, 2772,
- 3343, 2774, 2776, 2778, 3572, 3340, 3503, 2781, 3505, 3506,
- 3507, 2785, 3595, 3344, 3597, 2790, 2791, 2792, 2793, 3573,
- 2424, 3567, 1482, 52, 3640, 3641, 3373, 3374, 2804, 2805,
- 2806, 2807, 2808, 2809, 3533, 2810, 2813, 2814, 50, 131,
- 130, 1482, 53, 49, 2816, 3589, 3590, 2803, 1218, 2822,
- 47, 31, 1482, 30, 2825, 2826, 2827, 2828, 2829, 1482,
- 17, 16, 15, 14, 1482, 2836, 2837, 3560, 2838, 1482,
- 13, 2841, 2843, 2388, 12, 2845, 11, 7, 1482, 1064,
- 6, 39, 1070, 1070, 1482, 2857, 3574, 3575, 1482, 38,
- 37, 28, 1479, 27, 1480, 1481, 40, 3623, 4, 3642,
- 2970, 3627, 3628, 3629, 1479, 2518, 1480, 1481, 0, 0,
- 0, 0, 0, 0, 2802, 0, 0, 3658, 0, 0,
- 0, 0, 0, 2664, 0, 0, 0, 1482, 0, 0,
- 0, 0, 1482, 2801, 0, 0, 0, 0, 0, 1482,
- 2679, 0, 3669, 0, 2800, 0, 1482, 0, 0, 0,
- 1482, 2799, 0, 0, 1482, 0, 2798, 0, 1482, 0,
- 0, 2797, 1482, 0, 0, 0, 1482, 0, 0, 0,
- 2796, 1479, 0, 1480, 1481, 0, 2795, 0, 1482, 0,
- 2789, 0, 0, 0, 0, 3710, 0, 3711, 3712, 3713,
- 1479, 0, 1480, 1481, 0, 3720, 0, 1482, 3727, 0,
- 3729, 1479, 0, 1480, 1481, 0, 0, 3700, 1479, 0,
- 1480, 1481, 1482, 1479, 3730, 1480, 1481, 0, 1479, 2788,
- 1480, 1481, 0, 3226, 2787, 0, 87, 1479, 3226, 1480,
- 1481, 2784, 0, 1479, 0, 1480, 1481, 1479, 2783, 1480,
- 1481, 0, 2782, 0, 0, 0, 2780, 0, 0, 0,
- 2773, 0, 1482, 3752, 2770, 0, 0, 3731, 2768, 0,
- 0, 0, 2137, 3663, 2135, 3760, 3740, 3750, 3739, 0,
- 2766, 0, 3747, 0, 3749, 0, 1479, 0, 1480, 1481,
- 1482, 1479, 0, 1480, 1481, 0, 0, 0, 1479, 2725,
- 1480, 1481, 0, 3912, 0, 1479, 0, 1480, 1481, 1479,
- 3764, 1480, 1481, 1479, 2705, 1480, 1481, 1479, 0, 1480,
- 1481, 1479, 0, 1480, 1481, 1479, 0, 1480, 1481, 0,
- 0, 3619, 3620, 0, 0, 0, 42, 1479, 0, 1480,
- 1481, 0, 3904, 3931, 3903, 0, 0, 0, 0, 0,
- 0, 0, 0, 3919, 2704, 0, 1479, 0, 1480, 1481,
- 3923, 3924, 0, 0, 0, 0, 3902, 0, 0, 0,
- 0, 1479, 0, 1480, 1481, 0, 3970, 3971, 0, 0,
- 0, 0, 2700, 3754, 0, 3074, 3075, 3076, 3077, 3078,
- 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0,
- 2137, 0, 2135, 3974, 0, 3093, 0, 3914, 3915, 3916,
- 0, 1479, 0, 1480, 1481, 0, 0, 0, 3761, 3762,
- 0, 0, 0, 3222, 0, 0, 0, 0, 0, 3977,
- 0, 4019, 3226, 3980, 0, 0, 0, 0, 3756, 1479,
- 0, 1480, 1481, 0, 0, 0, 1553, 1554, 1555, 1556,
- 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
- 1567, 1568, 1569, 1570, 1571, 1573, 1574, 1575, 1576, 1577,
- 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587,
- 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597,
- 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
- 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617,
- 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
- 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637,
- 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
- 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658,
- 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1673,
- 1674, 1675, 1676, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
- 1697, 1698, 1699, 1700, 1701, 1702, 1703, 4020, 4004, 0,
- 3975, 4003, 0, 0, 0, 3225, 3994, 0, 0, 1482,
- 3225, 4038, 0, 4000, 0, 4002, 0, 0, 1482, 0,
- 0, 3064, 0, 0, 1743, 0, 0, 0, 0, 87,
- 0, 0, 0, 0, 1743, 3228, 0, 0, 1751, 1482,
- 4023, 1744, 0, 1482, 0, 0, 0, 0, 1751, 4022,
- 0, 1744, 0, 3246, 0, 0, 4045, 3907, 4040, 4027,
- 0, 0, 1482, 0, 4043, 0, 2382, 2383, 1750, 1748,
- 1749, 1745, 0, 1746, 0, 3911, 1739, 1740, 1750, 1748,
- 1749, 1745, 0, 1746, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0,
- 0, 2698, 0, 0, 0, 0, 1747, 0, 0, 0,
- 2690, 0, 0, 0, 0, 0, 0, 0, 0, 4063,
- 0, 0, 4064, 0, 0, 0, 0, 4088, 0, 42,
- 0, 2661, 87, 0, 0, 2655, 0, 0, 0, 0,
- 4073, 0, 0, 0, 0, 1483, 0, 0, 4082, 0,
- 0, 0, 0, 3138, 2650, 3140, 0, 0, 1479, 4092,
- 1480, 1481, 0, 0, 3931, 4108, 4094, 1479, 4119, 1480,
- 1481, 3151, 3152, 3153, 3154, 4105, 1541, 0, 4097, 4102,
- 3377, 4099, 4098, 4096, 4101, 4100, 0, 0, 1479, 4127,
- 1480, 1481, 1479, 0, 1480, 1481, 0, 0, 0, 4024,
- 0, 4132, 3394, 3395, 3225, 3396, 3398, 3400, 0, 4150,
- 0, 1479, 0, 1480, 1481, 0, 4140, 0, 4145, 0,
- 0, 0, 0, 0, 4158, 4119, 4160, 0, 0, 0,
- 4171, 0, 42, 3413, 0, 0, 0, 0, 3416, 0,
- 3418, 3419, 3420, 3422, 3423, 3424, 3425, 3426, 3427, 3428,
- 3429, 3430, 3431, 3432, 3433, 3434, 3436, 3438, 3440, 3442,
- 3444, 3446, 3448, 3450, 3452, 3454, 3456, 3458, 3460, 3462,
- 3464, 3466, 3467, 3469, 3470, 3471, 3473, 2015, 4194, 3475,
- 4191, 3477, 3478, 3479, 4201, 4205, 3483, 3484, 3485, 3486,
- 3487, 3488, 3489, 3490, 3491, 3492, 3493, 2137, 4207, 2135,
- 4204, 4203, 4119, 4215, 4200, 3499, 4190, 4175, 4170, 3504,
- 4223, 4089, 3222, 3508, 3509, 4084, 3510, 3512, 0, 3515,
- 3517, 4231, 3519, 3520, 3521, 3522, 4229, 0, 4174, 0,
- 0, 0, 3530, 0, 0, 0, 0, 1825, 0, 4029,
- 4240, 4241, 3971, 4239, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2137, 0, 2135, 4238, 0,
- 0, 0, 0, 4036, 0, 0, 0, 3554, 3555, 0,
- 0, 3559, 0, 4048, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1825, 0, 0, 4166,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4083, 0, 0, 0, 0, 0, 1773, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3634, 0, 0, 0,
- 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3653, 0, 0, 3657, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 676, 0, 1812, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3670, 0,
- 0, 1028, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1826, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4188, 0, 0, 0, 1716, 0, 0,
- 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3693, 0, 0, 0, 0, 1826, 0, 0,
- 0, 0, 2020, 0, 0, 3701, 0, 0, 0, 0,
- 0, 0, 3708, 1839, 1842, 1843, 1844, 1845, 1846, 1847,
- 0, 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828,
- 1829, 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815,
- 1816, 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823,
- 1831, 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0,
- 0, 1824, 1839, 1842, 1843, 1844, 1845, 1846, 1847, 0,
- 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828, 1829,
- 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815, 1816,
- 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823, 1831,
- 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0, 0,
- 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3920, 0, 0, 0, 0, 0, 0, 0, 0,
- 3927, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3937, 3938, 3939, 0, 3941, 0, 3942, 3943, 0, 0,
- 0, 0, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953,
- 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
- 3964, 3965, 3966, 3967, 0, 3969, 3972, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0,
- 0, 3981, 3982, 3983, 3984, 3985, 3987, 3988, 3990, 3992,
- 3993, 3995, 0, 0, 0, 3999, 0, 0, 0, 4001,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2088,
- 2089, 2090, 2091, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2104, 1841, 0, 0, 0,
- 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2143, 2144, 0, 0, 0, 0, 2167, 0, 0, 2171,
- 2172, 0, 0, 0, 2177, 1841, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2189,
- 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 0,
- 2200, 0, 0, 0, 2222, 2223, 2224, 2225, 2226, 2227,
- 2228, 2229, 2231, 0, 2236, 0, 2238, 2239, 2240, 0,
- 2242, 2243, 2244, 0, 2246, 2247, 2248, 2249, 2250, 2251,
- 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261,
- 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
- 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281,
- 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291,
- 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304,
- 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314,
- 2315, 2316, 2317, 0, 0, 0, 0, 0, 2323, 0,
- 2325, 0, 2332, 2333, 2334, 2335, 2336, 2337, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 0,
- 2357, 2358, 2359, 2360, 2361, 4010, 0, 0, 0, 0,
- 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4068, 0, 0, 0, 1070,
- 0, 4071, 0, 4072, 0, 0, 0, 0, 0, 0,
- 0, 0, 190, 0, 0, 0, 1219, 0, 1225, 0,
- 0, 0, 0, 0, 0, 0, 4087, 0, 0, 0,
- 2402, 2403, 0, 0, 0, 129, 0, 151, 958, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 172, 4113, 4114, 0, 0, 2441, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4121, 4123, 4125, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1453, 0, 0, 0, 4131, 162, 0, 0, 0, 0,
- 0, 150, 0, 0, 195, 0, 4153, 195, 0, 0,
- 0, 729, 0, 0, 0, 0, 735, 0, 0, 0,
- 0, 169, 0, 0, 170, 0, 0, 195, 2484, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 4172, 0, 138, 139, 161, 160,
- 189, 0, 0, 1716, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 735, 195,
- 735, 0, 0, 0, 0, 0, 0, 0, 4195, 4197,
- 4199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 4052,
- 0, 4220, 0, 0, 0, 0, 0, 4062, 0, 0,
- 0, 0, 0, 0, 0, 95, 0, 0, 1023, 4232,
- 4233, 0, 0, 963, 1024, 976, 977, 978, 964, 0,
- 0, 965, 966, 0, 967, 0, 0, 0, 0, 0,
- 0, 0, 155, 136, 158, 143, 135, 0, 156, 157,
- 972, 0, 979, 980, 0, 173, 0, 0, 0, 0,
- 0, 0, 0, 0, 179, 144, 0, 0, 0, 1716,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 147,
- 145, 140, 141, 142, 146, 0, 0, 0, 0, 0,
- 0, 137, 0, 0, 0, 0, 0, 0, 0, 0,
- 148, 3345, 3346, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 981, 982, 983, 984, 985, 986, 987,
+ 1676, 1677, 1440, 1522, 1271, 2550, 1678, 4036, 1680, 1681,
+ 1682, 1683, 1684, 1441, 1442, 2974, 3331, 3332, 3588, 3589,
+ 1551, 1551, 1551, 1551, 1551, 1551, 1535, 1121, 4150, 3335,
+ 1515, 975, 4082, 975, 724, 1691, 1692, 1693, 1694, 1695,
+ 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1518,
+ 1519, 1520, 1521, 1526, 2997, 715, 4121, 975, 1515, 1532,
+ 3657, 4121, 1467, 3700, 3700, 1083, 1718, 165, 3331, 3332,
+ 716, 1224, 4149, 1547, 177, 1548, 1549, 1234, 1459, 94,
+ 2624, 3335, 1977, 1976, 1978, 1979, 1980, 1717, 4120, 1221,
+ 94, 94, 165, 4120, 1552, 1553, 3541, 1216, 2996, 177,
+ 2977, 1897, 1083, 2993, 1233, 1142, 1239, 1240, 1241, 1242,
+ 2008, 1865, 89, 1172, 2623, 185, 3044, 3485, 1228, 1135,
+ 1724, 674, 3385, 1171, 1753, 4160, 2548, 2854, 2856, 1042,
+ 1279, 1280, 3021, 1042, 4024, 3020, 1467, 1516, 1517, 1042,
+ 185, 4231, 3579, 3561, 2640, 2924, 2889, 2826, 2143, 1782,
+ 3031, 719, 1679, 1179, 1227, 1142, 1715, 3172, 166, 171,
+ 168, 174, 175, 176, 178, 180, 181, 182, 183, 1716,
+ 1477, 1247, 2884, 2494, 184, 186, 187, 188, 1142, 682,
+ 2444, 1515, 124, 166, 171, 168, 174, 175, 176, 178,
+ 180, 181, 182, 183, 2402, 3257, 1512, 1142, 2184, 184,
+ 186, 187, 188, 2651, 1260, 1495, 3265, 1058, 1141, 1274,
+ 1896, 2176, 4050, 1165, 2495, 2185, 119, 3620, 3553, 1754,
+ 1732, 2493, 94, 1232, 1736, 2023, 2568, 1734, 1735, 2077,
+ 1041, 104, 105, 2004, 1796, 3071, 2510, 1716, 1685, 1686,
+ 1687, 1688, 1689, 1690, 1477, 1995, 4196, 3749, 1722, 1507,
+ 1508, 1510, 1509, 1511, 1512, 2496, 1482, 3266, 1141, 1115,
+ 1211, 3595, 4188, 1145, 1135, 2492, 1481, 1482, 1147, 3594,
+ 2535, 107, 1148, 1146, 1906, 1483, 1142, 2176, 1905, 2660,
+ 1895, 1141, 3268, 1473, 2540, 3034, 1465, 1135, 1138, 1139,
+ 3033, 1099, 2540, 1149, 120, 1132, 1136, 1873, 1874, 1875,
+ 1141, 2855, 3263, 2651, 1730, 1142, 1135, 1138, 1139, 2545,
+ 1099, 1889, 2543, 1153, 1132, 1136, 1131, 1151, 1053, 1756,
+ 3580, 3034, 3279, 3280, 1215, 1733, 3033, 2544, 1719, 3264,
+ 1960, 4233, 1882, 2547, 2016, 2542, 1038, 4083, 1759, 4016,
+ 1040, 1911, 1731, 1912, 1985, 1914, 1916, 3921, 1901, 1920,
+ 1922, 1924, 1926, 1928, 2182, 1942, 3920, 1473, 3051, 2332,
+ 1282, 1983, 1261, 3270, 1950, 1951, 720, 1787, 1788, 2167,
+ 1956, 1957, 1900, 4229, 1856, 1217, 4230, 1231, 4228, 1141,
+ 2111, 1178, 3654, 2024, 3655, 1175, 4084, 1246, 4017, 1864,
+ 2400, 2401, 1899, 1899, 2112, 1513, 1514, 2110, 1248, 4239,
+ 1992, 3911, 1993, 1879, 3671, 1994, 3670, 1880, 1141, 1892,
+ 3602, 1878, 2332, 1145, 1135, 1984, 2329, 1972, 1147, 1737,
+ 3601, 1754, 1148, 1146, 1480, 2331, 1481, 1482, 725, 2181,
+ 1903, 3278, 1982, 3073, 1214, 3591, 1946, 2099, 2100, 2097,
+ 2098, 973, 3053, 3281, 977, 978, 979, 1483, 3308, 3297,
+ 1114, 2949, 1483, 2099, 2100, 2630, 2631, 1938, 2012, 1483,
+ 1941, 2948, 1943, 2947, 2096, 2500, 2697, 1986, 2159, 2148,
+ 2149, 2150, 2151, 2161, 2152, 2153, 2154, 2166, 2162, 2155,
+ 2156, 2163, 2164, 2165, 2157, 2158, 2160, 1483, 1971, 1970,
+ 190, 1969, 128, 1483, 1968, 4240, 1118, 1117, 1116, 1483,
+ 1958, 2978, 1505, 1506, 1507, 1508, 1510, 1509, 1511, 1512,
+ 1790, 2029, 1952, 129, 1949, 151, 3063, 3062, 3061, 2407,
+ 2408, 3055, 1948, 3059, 1947, 3054, 1918, 3052, 1729, 172,
+ 1282, 1282, 3057, 1483, 3360, 1446, 2025, 2026, 1483, 4201,
+ 1754, 3056, 2875, 4216, 2051, 1754, 87, 4189, 4045, 87,
+ 2030, 4199, 1754, 3552, 3585, 3402, 725, 2037, 2038, 2039,
+ 3058, 3060, 4044, 162, 3267, 4020, 2931, 2050, 725, 150,
+ 1489, 1490, 1491, 1492, 1493, 1494, 1488, 1485, 4019, 1472,
+ 1469, 1470, 1471, 1476, 1478, 1475, 2516, 1474, 2515, 169,
+ 4018, 3943, 170, 1754, 1767, 2699, 1480, 1468, 1481, 1482,
+ 2514, 1480, 2513, 1481, 1482, 1479, 1754, 2942, 1480, 101,
+ 1481, 1482, 4176, 1754, 1885, 1886, 161, 160, 189, 102,
+ 3916, 1483, 2138, 2138, 2136, 2136, 1754, 2139, 2875, 1754,
+ 4129, 1754, 1483, 2512, 3900, 2511, 1480, 42, 1481, 1482,
+ 42, 3899, 1480, 1768, 1481, 1482, 3748, 2101, 1480, 1717,
+ 1481, 1482, 1483, 1472, 1469, 1470, 1471, 1476, 1478, 1475,
+ 3746, 1474, 4038, 2027, 1479, 1754, 2875, 4114, 2875, 4093,
+ 2031, 1468, 2033, 2034, 2035, 2036, 2687, 3667, 1501, 2040,
+ 1754, 1497, 1480, 1498, 1481, 1482, 1714, 1480, 1713, 1481,
+ 1482, 2052, 2222, 1483, 2875, 4089, 2236, 1499, 1513, 1514,
+ 1496, 1712, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510,
+ 1509, 1511, 1512, 4127, 1754, 1483, 85, 3599, 1715, 85,
+ 155, 1887, 158, 2078, 1884, 1754, 156, 157, 4001, 1754,
+ 3948, 1716, 3584, 173, 2108, 3370, 1483, 2058, 2059, 2171,
+ 3638, 4035, 179, 1503, 1504, 1505, 1506, 1507, 1508, 1510,
+ 1509, 1511, 1512, 2114, 1483, 2116, 2117, 2118, 2119, 2120,
+ 2121, 2123, 2125, 2126, 2127, 2128, 2129, 2130, 1483, 2113,
+ 1480, 3367, 1481, 1482, 3300, 2649, 2319, 2320, 2321, 2322,
+ 2323, 1480, 2656, 1481, 1482, 2648, 2342, 110, 2142, 2115,
+ 2341, 3924, 1754, 2344, 2246, 2340, 2347, 2348, 109, 101,
+ 108, 1480, 3299, 1481, 1482, 103, 3271, 4125, 1754, 102,
+ 3275, 3025, 1526, 2186, 2187, 2188, 2189, 3274, 2875, 3912,
+ 3947, 2328, 2330, 3638, 1754, 2875, 3636, 2200, 3994, 1754,
+ 2177, 2365, 2221, 2540, 1754, 3559, 1754, 2781, 1754, 3904,
+ 2238, 1483, 1480, 2958, 1481, 1482, 3992, 1754, 3290, 3289,
+ 3903, 3276, 2945, 2920, 1483, 1711, 3272, 3287, 3288, 103,
+ 2655, 3273, 3285, 3286, 1480, 2647, 1481, 1482, 3285, 3284,
+ 1754, 164, 1483, 1754, 2899, 1754, 2623, 3006, 2423, 2339,
+ 1705, 1711, 2345, 2346, 1483, 1480, 1709, 1481, 1482, 2342,
+ 2613, 1707, 1483, 2412, 1708, 1706, 2605, 1710, 2340, 1860,
+ 2987, 104, 105, 1480, 2604, 1481, 1482, 2980, 2981, 3646,
+ 1501, 2562, 3043, 1771, 2561, 1483, 2453, 1480, 2397, 1481,
+ 1482, 2921, 104, 105, 1754, 2375, 1483, 2376, 1501, 2387,
+ 2054, 2923, 2020, 2107, 1502, 1503, 1504, 1505, 1506, 1507,
+ 1508, 1510, 1509, 1511, 1512, 1981, 3989, 1754, 2875, 2874,
+ 2701, 1104, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510,
+ 1509, 1511, 1512, 1973, 3971, 1754, 2984, 159, 1963, 2425,
+ 2963, 2462, 2463, 2464, 2465, 2457, 3574, 2458, 2459, 2460,
+ 2461, 2447, 1054, 2448, 1770, 1104, 2891, 2872, 1959, 2363,
+ 1480, 2467, 1481, 1482, 2469, 2470, 2471, 2472, 2429, 2388,
+ 2381, 103, 2382, 1480, 1955, 1481, 1482, 3526, 1754, 2452,
+ 2390, 1954, 2483, 2141, 1754, 95, 1953, 1769, 3521, 2451,
+ 109, 1480, 1272, 1481, 1482, 3556, 1501, 2529, 2639, 2410,
+ 1483, 2489, 2891, 1480, 1483, 1481, 1482, 1479, 2434, 2435,
+ 2433, 1480, 1088, 1481, 1482, 1089, 2450, 2920, 2449, 2541,
+ 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511,
+ 1512, 1860, 1859, 2899, 1480, 2870, 1481, 1482, 4077, 2526,
+ 1802, 1801, 2499, 2898, 4049, 1480, 152, 1481, 1482, 153,
+ 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511,
+ 1512, 3222, 2484, 3555, 1479, 2480, 2473, 2475, 2476, 2875,
+ 2899, 2498, 3552, 2534, 1483, 2503, 2537, 2502, 2538, 3552,
+ 165, 3252, 3505, 2540, 3287, 2921, 3195, 177, 3603, 2436,
+ 2781, 2623, 2554, 4190, 2684, 2623, 3519, 1754, 2484, 2533,
+ 2536, 2532, 1143, 2683, 2899, 1501, 2540, 1483, 2523, 2405,
+ 1758, 1144, 1483, 2366, 2141, 2079, 2063, 2555, 1483, 2558,
+ 2006, 1899, 1483, 2559, 2560, 1789, 1483, 1126, 185, 1502,
+ 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511, 1512,
+ 1483, 1755, 1757, 1125, 1483, 3604, 3605, 3606, 1483, 1480,
+ 4155, 1481, 1482, 1480, 2628, 1481, 1482, 4096, 3935, 1043,
+ 1761, 3901, 3311, 1042, 1042, 1042, 3516, 1754, 2565, 3761,
+ 3619, 166, 171, 168, 174, 175, 176, 178, 180, 181,
+ 182, 183, 110, 1536, 3616, 1536, 3597, 184, 186, 187,
+ 188, 3418, 1483, 109, 3417, 108, 1862, 2482, 3572, 3514,
+ 1754, 2643, 3358, 103, 3477, 1754, 3313, 3309, 2988, 1483,
+ 3475, 1754, 2598, 1483, 3471, 1754, 2479, 2955, 3468, 1754,
+ 2342, 1501, 1483, 1480, 2341, 1481, 1482, 1483, 2474, 2646,
+ 2468, 1483, 3466, 1754, 2466, 1483, 3464, 1754, 1988, 1483,
+ 3462, 1754, 95, 1894, 1483, 1502, 1503, 1504, 1505, 1506,
+ 1507, 1508, 1510, 1509, 1511, 1512, 1480, 1890, 1481, 1482,
+ 1483, 1480, 1858, 1481, 1482, 2615, 2666, 1480, 1754, 1481,
+ 1482, 1480, 121, 1481, 1482, 1480, 1216, 1481, 1482, 2954,
+ 2621, 3566, 3567, 2681, 3460, 1754, 3362, 3936, 1483, 1480,
+ 2497, 1481, 1482, 1480, 2629, 1481, 1482, 1480, 1934, 1481,
+ 1482, 3458, 1754, 2379, 4211, 3456, 1754, 2635, 2056, 4209,
+ 2632, 2633, 2634, 1483, 3454, 1754, 4053, 1483, 2108, 3452,
+ 1754, 1483, 4183, 3450, 1754, 679, 4057, 3448, 1754, 3976,
+ 1483, 3446, 1754, 2955, 1483, 3569, 2636, 4033, 2638, 3305,
+ 3304, 1480, 1483, 1481, 1482, 3303, 3222, 2641, 2967, 2642,
+ 1483, 2599, 3444, 1754, 1483, 1935, 1936, 1937, 1480, 1766,
+ 1481, 1482, 1480, 3244, 1481, 1482, 3571, 1483, 3245, 2659,
+ 3241, 1480, 2637, 1481, 1482, 2057, 1480, 3240, 1481, 1482,
+ 1480, 3908, 1481, 1482, 1480, 1056, 1481, 1482, 1480, 3242,
+ 1481, 1482, 3937, 1480, 3243, 1481, 1482, 1483, 2644, 742,
+ 2396, 2825, 2385, 1483, 3560, 3442, 1754, 3200, 3199, 1480,
+ 3621, 1481, 1482, 3440, 1754, 2607, 2608, 4015, 1483, 3739,
+ 2610, 3548, 3438, 1754, 3545, 2695, 3517, 2167, 1483, 2611,
+ 3741, 2813, 3544, 2857, 3424, 1754, 1057, 1480, 3209, 1481,
+ 1482, 2005, 3400, 1754, 1026, 3283, 2846, 1754, 3246, 2938,
+ 2908, 2909, 1042, 2138, 3726, 2136, 3725, 2860, 1483, 2844,
+ 1754, 2959, 1480, 2184, 1481, 1482, 1480, 2591, 1481, 1482,
+ 1480, 1483, 1481, 1482, 2590, 2896, 2897, 1182, 2858, 1480,
+ 2185, 1481, 1482, 1480, 2423, 1481, 1482, 1042, 2916, 2819,
+ 1754, 1480, 2589, 1481, 1482, 2796, 1754, 2588, 2861, 1480,
+ 2863, 1481, 1482, 1480, 2587, 1481, 1482, 1059, 1483, 3724,
+ 2788, 1754, 1483, 2895, 2586, 1060, 1480, 2107, 1481, 1482,
+ 2779, 1754, 1483, 2876, 2585, 1181, 2159, 2148, 2149, 2150,
+ 2151, 2161, 2152, 2153, 2154, 2166, 2162, 2155, 2156, 2163,
+ 2164, 2165, 2157, 2158, 2160, 3378, 1480, 2954, 1481, 1482,
+ 2777, 1754, 1480, 3037, 1481, 1482, 1483, 1722, 2848, 1445,
+ 2885, 2914, 1068, 2764, 1754, 2994, 42, 1480, 129, 1481,
+ 1482, 101, 3550, 1483, 103, 2913, 1067, 1480, 2915, 1481,
+ 1482, 102, 2868, 4225, 2941, 2943, 2971, 1483, 1716, 3212,
+ 3214, 1483, 2104, 2102, 2103, 2888, 2934, 1483, 3215, 2873,
+ 2762, 1754, 2992, 1483, 2760, 1754, 101, 1480, 2918, 1481,
+ 1482, 2602, 103, 4132, 2758, 1754, 102, 4034, 3931, 2922,
+ 1480, 3528, 1481, 1482, 2925, 1483, 110, 2407, 2408, 2489,
+ 2932, 3282, 2912, 2391, 1483, 2935, 2627, 109, 2957, 108,
+ 3003, 2179, 3198, 2960, 2961, 2062, 2180, 103, 2756, 1754,
+ 3197, 2061, 2946, 108, 4000, 3999, 3607, 1480, 1483, 1481,
+ 1482, 1480, 3979, 1481, 1482, 2754, 1754, 1483, 3747, 2956,
+ 3745, 1480, 3744, 1481, 1482, 1483, 3737, 3736, 3617, 2752,
+ 1754, 3549, 2964, 3483, 2242, 2968, 2969, 2970, 2965, 2750,
+ 1754, 110, 1483, 3547, 3000, 2748, 1754, 1483, 3314, 1882,
+ 2524, 1483, 109, 1930, 108, 1480, 1877, 1481, 1482, 3608,
+ 3609, 3610, 110, 2989, 2990, 1066, 109, 2746, 1754, 3538,
+ 4212, 2891, 1480, 109, 1481, 1482, 2744, 1754, 3710, 2999,
+ 3047, 3048, 4213, 4212, 4213, 3067, 1480, 2872, 1481, 1482,
+ 1480, 1483, 1481, 1482, 3101, 1483, 1480, 2685, 1481, 1482,
+ 2742, 1754, 1480, 1483, 1481, 1482, 1931, 1932, 1933, 2740,
+ 1754, 2377, 1483, 3026, 2325, 1783, 3064, 2738, 1754, 1483,
+ 3045, 1775, 114, 115, 1480, 4021, 1481, 1482, 3029, 1483,
+ 3583, 3, 97, 1480, 3479, 1481, 1482, 1, 2076, 2736,
+ 1754, 10, 1034, 3415, 2357, 3082, 3083, 3084, 3085, 3086,
+ 3087, 3088, 3089, 3090, 3091, 2074, 1448, 1480, 9, 1481,
+ 1482, 1755, 2364, 3001, 2075, 3099, 1480, 8, 1481, 1482,
+ 1447, 3587, 3065, 4144, 1480, 695, 1481, 1482, 2367, 1720,
+ 4184, 4140, 4141, 2734, 1754, 1974, 1964, 2732, 1754, 3649,
+ 2293, 1480, 1483, 1481, 1482, 3414, 1480, 3932, 1481, 1482,
+ 1480, 2389, 1481, 1482, 2730, 1754, 1483, 3317, 2530, 3615,
+ 1483, 2725, 1754, 2487, 1483, 1134, 154, 3141, 3049, 3143,
+ 2445, 3406, 3103, 2446, 1483, 3159, 3066, 3035, 4109, 118,
+ 3036, 1092, 117, 1137, 1483, 3154, 3155, 3156, 3157, 1245,
+ 1480, 2979, 1481, 1482, 1480, 2525, 1481, 1482, 1483, 3639,
+ 3046, 2939, 1480, 2454, 1481, 1482, 1808, 1806, 1807, 1805,
+ 1810, 1480, 3177, 1481, 1482, 1809, 4081, 3386, 1480, 2686,
+ 1481, 1482, 3166, 3168, 3484, 2067, 732, 2911, 1480, 726,
+ 1481, 1482, 192, 2423, 2721, 1754, 3092, 2328, 2330, 2328,
+ 2330, 1483, 1797, 1776, 2060, 1176, 685, 3291, 2719, 1754,
+ 2563, 691, 3404, 3139, 1533, 3229, 2842, 87, 2501, 2055,
+ 2423, 2423, 2423, 2423, 2423, 3196, 2841, 3149, 3150, 3151,
+ 3152, 3153, 2926, 1086, 1078, 3177, 2712, 1754, 2378, 2862,
+ 2423, 1085, 3909, 2423, 3230, 3542, 3167, 3208, 3169, 3210,
+ 2837, 1480, 1483, 1481, 1482, 2878, 3176, 1483, 3234, 3213,
+ 3206, 2016, 3251, 4014, 3738, 1480, 4094, 1481, 1482, 1480,
+ 3204, 1481, 1482, 1480, 2936, 1481, 1482, 1483, 3194, 3188,
+ 1772, 1483, 3504, 1480, 2425, 1481, 1482, 1483, 2658, 2174,
+ 3203, 1523, 3201, 1480, 2950, 1481, 1482, 757, 2422, 3216,
+ 3217, 3705, 2094, 755, 754, 752, 3334, 1480, 1045, 1481,
+ 1482, 2425, 2425, 2425, 2425, 2425, 3342, 3253, 3233, 1483,
+ 3254, 1046, 3202, 3236, 3237, 3235, 3239, 1483, 3238, 104,
+ 105, 2425, 3247, 1047, 2425, 1483, 2864, 3255, 3189, 3191,
+ 3193, 2892, 1487, 3261, 2710, 1754, 1486, 963, 2852, 2836,
+ 1480, 1784, 1481, 1482, 1483, 2903, 3292, 2901, 3294, 2900,
+ 2600, 2430, 3295, 3296, 3568, 3293, 1483, 3564, 4136, 2835,
+ 2424, 2420, 2871, 2834, 914, 3346, 913, 764, 756, 2833,
+ 746, 976, 912, 3343, 911, 3344, 3345, 3219, 3009, 2489,
+ 3336, 3315, 3359, 3011, 2937, 3347, 3355, 1464, 3353, 1739,
+ 1742, 1480, 2386, 1481, 1482, 1105, 1480, 3383, 1481, 1482,
+ 3225, 2832, 4040, 2626, 3412, 3225, 1483, 1738, 4047, 2823,
+ 3325, 3371, 3374, 3373, 3633, 3306, 1480, 2822, 1481, 1482,
+ 1480, 2985, 1481, 1482, 3381, 2517, 1480, 69, 1481, 1482,
+ 46, 4009, 3391, 4078, 906, 903, 2821, 3388, 3389, 3707,
+ 3390, 3708, 3709, 3392, 3162, 3394, 3163, 3396, 2820, 4060,
+ 4061, 3407, 3408, 3409, 3410, 3411, 902, 4062, 1480, 2231,
+ 1481, 1482, 1458, 1455, 4157, 2069, 1480, 96, 1481, 1482,
+ 36, 35, 34, 33, 1480, 32, 1481, 1482, 26, 25,
+ 24, 1536, 23, 22, 29, 1536, 19, 2645, 21, 20,
+ 3316, 2650, 18, 1480, 3328, 1481, 1482, 4179, 2817, 4224,
+ 123, 3529, 55, 3531, 52, 1480, 50, 1481, 1482, 131,
+ 130, 53, 49, 1219, 2653, 47, 2654, 3499, 31, 30,
+ 17, 16, 2662, 15, 3503, 14, 2664, 2665, 13, 12,
+ 11, 7, 6, 39, 38, 2671, 2672, 2673, 2674, 2675,
+ 2676, 2677, 2678, 2679, 2680, 37, 2682, 28, 27, 40,
+ 4, 3228, 2972, 2519, 3382, 1480, 0, 1481, 1482, 0,
+ 0, 0, 1717, 2423, 0, 0, 3534, 1483, 0, 2688,
+ 2689, 2690, 2691, 744, 2693, 2694, 3581, 2696, 3530, 3539,
+ 3532, 2698, 3546, 0, 0, 2703, 2704, 0, 2705, 3551,
+ 0, 2708, 2709, 2711, 2713, 2714, 2715, 2716, 2717, 2718,
+ 2720, 2722, 2723, 2724, 2726, 3337, 2728, 2729, 2731, 2733,
+ 2735, 2737, 2739, 2741, 2743, 2745, 2747, 2749, 2751, 2753,
+ 2755, 2757, 2759, 2761, 2763, 2765, 2766, 2767, 3573, 2769,
+ 3575, 2771, 3570, 2773, 2774, 3346, 2776, 2778, 2780, 0,
+ 3576, 0, 2783, 3343, 3536, 3506, 2787, 3508, 3509, 3510,
+ 2792, 2793, 2794, 2795, 2425, 3347, 3582, 1483, 0, 2812,
+ 3598, 0, 3600, 2806, 2807, 2808, 2809, 2810, 2811, 1483,
+ 0, 2815, 2816, 3592, 3593, 3376, 3377, 3563, 1483, 2818,
+ 0, 0, 1065, 1483, 2824, 1071, 1071, 0, 1483, 2827,
+ 2828, 2829, 2830, 2831, 0, 0, 3577, 3578, 0, 0,
+ 2838, 2839, 0, 2840, 0, 1483, 2843, 2845, 2389, 1483,
+ 2847, 0, 0, 3643, 3644, 0, 1480, 0, 1481, 1482,
+ 2859, 1483, 0, 0, 0, 3626, 0, 1483, 0, 3630,
+ 3631, 3632, 1483, 0, 3645, 0, 1483, 0, 0, 0,
+ 0, 1483, 0, 0, 2904, 2907, 2908, 2909, 2905, 2805,
+ 2906, 2910, 0, 0, 3566, 3567, 0, 0, 0, 0,
+ 1483, 2804, 0, 0, 0, 3661, 0, 1483, 0, 0,
+ 2803, 1483, 0, 0, 0, 2802, 0, 0, 0, 0,
+ 2801, 0, 0, 1483, 0, 0, 0, 0, 1483, 0,
+ 0, 0, 0, 3672, 0, 0, 0, 2800, 0, 1483,
+ 0, 2799, 0, 1483, 0, 0, 1480, 0, 1481, 1482,
+ 0, 0, 3694, 2798, 0, 0, 0, 0, 1480, 2797,
+ 1481, 1482, 1483, 0, 2791, 0, 0, 1480, 2790, 1481,
+ 1482, 0, 1480, 2789, 1481, 1482, 1483, 1480, 3723, 1481,
+ 1482, 3730, 0, 3732, 0, 3713, 0, 3714, 3715, 3716,
+ 1483, 0, 2786, 3703, 1480, 1483, 1481, 1482, 1480, 2785,
+ 1481, 1482, 0, 2784, 0, 0, 3229, 0, 3733, 87,
+ 1480, 3229, 1481, 1482, 0, 2782, 1480, 0, 1481, 1482,
+ 2775, 1480, 0, 1481, 1482, 1480, 1483, 1481, 1482, 0,
+ 1480, 2772, 1481, 1482, 0, 2770, 0, 1483, 0, 3666,
+ 2138, 1483, 2136, 0, 3763, 3734, 3743, 3755, 3742, 1480,
+ 3753, 1481, 1482, 0, 2768, 3750, 1480, 3752, 1481, 1482,
+ 1480, 0, 1481, 1482, 1483, 0, 0, 0, 2727, 0,
+ 3622, 3623, 1480, 0, 1481, 1482, 3915, 1480, 0, 1481,
+ 1482, 0, 2707, 3767, 0, 0, 0, 2706, 1480, 0,
+ 1481, 1482, 1480, 0, 1481, 1482, 0, 0, 0, 0,
+ 42, 2904, 2907, 2908, 2909, 2905, 0, 2906, 2910, 0,
+ 0, 1480, 0, 1481, 1482, 0, 3907, 3906, 2702, 0,
+ 0, 0, 0, 0, 3934, 1480, 3922, 1481, 1482, 2700,
+ 0, 3905, 0, 2692, 3926, 3927, 0, 0, 0, 1480,
+ 0, 1481, 1482, 0, 1480, 0, 1481, 1482, 0, 3973,
+ 3974, 3077, 3078, 3079, 3080, 3081, 2663, 3757, 3764, 3765,
+ 0, 0, 3731, 0, 0, 3917, 3918, 3919, 2138, 0,
+ 2136, 3096, 3977, 0, 0, 1480, 0, 1481, 1482, 0,
+ 0, 0, 0, 0, 0, 0, 1480, 0, 1481, 1482,
+ 1480, 0, 1481, 1482, 0, 0, 0, 0, 0, 3225,
+ 0, 0, 3980, 0, 4022, 3229, 3983, 0, 3759, 0,
+ 4013, 0, 0, 1480, 0, 1481, 1482, 0, 0, 1554,
+ 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564,
+ 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575,
+ 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585,
+ 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595,
+ 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
+ 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615,
+ 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625,
+ 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
+ 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
+ 1646, 1647, 1648, 1649, 1650, 1651, 1653, 1654, 1655, 1656,
+ 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666,
+ 1667, 1668, 1674, 1675, 1676, 1677, 1691, 1692, 1693, 1694,
+ 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
+ 3978, 4023, 3228, 4007, 3997, 4006, 1483, 3228, 1744, 0,
+ 0, 4003, 0, 4005, 4041, 0, 0, 0, 0, 0,
+ 0, 0, 1752, 0, 0, 1745, 3910, 0, 0, 0,
+ 0, 3231, 87, 0, 0, 0, 4026, 0, 1717, 1483,
+ 0, 0, 0, 4025, 0, 0, 1744, 0, 0, 3249,
+ 2383, 2384, 1751, 1749, 1750, 1746, 0, 1747, 0, 4030,
+ 1752, 4043, 0, 1745, 0, 0, 0, 4046, 0, 0,
+ 4048, 0, 3914, 0, 0, 0, 0, 0, 0, 0,
+ 1748, 0, 0, 0, 0, 0, 0, 0, 1740, 1741,
+ 1751, 1749, 1750, 1746, 4055, 1747, 0, 0, 2657, 0,
+ 0, 0, 4065, 0, 0, 0, 0, 0, 0, 1484,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1748, 0,
+ 0, 0, 0, 42, 0, 0, 4066, 0, 0, 4067,
+ 4091, 2652, 0, 0, 0, 87, 0, 0, 0, 0,
+ 1542, 0, 0, 0, 0, 0, 0, 0, 4076, 0,
+ 0, 0, 0, 0, 0, 1480, 0, 1481, 1482, 0,
+ 0, 4085, 0, 0, 1717, 0, 0, 0, 4027, 4097,
+ 0, 0, 0, 4095, 0, 3934, 4111, 3380, 4100, 4108,
+ 4105, 4102, 4101, 4099, 4104, 4103, 0, 0, 1480, 0,
+ 1481, 1482, 0, 0, 0, 0, 0, 0, 0, 3397,
+ 3398, 3228, 3399, 3401, 3403, 4130, 0, 0, 4153, 0,
+ 0, 0, 0, 4143, 0, 4135, 0, 4122, 4148, 0,
+ 0, 0, 0, 0, 4161, 0, 42, 0, 4163, 0,
+ 3416, 0, 0, 4174, 0, 3419, 0, 3421, 3422, 3423,
+ 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434,
+ 3435, 3436, 3437, 3439, 3441, 3443, 3445, 3447, 3449, 3451,
+ 3453, 3455, 3457, 3459, 3461, 3463, 3465, 3467, 3469, 3470,
+ 3472, 3473, 3474, 3476, 4122, 4194, 3478, 2016, 3480, 3481,
+ 3482, 4193, 4204, 3486, 3487, 3488, 3489, 3490, 3491, 3492,
+ 3493, 3494, 3495, 3496, 4210, 2138, 4208, 2136, 4197, 4207,
+ 4206, 4203, 3502, 4178, 4173, 4218, 3507, 4092, 4032, 4087,
+ 3511, 3512, 0, 3513, 3515, 4226, 3518, 3520, 3225, 3522,
+ 3523, 3524, 3525, 4234, 4232, 0, 0, 0, 0, 3533,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4051, 4243, 4244, 3974, 4242, 0, 0, 0,
+ 0, 4122, 0, 2138, 0, 2136, 0, 4241, 0, 0,
+ 4039, 0, 0, 0, 3557, 3558, 0, 0, 3562, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4169, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4086,
+ 1774, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 86, 44, 45, 88, 0, 0, 1863, 0,
+ 0, 0, 0, 3637, 0, 0, 0, 0, 0, 0,
+ 0, 92, 0, 0, 0, 48, 76, 77, 0, 74,
+ 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 75, 0, 0, 0, 0, 0, 1723, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3656, 0,
+ 0, 3660, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 95, 0, 1024, 0, 0,
+ 2332, 0, 0, 1025, 0, 3673, 0, 0, 0, 0,
+ 0, 0, 4191, 2137, 0, 0, 677, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1029, 0, 0, 0,
+ 0, 0, 0, 0, 0, 83, 2021, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3696,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0,
+ 0, 0, 3704, 0, 0, 0, 0, 0, 0, 3711,
+ 0, 0, 982, 983, 984, 985, 986, 987, 988, 989,
+ 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
+ 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
+ 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
+ 1020, 1021, 1022, 1023, 0, 0, 0, 0, 0, 0,
+ 51, 54, 57, 56, 59, 0, 73, 0, 0, 82,
+ 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 61, 91, 90, 0, 0, 71, 72,
+ 58, 0, 0, 0, 0, 0, 80, 81, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3923, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3930, 0, 0,
+ 63, 64, 0, 65, 66, 67, 68, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3940, 3941, 3942,
+ 0, 3944, 0, 3945, 3946, 0, 0, 0, 0, 3949,
+ 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959,
+ 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969,
+ 3970, 0, 3972, 3975, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2089, 2090, 2091, 2092, 60, 3984, 3985,
+ 3986, 3987, 3988, 3990, 3991, 3993, 3995, 3996, 3998, 2105,
+ 0, 0, 4002, 0, 0, 0, 4004, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2144, 2145, 0, 0, 0, 0,
+ 2168, 4031, 0, 2172, 2173, 0, 0, 0, 2178, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
+ 2197, 2198, 2199, 0, 2201, 0, 0, 89, 2223, 2224,
+ 2225, 2226, 2227, 2228, 2229, 2230, 2232, 0, 2237, 0,
+ 2239, 2240, 2241, 0, 2243, 2244, 2245, 0, 2247, 2248,
+ 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
+ 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
+ 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
+ 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
+ 2289, 2290, 2291, 2292, 2296, 2297, 2298, 2299, 2300, 2301,
+ 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311,
+ 2312, 2313, 2314, 2315, 2316, 2317, 2318, 0, 0, 0,
+ 0, 0, 2324, 0, 2326, 0, 2333, 2334, 2335, 2336,
+ 2337, 2338, 0, 0, 0, 0, 0, 94, 0, 0,
+ 0, 0, 0, 0, 0, 2349, 2350, 2351, 2352, 2353,
+ 2354, 2355, 2356, 0, 2358, 2359, 2360, 2361, 2362, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 190, 0, 0, 1071, 4177, 0, 0, 0, 4056, 0,
+ 0, 0, 0, 1826, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 129, 0, 151, 0, 0, 0, 0,
+ 0, 0, 4071, 0, 2403, 2404, 0, 0, 4074, 172,
+ 4075, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
+ 2442, 0, 0, 4090, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 162, 0, 190, 0, 0, 1826, 150,
+ 0, 0, 1220, 0, 1226, 0, 1881, 0, 0, 4116,
+ 4117, 0, 0, 0, 959, 0, 0, 0, 129, 169,
+ 151, 0, 170, 4124, 4126, 4128, 0, 0, 0, 0,
+ 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
+ 0, 4134, 2485, 0, 138, 139, 161, 160, 189, 0,
+ 0, 0, 0, 4156, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1454, 0, 162, 0,
+ 195, 0, 0, 195, 150, 0, 0, 730, 0, 0,
+ 0, 0, 736, 0, 0, 0, 0, 0, 0, 0,
+ 1813, 4175, 0, 195, 169, 0, 0, 170, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1885,
+ 1886, 161, 160, 189, 0, 4198, 4200, 4202, 0, 0,
+ 0, 0, 0, 0, 736, 195, 736, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 155, 136, 158, 143, 135, 1813, 156, 157, 4223, 0,
+ 0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
+ 0, 0, 179, 144, 1827, 0, 4235, 4236, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 147, 145, 140,
+ 141, 142, 146, 0, 0, 0, 0, 0, 0, 137,
+ 0, 0, 0, 0, 0, 0, 0, 0, 148, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 155, 1887, 158, 0, 1884,
+ 0, 156, 157, 0, 0, 0, 0, 0, 173, 1827,
+ 1840, 1843, 1844, 1845, 1846, 1847, 1848, 179, 1849, 1850,
+ 1852, 1853, 1851, 1854, 1855, 1828, 1829, 1830, 1831, 1811,
+ 1812, 1841, 0, 1814, 0, 1815, 1816, 1817, 1818, 1819,
+ 1820, 1821, 1822, 1823, 0, 0, 1824, 1832, 1833, 1834,
+ 1835, 0, 1836, 1837, 1838, 1839, 0, 0, 1825, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 164, 0, 0, 0, 1840, 1843, 1844, 1845, 1846,
+ 1847, 1848, 0, 1849, 1850, 1852, 1853, 1851, 1854, 1855,
+ 1828, 1829, 1830, 1831, 1811, 1812, 1841, 0, 1814, 0,
+ 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 0,
+ 0, 1824, 1832, 1833, 1834, 1835, 0, 1836, 1837, 1838,
+ 1839, 0, 0, 1825, 0, 0, 0, 0, 0, 0,
+ 2661, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2667, 2668, 2669, 2670, 0, 0, 164, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 159, 0, 0,
+ 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1542, 0, 0, 0, 0,
+ 0, 1803, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 159, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1842, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1944, 0, 152, 0, 0, 153,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989,
+ 165, 0, 0, 0, 0, 0, 0, 177, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2017, 0, 1842, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2032,
+ 0, 152, 0, 0, 153, 0, 0, 0, 185, 1774,
+ 2043, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
+ 0, 0, 177, 0, 0, 0, 0, 0, 0, 0,
+ 0, 166, 171, 168, 174, 175, 176, 178, 180, 181,
+ 182, 183, 0, 0, 0, 0, 0, 184, 186, 187,
+ 188, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 185, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 166, 171, 168, 174,
+ 175, 176, 178, 180, 181, 182, 183, 0, 0, 0,
+ 0, 0, 184, 186, 187, 188, 0, 0, 736, 0,
+ 736, 736, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 736, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2082, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3042, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3068,
+ 3069, 3070, 0, 0, 3072, 0, 0, 3074, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3093, 3094, 3095,
+ 0, 0, 0, 0, 0, 0, 3100, 0, 0, 0,
+ 0, 3102, 0, 0, 3104, 3105, 3106, 0, 0, 0,
+ 3107, 3108, 0, 0, 3109, 0, 3110, 0, 0, 0,
+ 0, 0, 0, 3111, 0, 3112, 0, 0, 0, 3113,
+ 0, 3114, 0, 0, 3115, 0, 3116, 0, 3117, 0,
+ 3118, 0, 3119, 0, 3120, 0, 3121, 0, 3122, 0,
+ 3123, 0, 3124, 0, 3125, 0, 3126, 0, 3127, 0,
+ 3128, 0, 3129, 0, 3130, 0, 3131, 0, 3132, 0,
+ 0, 0, 3133, 0, 3134, 0, 3135, 0, 0, 3136,
+ 0, 3137, 0, 3138, 0, 2296, 3140, 0, 0, 3142,
+ 0, 0, 3144, 3145, 3146, 3147, 0, 0, 0, 0,
+ 3148, 2296, 2296, 2296, 2296, 2296, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3158, 0, 0, 0,
+ 0, 0, 0, 0, 3171, 0, 0, 3175, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3178, 3179, 3180, 3181,
+ 3182, 3183, 0, 0, 0, 3184, 3185, 0, 3186, 0,
+ 3187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 195, 0, 0, 0, 736, 736, 0, 0,
+ 0, 0, 0, 0, 1071, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 195, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3220, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 736, 0, 0, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3250, 736, 0, 2409, 0, 0, 0, 0, 195, 0,
+ 0, 2413, 736, 2416, 0, 0, 2082, 0, 0, 0,
+ 0, 0, 736, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 736, 0, 736, 0, 0,
+ 0, 0, 0, 0, 0, 736, 0, 0, 1528, 736,
+ 3312, 0, 736, 736, 736, 736, 0, 736, 0, 736,
+ 736, 0, 736, 736, 736, 736, 736, 736, 0, 0,
+ 0, 0, 0, 0, 0, 1528, 736, 736, 1528, 736,
+ 1528, 195, 736, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 0, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 736, 0, 0,
+ 736, 0, 195, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3405, 0, 195,
+ 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 195, 195, 195, 195, 195,
+ 195, 195, 195, 195, 736, 3420, 0, 0, 0, 1024,
+ 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2082, 0, 0, 0,
+ 0, 0, 0, 2575, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2596, 2597, 0, 0, 2601, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2606, 0, 0, 0, 0, 0, 0, 2609, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2612, 982, 983, 984, 985, 986, 987,
988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
- 1018, 1019, 1020, 1021, 1022, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 164, 0, 0, 0, 3347, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1785, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1802, 2659, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2665, 2666, 2667, 2668,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3348, 3349, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 159, 0,
- 0, 1541, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1943, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1988, 0, 0, 0, 0, 0, 0,
- 0, 928, 0, 0, 0, 0, 0, 932, 0, 0,
- 2016, 929, 930, 0, 0, 0, 931, 933, 0, 0,
- 0, 0, 0, 0, 0, 0, 2027, 0, 0, 0,
- 0, 0, 0, 2031, 0, 0, 0, 152, 0, 0,
- 153, 0, 0, 0, 2042, 2043, 2044, 2045, 2046, 2047,
- 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 165, 0, 0, 0, 0, 0, 0, 177, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1880, 0, 0, 0,
- 0, 0, 195, 0, 195, 0, 0, 0, 129, 0,
- 151, 0, 166, 171, 168, 174, 175, 176, 178, 180,
- 181, 182, 183, 0, 172, 0, 0, 0, 184, 186,
- 187, 188, 1023, 0, 0, 2331, 0, 0, 1024, 0,
- 0, 735, 0, 735, 735, 0, 0, 0, 2136, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
- 0, 0, 0, 0, 150, 735, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 169, 0, 0, 170, 0, 0,
- 0, 0, 0, 0, 1527, 0, 0, 2081, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1884,
- 1885, 161, 160, 189, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 981, 982, 983,
- 984, 985, 986, 987, 988, 989, 990, 991, 992, 993,
- 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003,
- 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
- 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 0,
- 0, 0, 0, 0, 0, 0, 0, 3039, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3065, 3066, 3067, 0, 0, 3069,
- 0, 0, 3071, 0, 0, 155, 1886, 158, 0, 1883,
- 0, 156, 157, 0, 0, 0, 0, 0, 173, 0,
- 0, 0, 3090, 3091, 3092, 0, 0, 179, 0, 0,
- 0, 3097, 0, 0, 0, 0, 3099, 0, 0, 3101,
- 3102, 3103, 0, 0, 0, 3104, 3105, 0, 0, 3106,
- 0, 3107, 0, 0, 0, 0, 0, 0, 3108, 0,
- 3109, 0, 0, 0, 3110, 0, 3111, 0, 0, 3112,
- 0, 3113, 0, 3114, 0, 3115, 0, 3116, 0, 3117,
- 0, 3118, 0, 3119, 0, 3120, 0, 3121, 0, 3122,
- 0, 3123, 0, 3124, 0, 3125, 0, 3126, 0, 3127,
- 0, 3128, 0, 3129, 0, 0, 0, 3130, 0, 3131,
- 0, 3132, 0, 0, 3133, 0, 3134, 0, 3135, 0,
- 2295, 3137, 0, 0, 3139, 0, 0, 3141, 3142, 3143,
- 3144, 0, 0, 0, 0, 3145, 2295, 2295, 2295, 2295,
- 2295, 0, 0, 0, 0, 195, 0, 0, 0, 735,
- 735, 3155, 0, 0, 0, 164, 0, 0, 0, 3168,
- 0, 0, 3172, 0, 0, 0, 0, 0, 195, 0,
- 0, 3175, 3176, 3177, 3178, 3179, 3180, 0, 0, 0,
- 3181, 3182, 0, 3183, 0, 3184, 0, 0, 0, 735,
- 0, 0, 195, 0, 0, 0, 0, 2408, 0, 0,
- 0, 0, 0, 0, 735, 2412, 0, 2415, 0, 1070,
- 2081, 195, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 3217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 735, 0,
- 735, 159, 0, 0, 0, 3247, 0, 0, 735, 0,
- 0, 1527, 735, 0, 0, 735, 735, 735, 735, 0,
- 735, 0, 735, 735, 0, 735, 735, 735, 735, 735,
- 735, 0, 0, 0, 0, 0, 0, 0, 1527, 735,
- 735, 1527, 735, 1527, 195, 735, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 3309, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 735, 0, 0, 735, 0, 195, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 152, 0, 195, 153, 0, 0, 0, 0, 0, 195,
- 0, 0, 0, 0, 0, 0, 0, 0, 195, 195,
- 195, 195, 195, 195, 195, 195, 195, 735, 0, 0,
- 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,
- 0, 177, 0, 0, 0, 0, 0, 0, 0, 0,
- 2081, 3402, 0, 0, 1023, 0, 0, 2574, 0, 0,
- 1024, 0, 0, 0, 0, 0, 0, 0, 2594, 2595,
- 2136, 0, 2599, 0, 0, 0, 0, 0, 0, 3417,
- 0, 0, 185, 0, 2604, 0, 0, 0, 0, 0,
- 0, 2607, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2610, 0, 0,
- 0, 0, 0, 0, 0, 166, 171, 168, 174, 175,
- 176, 178, 180, 181, 182, 183, 0, 0, 0, 0,
- 0, 184, 186, 187, 188, 0, 0, 0, 0, 981,
- 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
- 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
- 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
- 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 0, 0, 0, 0, 0, 0, 735, 735, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 735, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
+ 1018, 1019, 1020, 1021, 1022, 1023, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 736, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 736,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3618, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1527, 0, 0, 0, 3615, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1527, 0, 957, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3642, 0, 0, 0,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3662, 0, 3663, 0, 3664, 0,
+ 3665, 0, 0, 0, 0, 0, 0, 0, 3668, 3669,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0,
+ 0, 958, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3675, 0, 3676, 0, 3677, 0, 3678, 0,
+ 3679, 0, 3680, 0, 3681, 0, 3682, 0, 3683, 0,
+ 3684, 0, 3685, 0, 3686, 0, 3687, 0, 3688, 0,
+ 3689, 0, 3690, 0, 0, 3691, 0, 0, 0, 3692,
+ 0, 3693, 0, 0, 0, 0, 0, 3695, 0, 0,
+ 0, 0, 0, 713, 0, 0, 0, 0, 0, 735,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3712,
+ 0, 0, 0, 0, 2343, 0, 0, 0, 3717, 0,
+ 3718, 3719, 0, 3720, 0, 3721, 0, 0, 0, 0,
+ 3722, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 735, 0, 0, 0, 3751, 195, 0,
+ 0, 0, 0, 736, 0, 0, 0, 0, 0, 0,
+ 3760, 0, 0, 3762, 0, 0, 2917, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3766, 0, 0, 0, 0,
+ 0, 0, 0, 195, 0, 0, 736, 0, 0, 0,
+ 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0,
+ 195, 0, 0, 0, 736, 0, 0, 2343, 195, 0,
+ 195, 0, 195, 195, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 736, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 712, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 0, 0, 0, 3659, 0,
- 3660, 0, 3661, 0, 3662, 0, 0, 0, 0, 0,
- 0, 0, 3665, 3666, 0, 0, 0, 0, 0, 0,
- 0, 0, 3671, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3672, 0, 3673, 0,
- 3674, 0, 3675, 734, 3676, 734, 3677, 0, 3678, 0,
- 3679, 0, 3680, 0, 3681, 0, 3682, 2342, 3683, 0,
- 3684, 0, 3685, 0, 3686, 0, 3687, 0, 0, 3688,
- 0, 0, 0, 3689, 0, 3690, 0, 0, 0, 0,
- 0, 3692, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2966, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 195, 0, 3709, 0, 0, 735, 0, 0, 0,
- 2915, 0, 3714, 0, 3715, 3716, 0, 3717, 0, 3718,
- 0, 0, 0, 0, 3719, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 195, 0, 0, 735,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3748, 0, 195, 0, 0, 0, 735, 0, 0,
- 2342, 195, 0, 195, 3757, 195, 195, 3759, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3763,
- 735, 0, 0, 0, 0, 2964, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 736, 0, 0, 0, 0,
+ 0, 0, 736, 736, 736, 195, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3014, 3015, 3016,
+ 3017, 3018, 3019, 736, 0, 0, 0, 0, 0, 736,
+ 736, 0, 0, 736, 0, 736, 0, 0, 0, 0,
+ 4012, 736, 0, 0, 0, 0, 2082, 3030, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 735, 0,
- 0, 0, 0, 0, 0, 735, 735, 735, 195, 0,
- 0, 3012, 3013, 3014, 3015, 3016, 3017, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
- 0, 0, 735, 735, 0, 0, 735, 0, 735, 2081,
- 3027, 0, 0, 0, 735, 0, 0, 0, 0, 0,
+ 0, 3038, 0, 0, 0, 0, 736, 0, 0, 0,
+ 0, 736, 0, 0, 0, 736, 736, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3035, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
- 0, 0, 0, 0, 735, 0, 0, 0, 735, 735,
- 0, 0, 0, 0, 4009, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 195, 0, 0, 195, 0,
195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 195, 0, 0, 0, 914, 0, 0, 195, 0, 0,
+ 0, 195, 195, 0, 0, 195, 0, 195, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 195, 0, 0,
+ 0, 0, 0, 0, 195, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
- 195, 0, 0, 0, 0, 735, 0, 0, 0, 0,
+ 195, 0, 0, 0, 0, 0, 0, 195, 0, 0,
+ 0, 0, 736, 95, 0, 0, 1024, 0, 0, 0,
+ 0, 964, 1025, 977, 978, 979, 965, 0, 0, 966,
+ 967, 0, 968, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 973, 0,
+ 980, 981, 0, 0, 0, 0, 0, 4054, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1528, 0, 2343, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3348,
+ 3349, 0, 0, 4068, 0, 0, 4069, 0, 4070, 0,
+ 0, 982, 983, 984, 985, 986, 987, 988, 989, 990,
+ 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
+ 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
+ 1021, 1022, 1023, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 733, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3350, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4154, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3302, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170,
+ 0, 4171, 0, 4172, 0, 0, 0, 0, 0, 0,
+ 0, 3340, 0, 0, 0, 735, 1439, 735, 735, 0,
+ 0, 0, 0, 0, 0, 3354, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3351, 3352, 0, 0, 735,
+ 0, 0, 0, 0, 0, 0, 3372, 0, 0, 3375,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1527,
- 0, 2342, 0, 0, 1095, 0, 1102, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0,
+ 0, 195, 0, 4221, 0, 4222, 0, 0, 0, 195,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 929, 0, 0, 0, 0, 0, 933, 0, 195, 0,
+ 930, 931, 0, 195, 0, 932, 934, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4065, 0, 0,
- 4066, 0, 4067, 0, 0, 0, 0, 0, 0, 0,
+ 915, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 1438, 734, 734,
- 0, 0, 0, 0, 0, 0, 0, 0, 3299, 0,
+ 0, 0, 736, 0, 0, 0, 0, 0, 195, 0,
+ 0, 0, 0, 0, 3535, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 734, 736,
+ 0, 0, 0, 0, 0, 0, 736, 0, 0, 0,
+ 736, 736, 0, 0, 0, 736, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3337, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3351, 1526,
- 0, 0, 0, 0, 4151, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3369, 0,
- 0, 3372, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4167, 0, 4168, 0, 4169, 0, 0,
+ 0, 1528, 736, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 195, 195, 195, 195, 195,
+ 1096, 0, 1103, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3596,
+ 0, 0, 0, 195, 195, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3611,
+ 0, 3612, 3613, 3614, 0, 0, 0, 0, 195, 0,
+ 0, 0, 0, 735, 735, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 0, 0, 0, 0, 0,
- 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 735, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
+ 0, 0, 0, 0, 736, 0, 0, 0, 0, 735,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4218, 0, 4219,
- 0, 195, 0, 0, 0, 0, 195, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 735, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 0, 1527, 735, 0, 0, 735,
+ 735, 735, 735, 0, 735, 0, 735, 735, 0, 735,
+ 735, 735, 735, 735, 735, 0, 0, 0, 0, 0,
+ 0, 0, 1527, 735, 735, 1527, 735, 1527, 0, 735,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 736,
+ 0, 0, 0, 0, 735, 0, 0, 735, 0, 0,
+ 0, 736, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 3532, 0, 0, 0,
- 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 736, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 195, 0, 0,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 0, 0, 0, 1528, 0,
+ 0, 736, 736, 1528, 195, 195, 195, 195, 195, 0,
+ 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
+ 0, 0, 195, 0, 195, 0, 0, 195, 195, 195,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 735, 0, 0, 0, 0, 0, 0, 735,
- 0, 0, 0, 735, 735, 0, 0, 0, 735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1527, 735, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 195, 195, 195,
- 195, 195, 195, 0, 734, 734, 0, 0, 0, 0,
- 0, 3593, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 195, 195, 0, 0, 0,
- 0, 3608, 0, 3609, 3610, 3611, 0, 0, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
- 195, 0, 0, 0, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 735, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 736, 0, 0, 1528, 0,
+ 0, 0, 0, 736, 0, 0, 0, 0, 195, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 734, 0, 734, 0, 0, 0, 0,
- 0, 0, 0, 734, 0, 0, 1526, 734, 0, 0,
- 734, 734, 734, 734, 0, 734, 735, 734, 734, 0,
- 734, 734, 734, 734, 734, 734, 0, 0, 0, 0,
- 0, 0, 0, 1526, 734, 734, 1526, 734, 1526, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1283, 0, 1283,
- 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
- 0, 1452, 0, 0, 0, 734, 0, 0, 734, 0,
+ 0, 0, 195, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 195, 0, 0, 195, 0, 0, 0,
+ 0, 735, 735, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 735, 734, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1527, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2146, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1527, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 736, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1284, 0, 1284, 1284, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1453, 0,
+ 0, 195, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 916, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4052, 0, 0, 195, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 195, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 193, 0, 0, 678, 0, 0, 195, 0, 195, 195,
+ 195, 0, 0, 0, 0, 0, 0, 0, 736, 736,
+ 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
+ 735, 0, 0, 0, 0, 0, 0, 0, 0, 1052,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1072, 1072, 0, 0,
+ 0, 0, 0, 735, 0, 678, 0, 736, 736, 736,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 735, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
- 0, 0, 735, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
- 1527, 0, 0, 735, 735, 1527, 195, 195, 195, 195,
- 195, 0, 0, 0, 0, 0, 0, 0, 195, 0,
- 0, 0, 0, 0, 195, 0, 195, 0, 0, 195,
- 195, 195, 915, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 195, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 193, 0,
- 1527, 677, 734, 734, 0, 735, 0, 0, 0, 0,
- 195, 0, 0, 0, 0, 0, 0, 734, 0, 0,
- 0, 677, 0, 0, 195, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1051, 0, 0,
- 0, 0, 0, 0, 195, 0, 0, 195, 0, 0,
- 0, 0, 0, 0, 1071, 1071, 0, 0, 0, 0,
- 0, 0, 0, 677, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1725, 1726, 0, 734, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1526, 0,
- 0, 0, 0, 0, 0, 0, 0, 2145, 0, 0,
- 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0,
- 0, 0, 0, 0, 0, 1779, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1856, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1095, 735, 1892, 0, 0, 0,
- 0, 0, 0, 0, 1901, 0, 0, 0, 1903, 0,
- 0, 1906, 1907, 1909, 1909, 0, 1909, 0, 1909, 1909,
- 0, 1918, 1909, 1909, 1909, 1909, 1909, 0, 0, 0,
- 0, 0, 195, 0, 0, 1938, 1939, 0, 1095, 0,
- 0, 1944, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1986, 0, 0, 4049, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2008, 0, 195, 2012,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 0, 0, 195, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1283, 0, 0, 0, 195, 0, 195,
- 195, 195, 0, 0, 734, 0, 0, 0, 0, 735,
- 735, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 734, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 735, 735,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 0, 0, 0, 0, 0, 735,
735, 735, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 735, 0, 1726, 1727, 0, 0, 735, 735, 0, 0,
+ 735, 0, 735, 0, 0, 0, 0, 0, 735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 734, 0, 0, 0, 0, 0, 0,
- 734, 734, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1780, 0, 736, 0, 736, 0, 195, 0,
+ 0, 0, 0, 735, 0, 0, 0, 1798, 735, 0,
+ 0, 0, 735, 735, 0, 0, 0, 1528, 1857, 0,
+ 0, 195, 0, 0, 736, 0, 736, 0, 1866, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 0, 0, 734, 734, 0,
- 0, 734, 0, 734, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1283, 1283, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 734,
- 0, 0, 0, 734, 734, 0, 0, 0, 0, 0,
+ 0, 1096, 0, 1893, 0, 0, 0, 0, 0, 0,
+ 0, 1902, 0, 0, 0, 1904, 0, 0, 1907, 1908,
+ 1910, 1910, 0, 1910, 0, 1910, 1910, 0, 1919, 1910,
+ 1910, 1910, 1910, 1910, 736, 0, 0, 0, 0, 0,
+ 0, 0, 1939, 1940, 0, 1096, 0, 195, 1945, 0,
+ 736, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 736, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
+ 1987, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2009, 0, 0, 2013, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 735, 0, 735, 0, 195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2131,
- 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0,
- 0, 0, 195, 0, 0, 735, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 736, 0,
+ 1284, 0, 0, 0, 0, 736, 0, 736, 0, 0,
+ 0, 0, 0, 1527, 0, 735, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 736, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 677, 0, 677, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 735, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 195, 0,
- 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 735, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1526, 0, 734, 0, 1528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1283, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 735,
- 0, 0, 0, 0, 0, 0, 735, 0, 735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2379, 0, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2392, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1779, 0, 0, 1283, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1284, 1284, 0, 0, 0, 0, 736, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2070, 0, 0, 0, 678,
+ 0, 678, 195, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 736, 195, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0,
- 0, 2505, 2506, 2507, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2132, 0, 0, 0,
+ 0, 0, 0, 678, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1095, 195, 0, 0, 0, 0, 1102, 1901,
- 0, 0, 1901, 0, 1901, 0, 0, 0, 734, 0,
- 2538, 735, 195, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 677,
+ 0, 735, 0, 0, 0, 0, 736, 0, 0, 0,
+ 0, 1529, 0, 0, 0, 0, 736, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1528, 736, 0, 736,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0,
- 2131, 0, 1051, 0, 2131, 2131, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2928, 0, 0,
- 0, 0, 0, 0, 0, 0, 677, 735, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 1527, 735, 0,
+ 0, 0, 0, 0, 0, 0, 2930, 0, 0, 0,
+ 0, 0, 0, 0, 736, 2343, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 195, 736, 0, 0, 735,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 735, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 736, 735, 735, 0,
+ 1284, 0, 735, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1527, 735,
+ 736, 0, 0, 0, 0, 195, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 736,
+ 0, 736, 0, 0, 0, 0, 0, 0, 0, 2380,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1780, 0, 0, 1284, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0,
+ 0, 0, 678, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1052, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 678,
+ 0, 1103, 0, 0, 0, 0, 0, 0, 2506, 2507,
+ 2508, 0, 0, 0, 0, 0, 0, 0, 678, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1096,
+ 0, 0, 0, 0, 0, 1103, 1902, 0, 0, 1902,
+ 0, 1902, 0, 0, 0, 0, 0, 2539, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1096, 0, 0, 0, 0, 2132, 0, 0,
+ 0, 2132, 2132, 0, 0, 1529, 735, 0, 1529, 0,
+ 1529, 678, 0, 0, 0, 0, 0, 0, 735, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 678, 0, 0, 735,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2015, 678, 0, 0, 0, 735, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 678,
+ 0, 735, 0, 0, 0, 1527, 678, 0, 735, 735,
+ 1527, 0, 0, 0, 0, 2041, 2042, 678, 678, 678,
+ 678, 678, 678, 678, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2617, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3298, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 735, 0, 0, 1527, 0, 0, 0, 0,
735, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1284, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 735, 2342, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1528, 0, 734, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 734, 734,
- 0, 0, 0, 734, 0, 0, 195, 735, 0, 0,
- 0, 2615, 1528, 0, 0, 1528, 0, 1528, 677, 1526,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0,
- 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
- 0, 0, 0, 677, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014,
- 677, 735, 0, 0, 0, 0, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 677, 1283, 0, 0,
- 735, 0, 735, 677, 0, 0, 0, 0, 0, 0,
- 0, 0, 2040, 2041, 677, 677, 677, 677, 677, 677,
- 677, 734, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3379, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 678, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2865, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 734, 0,
+ 2880, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3586, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 734,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2863,
- 0, 0, 0, 0, 0, 0, 0, 734, 0, 0,
- 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0,
- 0, 734, 0, 0, 0, 1526, 0, 0, 734, 734,
- 1526, 0, 0, 0, 0, 0, 0, 1528, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1528, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 735, 735, 0, 0, 0,
+ 0, 0, 0, 0, 2015, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2962, 0,
+ 0, 0, 0, 0, 735, 735, 735, 735, 1961, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2960, 734, 0, 0, 1526, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2392, 0,
- 0, 0, 0, 0, 0, 2984, 0, 0, 0, 1901,
- 1901, 0, 0, 0, 2989, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1072, 2393, 0, 0, 0, 0,
+ 0, 0, 2986, 0, 0, 0, 1902, 1902, 0, 0,
+ 0, 2991, 0, 1052, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0,
+ 678, 0, 0, 0, 0, 0, 0, 2015, 678, 0,
+ 678, 0, 678, 2432, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3000, 3376, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2014, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1071, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0,
- 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
- 734, 0, 0, 0, 2014, 677, 0, 677, 0, 677,
- 2431, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2132, 0, 0, 0, 0, 2509, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1527, 0, 0, 0, 0, 0,
+ 2132, 735, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2508, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3583, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3157, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1283,
- 0, 0, 0, 0, 734, 734, 0, 0, 0, 0,
+ 0, 735, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 678, 0, 0, 0, 735, 0, 0,
+ 678, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 735, 678, 678, 0, 0, 678, 0, 2603, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 678, 0, 0,
+ 0, 0, 0, 0, 678, 3160, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1284, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 678, 0, 0, 0, 0, 0, 0, 2614, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1910, 0,
+ 0, 0, 0, 0, 0, 735, 0, 0, 0, 0,
+ 0, 0, 735, 0, 735, 0, 3205, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1284, 0, 0, 0, 0, 0, 0, 3232, 1910, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1529, 0, 2015, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3202, 0,
- 0, 0, 0, 734, 734, 734, 734, 0, 0, 0,
- 677, 0, 1283, 0, 0, 0, 0, 677, 0, 3229,
- 1909, 0, 0, 0, 0, 0, 0, 0, 677, 677,
- 0, 0, 677, 0, 2601, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 677, 0, 0, 0, 0, 0,
- 0, 677, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 677, 0, 0,
- 0, 0, 0, 0, 2612, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0,
- 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1096, 0, 0, 0, 0, 0, 0, 0, 2393,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1528, 0, 2014, 0, 0, 0, 0,
- 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1526, 0, 0, 0, 0, 0, 0,
- 734, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 734, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
- 0, 1856, 0, 0, 0, 0, 0, 0, 0, 734,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
+ 0, 678, 0, 735, 0, 0, 0, 0, 0, 1961,
+ 1857, 0, 0, 1527, 735, 0, 735, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 734, 0, 0, 0, 0, 0,
- 0, 734, 0, 734, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
- 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 735, 735, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 678, 0,
+ 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2392, 2392, 0, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
- 677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3647, 3648, 3649, 3650, 0, 0,
+ 0, 0, 0, 735, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 678, 0,
+ 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2393, 2393, 735, 0, 735, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 677, 0, 0, 0, 0,
+ 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 678, 678, 678, 678, 678, 678,
+ 0, 0, 0, 3650, 3651, 3652, 3653, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 678, 678, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 678, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 1528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 677, 677, 677, 677, 677, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 677,
- 677, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 677, 0, 0, 0, 0, 0,
- 0, 3725, 734, 3725, 0, 0, 0, 0, 0, 0,
- 0, 0, 1526, 734, 0, 734, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3753, 0, 3755, 0, 0, 0, 0, 0, 0,
- 734, 734, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 734, 0, 0, 0, 0, 0, 0, 0,
- 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3922, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1283, 0, 734, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 734, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 734, 0, 734, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3728, 0, 3728, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3725, 0, 0, 0, 0,
- 0, 0, 3725, 0, 3725, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3756, 0, 3758, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0,
- 0, 1071, 0, 677, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1528, 0, 0, 0, 0, 1528,
- 677, 677, 677, 677, 677, 0, 0, 0, 0, 0,
- 0, 0, 3245, 0, 0, 0, 0, 0, 1960, 0,
- 677, 0, 0, 677, 3253, 2014, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
+ 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3925, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1284,
+ 0, 0, 0, 0, 0, 1072, 0, 678, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 677, 0, 0, 0, 0, 0,
- 0, 0, 0, 2392, 0, 0, 0, 0, 677, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0,
+ 0, 0, 0, 1529, 678, 678, 678, 678, 678, 0,
+ 0, 0, 0, 0, 0, 0, 3248, 0, 0, 0,
+ 0, 0, 1961, 0, 678, 0, 0, 678, 3256, 2015,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 677, 0,
- 0, 677, 0, 0, 0, 0, 0, 2392, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785,
- 3787, 3786, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3788,
- 3789, 805, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0,
+ 0, 3728, 0, 3728, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 678, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2393, 0, 0, 0, 0, 0, 1529, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 678, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 678, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4069, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2392, 0, 4085, 0, 0, 0,
+ 0, 0, 0, 678, 0, 0, 678, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1283, 1283, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4135, 0, 0, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 677, 0, 0, 0, 0, 2392, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1856, 0, 4135, 0,
- 0, 677, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3793, 0, 0, 0, 0, 0, 0, 0,
- 0, 677, 0, 677, 677, 677, 0, 3801, 3802, 0,
- 0, 3877, 3876, 3875, 0, 0, 3873, 3874, 3872, 0,
+ 0, 0, 0, 0, 0, 0, 2393, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 678, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3878, 928, 0, 781, 782, 3879, 3880, 932,
- 3881, 784, 785, 929, 930, 0, 779, 783, 931, 933,
+ 0, 0, 4072, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4080, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2393, 0, 4088, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 678, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1284, 1284, 3788, 3790, 3789, 3855, 3856, 3857, 3858, 3859,
+ 3860, 3861, 3791, 3792, 806, 0, 678, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 678, 0, 678, 678,
+ 678, 0, 4138, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3782, 3783, 3784, 3790, 3791,
- 3792, 3803, 3850, 3851, 3859, 3861, 884, 3860, 3862, 3863,
- 3864, 3867, 3868, 3869, 3870, 3865, 3866, 3871, 3765, 3769,
- 3766, 3767, 3768, 3780, 3770, 3771, 3772, 3773, 3774, 3775,
- 3776, 3777, 3778, 3779, 3781, 3882, 3883, 3884, 3885, 3886,
- 3887, 3796, 3800, 3799, 3797, 3798, 3794, 3795, 3822, 3821,
- 3823, 3824, 3825, 3826, 3827, 3828, 3830, 3829, 3831, 3832,
- 3833, 3834, 3835, 3836, 3804, 3805, 3808, 3809, 3807, 3806,
- 3810, 3819, 3820, 3811, 3812, 3813, 3814, 3815, 3816, 3818,
- 3817, 3837, 3838, 3839, 3840, 3841, 3843, 3842, 3846, 3847,
- 3845, 3844, 3849, 3848, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1960, 0, 0, 0, 934, 0, 935,
- 0, 0, 939, 0, 0, 0, 941, 940, 0, 942,
- 904, 903, 1528, 0, 936, 937, 1960, 938, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4080, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2393, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1857, 0, 4138, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895,
- 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2870,1620 +2883,1793 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3796, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3804, 3805, 0, 0, 3880, 3879, 3878, 1961, 0,
+ 3876, 3877, 3875, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1529, 0, 0,
+ 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3881, 929, 0, 782,
+ 783, 3882, 3883, 933, 3884, 785, 786, 930, 931, 0,
+ 780, 784, 932, 934, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1961, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785,
+ 3786, 3787, 3793, 3794, 3795, 3806, 3853, 3854, 3862, 3864,
+ 885, 3863, 3865, 3866, 3867, 3870, 3871, 3872, 3873, 3868,
+ 3869, 3874, 3768, 3772, 3769, 3770, 3771, 3783, 3773, 3774,
+ 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3784, 3885,
+ 3886, 3887, 3888, 3889, 3890, 3799, 3803, 3802, 3800, 3801,
+ 3797, 3798, 3825, 3824, 3826, 3827, 3828, 3829, 3830, 3831,
+ 3833, 3832, 3834, 3835, 3836, 3837, 3838, 3839, 3807, 3808,
+ 3811, 3812, 3810, 3809, 3813, 3822, 3823, 3814, 3815, 3816,
+ 3817, 3818, 3819, 3821, 3820, 3840, 3841, 3842, 3843, 3844,
+ 3846, 3845, 3849, 3850, 3848, 3847, 3852, 3851, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 935, 0, 936, 0, 0, 940, 0, 0, 0,
+ 942, 941, 0, 943, 905, 904, 0, 0, 937, 938,
+ 0, 939, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3891, 3892, 3893, 3894,
+ 3895, 3896, 3897, 3898, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1961, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 678, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1960, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 677, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1529, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4110, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1960, 0, 0, 396, 0, 0, 0, 0, 0, 0,
- 1421, 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, 1337,
- 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289,
- 1317, 1349, 270, 1314, 1407, 1366, 1423, 366, 267, 1295,
- 1286, 204, 505, 1320, 430, 1336, 203, 1386, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 1430, 370, 1372, 0, 497, 401, 0, 0,
- 2014, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385,
- 1303, 1371, 1425, 1332, 1381, 1426, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 4109, 507, 959,
- 0, 0, 0, 0, 4110, 0, 0, 0, 0, 238,
- 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
- 340, 342, 344, 350, 357, 363, 336, 345, 1328, 1378,
- 609, 1420, 1329, 1380, 265, 321, 272, 264, 580, 1431,
- 1412, 1292, 1359, 1419, 1354, 596, 0, 0, 229, 1422,
- 1353, 0, 1383, 0, 1437, 1287, 1374, 0, 1290, 1294,
- 1433, 1417, 1323, 275, 0, 0, 0, 0, 0, 0,
- 0, 1350, 1361, 1395, 1399, 1344, 0, 0, 0, 0,
- 0, 0, 0, 0, 1321, 0, 1370, 0, 0, 0,
- 1299, 1291, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1348, 0, 0, 0, 0, 1302,
- 0, 1322, 1396, 0, 1285, 297, 1296, 402, 257, 0,
- 453, 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300,
- 1409, 1335, 365, 1298, 330, 197, 225, 0, 1333, 412,
- 461, 473, 1408, 1318, 1327, 253, 1325, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 1369, 1388, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 589, 590, 256, 652, 228,
- 622, 220, 1297, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 355, 356, 280, 307, 447, 375,
- 448, 306, 308, 404, 403, 405, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 1313, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 1404, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 1393, 1436, 425, 472, 240, 606, 496, 199,
- 1307, 1312, 1305, 0, 254, 255, 1375, 575, 1308, 1306,
- 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 1397, 1301, 0, 1310, 1311,
- 398, 1406, 591, 592, 672, 384, 486, 603, 335, 349,
- 352, 341, 361, 0, 362, 337, 338, 343, 346, 347,
- 348, 353, 354, 358, 364, 249, 210, 390, 399, 578,
- 312, 216, 217, 218, 524, 525, 526, 527, 619, 620,
- 624, 205, 462, 463, 464, 465, 292, 614, 309, 468,
- 467, 331, 332, 379, 449, 540, 542, 553, 557, 559,
- 561, 567, 570, 541, 543, 554, 558, 560, 562, 568,
- 571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
- 551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
- 537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 1368, 196, 221, 368, 1432, 454, 288, 650, 618,
- 484, 613, 206, 223, 1304, 262, 1316, 1324, 0, 1330,
- 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379,
- 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 301,
- 302, 444, 445, 314, 315, 646, 647, 300, 600, 633,
- 597, 645, 627, 438, 378, 1367, 1373, 381, 281, 305,
- 320, 1382, 617, 502, 227, 466, 290, 251, 1400, 1402,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 1363, 1391, 376, 576, 577, 316,
- 396, 0, 0, 0, 0, 0, 0, 1421, 1405, 528,
- 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340, 1384, 1293,
- 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317, 1349, 270,
- 1314, 1407, 1366, 1423, 366, 267, 1295, 1286, 204, 505,
- 1320, 430, 1336, 203, 1386, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 1430,
- 370, 1372, 0, 497, 401, 0, 0, 0, 1411, 1410,
- 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303, 1371, 1425,
- 1332, 1381, 1426, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 0, 507, 194, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1961, 0, 0, 397, 0,
+ 0, 0, 0, 0, 0, 1422, 1406, 529, 0, 1348,
+ 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417,
+ 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408,
+ 1367, 1424, 367, 268, 1296, 1287, 204, 506, 1321, 431,
+ 1337, 203, 1387, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 1431, 371, 1373,
+ 0, 498, 402, 0, 0, 2015, 1412, 1411, 1342, 1352,
+ 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382,
+ 1427, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 4112, 508, 960, 0, 0, 0, 0, 4113,
+ 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 1329, 1379, 610, 1421, 1330, 1381, 266,
+ 322, 273, 265, 581, 1432, 1413, 1293, 1360, 1420, 1355,
+ 597, 0, 0, 229, 1423, 1354, 0, 1384, 0, 1438,
+ 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324, 276, 0,
+ 0, 0, 0, 0, 0, 0, 1351, 1362, 1396, 1400,
+ 1345, 0, 0, 0, 0, 0, 0, 0, 0, 1322,
+ 0, 1371, 0, 0, 0, 1300, 1292, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349,
+ 0, 0, 0, 0, 1303, 0, 1323, 1397, 0, 1286,
+ 298, 1297, 403, 258, 0, 454, 1404, 1417, 1346, 630,
+ 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366, 1299, 331,
+ 197, 225, 0, 1334, 413, 462, 474, 1409, 1319, 1328,
+ 254, 1326, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 1370, 1389, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 1298, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 1314, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 1405,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 1394, 1437,
+ 426, 473, 240, 607, 497, 199, 1308, 1313, 1306, 0,
+ 255, 256, 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428,
+ 1429, 1430, 1415, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 1398, 1302, 0, 1311, 1312, 399, 1407, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 1369, 196, 221,
+ 369, 1433, 455, 289, 651, 619, 485, 614, 206, 223,
+ 1305, 263, 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356,
+ 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395,
+ 1402, 1416, 1436, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 1368, 1374, 382, 282, 306, 321, 1383, 618, 503,
+ 227, 467, 291, 251, 1401, 1403, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 1364, 1392, 377, 577, 578, 317, 397, 0, 0, 0,
+ 0, 0, 0, 1422, 1406, 529, 0, 1348, 1425, 1316,
+ 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320,
+ 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424,
+ 367, 268, 1296, 1287, 204, 506, 1321, 431, 1337, 203,
+ 1387, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 1431, 371, 1373, 0, 498,
+ 402, 0, 0, 0, 1412, 1411, 1342, 1352, 1414, 1361,
+ 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 194, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 1329, 1379, 610, 1421, 1330, 1381, 266, 322, 273,
+ 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, 597, 0,
+ 0, 229, 1423, 1354, 0, 1384, 0, 1438, 1288, 1375,
+ 0, 1291, 1295, 1434, 1418, 1324, 276, 0, 0, 0,
+ 0, 0, 0, 0, 1351, 1362, 1396, 1400, 1345, 0,
+ 0, 0, 0, 0, 0, 3257, 0, 1322, 0, 1371,
+ 0, 0, 0, 1300, 1292, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1349, 0, 0,
+ 0, 0, 1303, 0, 1323, 1397, 0, 1286, 298, 1297,
+ 403, 258, 0, 454, 1404, 1417, 1346, 630, 1419, 1344,
+ 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, 197, 225,
+ 0, 1334, 413, 462, 474, 1409, 1319, 1328, 254, 1326,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 1370, 1389, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 1298, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 1314, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 1405, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 1394, 1437, 426, 473,
+ 240, 607, 497, 199, 1308, 1313, 1306, 0, 255, 256,
+ 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430,
+ 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 1398,
+ 1302, 0, 1311, 1312, 399, 1407, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 1369, 196, 221, 369, 1433,
+ 455, 289, 651, 619, 485, 614, 206, 223, 1305, 263,
+ 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358,
+ 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416,
+ 1436, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 1368,
+ 1374, 382, 282, 306, 321, 1383, 618, 503, 227, 467,
+ 291, 251, 1401, 1403, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 1364, 1392,
+ 377, 577, 578, 317, 397, 0, 0, 0, 0, 0,
+ 0, 1422, 1406, 529, 0, 1348, 1425, 1316, 1335, 1435,
+ 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327,
+ 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, 367, 268,
+ 1296, 1287, 204, 506, 1321, 431, 1337, 203, 1387, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 1431, 371, 1373, 0, 498, 402, 0,
+ 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347,
+ 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 1329,
+ 1379, 610, 1421, 1330, 1381, 266, 322, 273, 265, 581,
+ 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, 0, 229,
+ 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, 0, 1291,
+ 1295, 1434, 1418, 1324, 276, 0, 0, 0, 0, 0,
+ 0, 0, 1351, 1362, 1396, 1400, 1345, 0, 0, 0,
+ 0, 0, 0, 3218, 0, 1322, 0, 1371, 0, 0,
+ 0, 1300, 1292, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1349, 0, 0, 0, 0,
+ 1303, 0, 1323, 1397, 0, 1286, 298, 1297, 403, 258,
+ 0, 454, 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391,
+ 1301, 1410, 1336, 366, 1299, 331, 197, 225, 0, 1334,
+ 413, 462, 474, 1409, 1319, 1328, 254, 1326, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 1370, 1389,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 1298, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 1314, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 1405, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 1394, 1437, 426, 473, 240, 607,
+ 497, 199, 1308, 1313, 1306, 0, 255, 256, 1376, 576,
+ 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 1398, 1302, 0,
+ 1311, 1312, 399, 1407, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 1369, 196, 221, 369, 1433, 455, 289,
+ 651, 619, 485, 614, 206, 223, 1305, 263, 1317, 1325,
+ 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377,
+ 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 1368, 1374, 382,
+ 282, 306, 321, 1383, 618, 503, 227, 467, 291, 251,
+ 1401, 1403, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 1364, 1392, 377, 577,
+ 578, 317, 397, 0, 0, 0, 0, 0, 0, 1422,
+ 1406, 529, 0, 1348, 1425, 1316, 1335, 1435, 1338, 1341,
+ 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327, 1290, 1318,
+ 1350, 271, 1315, 1408, 1367, 1424, 367, 268, 1296, 1287,
+ 204, 506, 1321, 431, 1337, 203, 1387, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 1431, 371, 1373, 0, 498, 402, 0, 0, 0,
+ 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347, 1386, 1304,
+ 1372, 1426, 1333, 1382, 1427, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 960, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 1329, 1379, 610,
+ 1421, 1330, 1381, 266, 322, 273, 265, 581, 1432, 1413,
+ 1293, 1360, 1420, 1355, 597, 0, 0, 229, 1423, 1354,
+ 0, 1384, 0, 1438, 1288, 1375, 0, 1291, 1295, 1434,
+ 1418, 1324, 276, 0, 0, 0, 0, 0, 0, 0,
+ 1351, 1362, 1396, 1400, 1345, 0, 0, 0, 0, 0,
+ 0, 2411, 0, 1322, 0, 1371, 0, 0, 0, 1300,
+ 1292, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1349, 0, 0, 0, 0, 1303, 0,
+ 1323, 1397, 0, 1286, 298, 1297, 403, 258, 0, 454,
+ 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391, 1301, 1410,
+ 1336, 366, 1299, 331, 197, 225, 0, 1334, 413, 462,
+ 474, 1409, 1319, 1328, 254, 1326, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 1370, 1389, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 1298, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 1314, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 1405, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 1394, 1437, 426, 473, 240, 607, 497, 199,
+ 1308, 1313, 1306, 0, 255, 256, 1376, 576, 1309, 1307,
+ 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 1398, 1302, 0, 1311, 1312,
+ 399, 1407, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 1369, 196, 221, 369, 1433, 455, 289, 651, 619,
+ 485, 614, 206, 223, 1305, 263, 1317, 1325, 0, 1331,
+ 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377, 1378, 1380,
+ 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 1368, 1374, 382, 282, 306,
+ 321, 1383, 618, 503, 227, 467, 291, 251, 1401, 1403,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 1364, 1392, 377, 577, 578, 317,
+ 397, 0, 0, 0, 0, 0, 0, 1422, 1406, 529,
+ 0, 1348, 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294,
+ 1363, 417, 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271,
+ 1315, 1408, 1367, 1424, 367, 268, 1296, 1287, 204, 506,
+ 1321, 431, 1337, 203, 1387, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 1431,
+ 371, 1373, 0, 498, 402, 0, 0, 0, 1412, 1411,
+ 1342, 1352, 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426,
+ 1333, 1382, 1427, 324, 248, 326, 202, 414, 499, 287,
+ 0, 95, 0, 0, 0, 508, 725, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
- 0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
- 350, 357, 363, 336, 345, 1328, 1378, 609, 1420, 1329,
- 1380, 265, 321, 272, 264, 580, 1431, 1412, 1292, 1359,
- 1419, 1354, 596, 0, 0, 229, 1422, 1353, 0, 1383,
- 0, 1437, 1287, 1374, 0, 1290, 1294, 1433, 1417, 1323,
- 275, 0, 0, 0, 0, 0, 0, 0, 1350, 1361,
- 1395, 1399, 1344, 0, 0, 0, 0, 0, 0, 3254,
- 0, 1321, 0, 1370, 0, 0, 0, 1299, 1291, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1348, 0, 0, 0, 0, 1302, 0, 1322, 1396,
- 0, 1285, 297, 1296, 402, 257, 0, 453, 1403, 1416,
- 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409, 1335, 365,
- 1298, 330, 197, 225, 0, 1333, 412, 461, 473, 1408,
- 1318, 1327, 253, 1325, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 1369, 1388, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 589, 590, 256, 652, 228, 622, 220, 1297,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 355, 356, 280, 307, 447, 375, 448, 306, 308,
- 404, 403, 405, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 1313, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 1404, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 1393,
- 1436, 425, 472, 240, 606, 496, 199, 1307, 1312, 1305,
- 0, 254, 255, 1375, 575, 1308, 1306, 1364, 1365, 1309,
- 1427, 1428, 1429, 1414, 654, 655, 656, 657, 658, 659,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 1329, 1379, 610, 1421, 1330,
+ 1381, 266, 322, 273, 265, 581, 1432, 1413, 1293, 1360,
+ 1420, 1355, 597, 0, 0, 229, 1423, 1354, 0, 1384,
+ 0, 1438, 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324,
+ 276, 0, 0, 0, 0, 0, 0, 0, 1351, 1362,
+ 1396, 1400, 1345, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1322, 0, 1371, 0, 0, 0, 1300, 1292, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1349, 0, 0, 0, 0, 1303, 0, 1323, 1397,
+ 0, 1286, 298, 1297, 403, 258, 0, 454, 1404, 1417,
+ 1346, 630, 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366,
+ 1299, 331, 197, 225, 0, 1334, 413, 462, 474, 1409,
+ 1319, 1328, 254, 1326, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 1370, 1389, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 1298, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 1314, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 1405, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 1394, 1437, 426, 473, 240, 607, 497, 199, 1308, 1313,
+ 1306, 0, 255, 256, 1376, 576, 1309, 1307, 1365, 1366,
+ 1310, 1428, 1429, 1430, 1415, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 1397, 1301, 0, 1310, 1311, 398, 1406, 591,
- 592, 672, 384, 486, 603, 335, 349, 352, 341, 361,
- 0, 362, 337, 338, 343, 346, 347, 348, 353, 354,
- 358, 364, 249, 210, 390, 399, 578, 312, 216, 217,
- 218, 524, 525, 526, 527, 619, 620, 624, 205, 462,
- 463, 464, 465, 292, 614, 309, 468, 467, 331, 332,
- 379, 449, 540, 542, 553, 557, 559, 561, 567, 570,
- 541, 543, 554, 558, 560, 562, 568, 571, 530, 532,
- 534, 536, 549, 548, 545, 573, 574, 551, 556, 535,
- 547, 552, 565, 572, 569, 529, 533, 537, 546, 564,
- 563, 544, 555, 566, 550, 538, 531, 539, 1368, 196,
- 221, 368, 1432, 454, 288, 650, 618, 484, 613, 206,
- 223, 1304, 262, 1316, 1324, 0, 1330, 1338, 1339, 1352,
- 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387, 1389, 1392,
- 1394, 1401, 1415, 1435, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 301, 302, 444, 445,
- 314, 315, 646, 647, 300, 600, 633, 597, 645, 627,
- 438, 378, 1367, 1373, 381, 281, 305, 320, 1382, 617,
- 502, 227, 466, 290, 251, 1400, 1402, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 1363, 1391, 376, 576, 577, 316, 396, 0, 0,
- 0, 0, 0, 0, 1421, 1405, 528, 0, 1347, 1424,
- 1315, 1334, 1434, 1337, 1340, 1384, 1293, 1362, 416, 1331,
- 1319, 1288, 1326, 1289, 1317, 1349, 270, 1314, 1407, 1366,
- 1423, 366, 267, 1295, 1286, 204, 505, 1320, 430, 1336,
- 203, 1386, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 1430, 370, 1372, 0,
- 497, 401, 0, 0, 0, 1411, 1410, 1341, 1351, 1413,
- 1360, 1398, 1346, 1385, 1303, 1371, 1425, 1332, 1381, 1426,
- 323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
- 351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
- 336, 345, 1328, 1378, 609, 1420, 1329, 1380, 265, 321,
- 272, 264, 580, 1431, 1412, 1292, 1359, 1419, 1354, 596,
- 0, 0, 229, 1422, 1353, 0, 1383, 0, 1437, 1287,
- 1374, 0, 1290, 1294, 1433, 1417, 1323, 275, 0, 0,
- 0, 0, 0, 0, 0, 1350, 1361, 1395, 1399, 1344,
- 0, 0, 0, 0, 0, 0, 3215, 0, 1321, 0,
- 1370, 0, 0, 0, 1299, 1291, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1348, 0,
- 0, 0, 0, 1302, 0, 1322, 1396, 0, 1285, 297,
- 1296, 402, 257, 0, 453, 1403, 1416, 1345, 629, 1418,
- 1343, 1342, 1390, 1300, 1409, 1335, 365, 1298, 330, 197,
- 225, 0, 1333, 412, 461, 473, 1408, 1318, 1327, 253,
- 1325, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 1369, 1388, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 589,
- 590, 256, 652, 228, 622, 220, 1297, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 355, 356,
- 280, 307, 447, 375, 448, 306, 308, 404, 403, 405,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 1313, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 1404, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 1393, 1436, 425, 472,
- 240, 606, 496, 199, 1307, 1312, 1305, 0, 254, 255,
- 1375, 575, 1308, 1306, 1364, 1365, 1309, 1427, 1428, 1429,
- 1414, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 1397,
- 1301, 0, 1310, 1311, 398, 1406, 591, 592, 672, 384,
- 486, 603, 335, 349, 352, 341, 361, 0, 362, 337,
- 338, 343, 346, 347, 348, 353, 354, 358, 364, 249,
- 210, 390, 399, 578, 312, 216, 217, 218, 524, 525,
- 526, 527, 619, 620, 624, 205, 462, 463, 464, 465,
- 292, 614, 309, 468, 467, 331, 332, 379, 449, 540,
- 542, 553, 557, 559, 561, 567, 570, 541, 543, 554,
- 558, 560, 562, 568, 571, 530, 532, 534, 536, 549,
- 548, 545, 573, 574, 551, 556, 535, 547, 552, 565,
- 572, 569, 529, 533, 537, 546, 564, 563, 544, 555,
- 566, 550, 538, 531, 539, 1368, 196, 221, 368, 1432,
- 454, 288, 650, 618, 484, 613, 206, 223, 1304, 262,
- 1316, 1324, 0, 1330, 1338, 1339, 1352, 1355, 1356, 1357,
- 1358, 1376, 1377, 1379, 1387, 1389, 1392, 1394, 1401, 1415,
- 1435, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 301, 302, 444, 445, 314, 315, 646,
- 647, 300, 600, 633, 597, 645, 627, 438, 378, 1367,
- 1373, 381, 281, 305, 320, 1382, 617, 502, 227, 466,
- 290, 251, 1400, 1402, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 1363, 1391,
- 376, 576, 577, 316, 396, 0, 0, 0, 0, 0,
- 0, 1421, 1405, 528, 0, 1347, 1424, 1315, 1334, 1434,
- 1337, 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326,
- 1289, 1317, 1349, 270, 1314, 1407, 1366, 1423, 366, 267,
- 1295, 1286, 204, 505, 1320, 430, 1336, 203, 1386, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 1430, 370, 1372, 0, 497, 401, 0,
- 0, 0, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346,
- 1385, 1303, 1371, 1425, 1332, 1381, 1426, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
- 959, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
- 339, 340, 342, 344, 350, 357, 363, 336, 345, 1328,
- 1378, 609, 1420, 1329, 1380, 265, 321, 272, 264, 580,
- 1431, 1412, 1292, 1359, 1419, 1354, 596, 0, 0, 229,
- 1422, 1353, 0, 1383, 0, 1437, 1287, 1374, 0, 1290,
- 1294, 1433, 1417, 1323, 275, 0, 0, 0, 0, 0,
- 0, 0, 1350, 1361, 1395, 1399, 1344, 0, 0, 0,
- 0, 0, 0, 2410, 0, 1321, 0, 1370, 0, 0,
- 0, 1299, 1291, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1348, 0, 0, 0, 0,
- 1302, 0, 1322, 1396, 0, 1285, 297, 1296, 402, 257,
- 0, 453, 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390,
- 1300, 1409, 1335, 365, 1298, 330, 197, 225, 0, 1333,
- 412, 461, 473, 1408, 1318, 1327, 253, 1325, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 1369, 1388,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 589, 590, 256, 652,
- 228, 622, 220, 1297, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 355, 356, 280, 307, 447,
- 375, 448, 306, 308, 404, 403, 405, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 1313, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 1404, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 1393, 1436, 425, 472, 240, 606, 496,
- 199, 1307, 1312, 1305, 0, 254, 255, 1375, 575, 1308,
- 1306, 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654, 655,
- 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 1397, 1301, 0, 1310,
- 1311, 398, 1406, 591, 592, 672, 384, 486, 603, 335,
- 349, 352, 341, 361, 0, 362, 337, 338, 343, 346,
- 347, 348, 353, 354, 358, 364, 249, 210, 390, 399,
- 578, 312, 216, 217, 218, 524, 525, 526, 527, 619,
- 620, 624, 205, 462, 463, 464, 465, 292, 614, 309,
- 468, 467, 331, 332, 379, 449, 540, 542, 553, 557,
- 559, 561, 567, 570, 541, 543, 554, 558, 560, 562,
- 568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
- 574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
- 533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 1368, 196, 221, 368, 1432, 454, 288, 650,
- 618, 484, 613, 206, 223, 1304, 262, 1316, 1324, 0,
- 1330, 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377,
- 1379, 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 300, 600,
- 633, 597, 645, 627, 438, 378, 1367, 1373, 381, 281,
- 305, 320, 1382, 617, 502, 227, 466, 290, 251, 1400,
- 1402, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 1363, 1391, 376, 576, 577,
- 316, 396, 0, 0, 0, 0, 0, 0, 1421, 1405,
- 528, 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340, 1384,
- 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317, 1349,
- 270, 1314, 1407, 1366, 1423, 366, 267, 1295, 1286, 204,
- 505, 1320, 430, 1336, 203, 1386, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 1430, 370, 1372, 0, 497, 401, 0, 0, 0, 1411,
- 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303, 1371,
- 1425, 1332, 1381, 1426, 323, 248, 325, 202, 413, 498,
- 286, 0, 95, 0, 0, 0, 507, 724, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 1328, 1378, 609, 1420,
- 1329, 1380, 265, 321, 272, 264, 580, 1431, 1412, 1292,
- 1359, 1419, 1354, 596, 0, 0, 229, 1422, 1353, 0,
- 1383, 0, 1437, 1287, 1374, 0, 1290, 1294, 1433, 1417,
- 1323, 275, 0, 0, 0, 0, 0, 0, 0, 1350,
- 1361, 1395, 1399, 1344, 0, 0, 0, 0, 0, 0,
- 0, 0, 1321, 0, 1370, 0, 0, 0, 1299, 1291,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1348, 0, 0, 0, 0, 1302, 0, 1322,
- 1396, 0, 1285, 297, 1296, 402, 257, 0, 453, 1403,
- 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409, 1335,
- 365, 1298, 330, 197, 225, 0, 1333, 412, 461, 473,
- 1408, 1318, 1327, 253, 1325, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 1369, 1388, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 1297, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 1313, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 1404, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 1393, 1436, 425, 472, 240, 606, 496, 199, 1307, 1312,
- 1305, 0, 254, 255, 1375, 575, 1308, 1306, 1364, 1365,
- 1309, 1427, 1428, 1429, 1414, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 1397, 1301, 0, 1310, 1311, 398, 1406,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 1368,
- 196, 221, 368, 1432, 454, 288, 650, 618, 484, 613,
- 206, 223, 1304, 262, 1316, 1324, 0, 1330, 1338, 1339,
- 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387, 1389,
- 1392, 1394, 1401, 1415, 1435, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 1367, 1373, 381, 281, 305, 320, 1382,
- 617, 502, 227, 466, 290, 251, 1400, 1402, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 1363, 1391, 376, 576, 577, 316, 396, 0,
- 0, 0, 0, 0, 0, 1421, 1405, 528, 0, 1347,
- 1424, 1315, 1334, 1434, 1337, 1340, 1384, 1293, 1362, 416,
- 1331, 1319, 1288, 1326, 1289, 1317, 1349, 270, 1314, 1407,
- 1366, 1423, 366, 267, 1295, 1286, 204, 505, 1320, 430,
- 1336, 203, 1386, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 1430, 370, 1372,
- 0, 497, 401, 0, 0, 0, 1411, 1410, 1341, 1351,
- 1413, 1360, 1398, 1346, 1385, 1303, 1371, 1425, 1332, 1381,
- 1426, 323, 248, 325, 202, 413, 498, 286, 0, 0,
- 0, 0, 0, 507, 194, 0, 0, 0, 0, 0,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 1398, 1302, 0, 1311, 1312, 399, 1407,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 1369,
+ 196, 221, 369, 1433, 455, 289, 651, 619, 485, 614,
+ 206, 223, 1305, 263, 1317, 1325, 0, 1331, 1339, 1340,
+ 1353, 1356, 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390,
+ 1393, 1395, 1402, 1416, 1436, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 1368, 1374, 382, 282, 306, 321, 1383,
+ 618, 503, 227, 467, 291, 251, 1401, 1403, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 1364, 1392, 377, 577, 578, 317, 397, 0,
+ 0, 0, 0, 0, 0, 1422, 1406, 529, 0, 1348,
+ 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417,
+ 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408,
+ 1367, 1424, 367, 268, 1296, 1287, 204, 506, 1321, 431,
+ 1337, 203, 1387, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 1431, 371, 1373,
+ 0, 498, 402, 0, 0, 0, 1412, 1411, 1342, 1352,
+ 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382,
+ 1427, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 194, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
- 0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
- 363, 336, 345, 1328, 1378, 609, 1420, 1329, 1380, 265,
- 321, 272, 264, 580, 1431, 1412, 1292, 1359, 1419, 1354,
- 596, 0, 0, 229, 1422, 1353, 0, 1383, 0, 1437,
- 1287, 1374, 0, 1290, 1294, 1433, 1417, 1323, 275, 0,
- 0, 0, 0, 0, 0, 0, 1350, 1361, 1395, 1399,
- 1344, 0, 0, 0, 0, 0, 0, 0, 0, 1321,
- 0, 1370, 0, 0, 0, 1299, 1291, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1348,
- 0, 0, 0, 0, 1302, 0, 1322, 1396, 0, 1285,
- 297, 1296, 402, 257, 0, 453, 1403, 1416, 1345, 629,
- 1418, 1343, 1342, 1390, 1300, 1409, 1335, 365, 1298, 330,
- 197, 225, 0, 1333, 412, 461, 473, 1408, 1318, 1327,
- 253, 1325, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 1369, 1388, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 589, 590, 256, 652, 228, 622, 220, 1297, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 355,
- 356, 280, 307, 447, 375, 448, 306, 308, 404, 403,
- 405, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 1313, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 1404, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 1393, 1436, 425,
- 472, 240, 606, 496, 199, 1307, 1312, 1305, 0, 254,
- 255, 1375, 575, 1308, 1306, 1364, 1365, 1309, 1427, 1428,
- 1429, 1414, 654, 655, 656, 657, 658, 659, 660, 661,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 1329, 1379, 610, 1421, 1330, 1381, 266,
+ 322, 273, 265, 581, 1432, 1413, 1293, 1360, 1420, 1355,
+ 597, 0, 0, 229, 1423, 1354, 0, 1384, 0, 1438,
+ 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324, 276, 0,
+ 0, 0, 0, 0, 0, 0, 1351, 1362, 1396, 1400,
+ 1345, 0, 0, 0, 0, 0, 0, 0, 0, 1322,
+ 0, 1371, 0, 0, 0, 1300, 1292, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349,
+ 0, 0, 0, 0, 1303, 0, 1323, 1397, 0, 1286,
+ 298, 1297, 403, 258, 0, 454, 1404, 1417, 1346, 630,
+ 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366, 1299, 331,
+ 197, 225, 0, 1334, 413, 462, 474, 1409, 1319, 1328,
+ 254, 1326, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 1370, 1389, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 1298, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 1314, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 1405,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 1394, 1437,
+ 426, 473, 240, 607, 497, 199, 1308, 1313, 1306, 0,
+ 255, 256, 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428,
+ 1429, 1430, 1415, 655, 656, 657, 658, 659, 660, 661,
662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 1397, 1301, 0, 1310, 1311, 398, 1406, 591, 592, 672,
- 384, 486, 603, 335, 349, 352, 341, 361, 0, 362,
- 337, 338, 343, 346, 347, 348, 353, 354, 358, 364,
- 249, 210, 390, 399, 578, 312, 216, 217, 218, 524,
- 525, 526, 527, 619, 620, 624, 205, 462, 463, 464,
- 465, 292, 614, 309, 468, 467, 331, 332, 379, 449,
- 540, 542, 553, 557, 559, 561, 567, 570, 541, 543,
- 554, 558, 560, 562, 568, 571, 530, 532, 534, 536,
- 549, 548, 545, 573, 574, 551, 556, 535, 547, 552,
- 565, 572, 569, 529, 533, 537, 546, 564, 563, 544,
- 555, 566, 550, 538, 531, 539, 1368, 196, 221, 368,
- 1432, 454, 288, 650, 618, 484, 613, 206, 223, 1304,
- 262, 1316, 1324, 0, 1330, 1338, 1339, 1352, 1355, 1356,
- 1357, 1358, 1376, 1377, 1379, 1387, 1389, 1392, 1394, 1401,
- 1415, 1435, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 301, 302, 444, 445, 314, 315,
- 646, 647, 300, 600, 633, 597, 645, 627, 438, 378,
- 1367, 1373, 381, 281, 305, 320, 1382, 617, 502, 227,
- 466, 290, 251, 1400, 1402, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 1363,
- 1391, 376, 576, 577, 316, 396, 0, 0, 0, 0,
- 0, 0, 1421, 1405, 528, 0, 1347, 1424, 1315, 1334,
- 1434, 1337, 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288,
- 1326, 1289, 1317, 1349, 270, 1314, 1407, 1366, 1423, 366,
- 267, 1295, 1286, 204, 505, 1320, 430, 1336, 203, 1386,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 1430, 370, 1372, 0, 497, 401,
- 0, 0, 0, 1411, 1410, 1341, 1351, 1413, 1360, 1398,
- 1346, 1385, 1303, 1371, 1425, 1332, 1381, 1426, 323, 248,
- 325, 202, 413, 498, 286, 0, 0, 0, 0, 0,
- 507, 724, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
- 359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
- 1328, 1378, 609, 1420, 1329, 1380, 265, 321, 272, 264,
- 580, 1431, 1412, 1292, 1359, 1419, 1354, 596, 0, 0,
- 229, 1422, 1353, 0, 1383, 0, 1437, 1287, 1374, 0,
- 1290, 1294, 1433, 1417, 1323, 275, 0, 0, 0, 0,
- 0, 0, 0, 1350, 1361, 1395, 1399, 1344, 0, 0,
- 0, 0, 0, 0, 0, 0, 1321, 0, 1370, 0,
- 0, 0, 1299, 1291, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1348, 0, 0, 0,
- 0, 1302, 0, 1322, 1396, 0, 1285, 297, 1296, 402,
- 257, 0, 453, 1403, 1416, 1345, 629, 1418, 1343, 1342,
- 1390, 1300, 1409, 1335, 365, 1298, 330, 197, 225, 0,
- 1333, 412, 461, 473, 1408, 1318, 1327, 253, 1325, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 1369,
- 1388, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 589, 590, 256,
- 652, 228, 622, 220, 1297, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 355, 356, 280, 307,
- 447, 375, 448, 306, 308, 404, 403, 405, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 1313, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 1404, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 1393, 1436, 425, 472, 240, 606,
- 496, 199, 1307, 1312, 1305, 0, 254, 255, 1375, 575,
- 1308, 1306, 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 1397, 1301, 0,
- 1310, 1311, 398, 1406, 591, 592, 672, 384, 486, 603,
- 335, 349, 352, 341, 361, 0, 362, 337, 338, 343,
- 346, 347, 348, 353, 354, 358, 364, 249, 210, 390,
- 399, 578, 312, 216, 217, 218, 524, 525, 526, 527,
- 619, 620, 624, 205, 462, 463, 464, 465, 292, 614,
- 309, 468, 467, 331, 332, 379, 449, 540, 542, 553,
- 557, 559, 561, 567, 570, 541, 543, 554, 558, 560,
- 562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
- 573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
- 529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 1368, 196, 221, 368, 1432, 454, 288,
- 650, 618, 484, 613, 206, 223, 1304, 262, 1316, 1324,
- 0, 1330, 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376,
- 1377, 1379, 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
- 600, 633, 597, 645, 627, 438, 378, 1367, 1373, 381,
- 281, 305, 320, 1382, 617, 502, 227, 466, 290, 251,
- 1400, 1402, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 1363, 1391, 376, 576,
- 577, 316, 396, 0, 0, 0, 0, 0, 0, 1421,
- 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340,
- 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317,
- 1349, 270, 1314, 1407, 1366, 1423, 366, 267, 1295, 1286,
- 204, 505, 1320, 430, 1336, 203, 1386, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 1430, 370, 1372, 0, 497, 401, 0, 0, 0,
- 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303,
- 1371, 1425, 1332, 1381, 1426, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 0, 507, 959, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
- 342, 344, 350, 357, 363, 336, 345, 1328, 1378, 609,
- 1420, 1329, 1380, 265, 321, 272, 264, 580, 1431, 1412,
- 1292, 1359, 1419, 1354, 596, 0, 0, 229, 1422, 1353,
- 0, 1383, 0, 1437, 1287, 1374, 0, 1290, 1294, 1433,
- 1417, 1323, 275, 0, 0, 0, 0, 0, 0, 0,
- 1350, 1361, 1395, 1399, 1344, 0, 0, 0, 0, 0,
- 0, 0, 0, 1321, 0, 1370, 0, 0, 0, 1299,
- 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1348, 0, 0, 0, 0, 1302, 0,
- 1322, 1396, 0, 1285, 297, 1296, 402, 257, 0, 453,
- 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409,
- 1335, 365, 1298, 330, 197, 225, 0, 1333, 412, 461,
- 473, 1408, 1318, 1327, 253, 1325, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 1369, 1388, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 589, 590, 256, 652, 228, 622,
- 220, 1297, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 355, 356, 280, 307, 447, 375, 448,
- 306, 308, 404, 403, 405, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 1313,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 1404, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 1393, 1436, 425, 472, 240, 606, 496, 199, 1307,
- 1312, 1305, 0, 254, 255, 1375, 575, 1308, 1306, 1364,
- 1365, 1309, 1427, 1428, 1429, 1414, 654, 655, 656, 657,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 1398, 1302, 0, 1311, 1312, 399, 1407, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 1369, 196, 221,
+ 369, 1433, 455, 289, 651, 619, 485, 614, 206, 223,
+ 1305, 263, 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356,
+ 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395,
+ 1402, 1416, 1436, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 1368, 1374, 382, 282, 306, 321, 1383, 618, 503,
+ 227, 467, 291, 251, 1401, 1403, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 1364, 1392, 377, 577, 578, 317, 397, 0, 0, 0,
+ 0, 0, 0, 1422, 1406, 529, 0, 1348, 1425, 1316,
+ 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320,
+ 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424,
+ 367, 268, 1296, 1287, 204, 506, 1321, 431, 1337, 203,
+ 1387, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 1431, 371, 1373, 0, 498,
+ 402, 0, 0, 0, 1412, 1411, 1342, 1352, 1414, 1361,
+ 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 725, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 1329, 1379, 610, 1421, 1330, 1381, 266, 322, 273,
+ 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, 597, 0,
+ 0, 229, 1423, 1354, 0, 1384, 0, 1438, 1288, 1375,
+ 0, 1291, 1295, 1434, 1418, 1324, 276, 0, 0, 0,
+ 0, 0, 0, 0, 1351, 1362, 1396, 1400, 1345, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1322, 0, 1371,
+ 0, 0, 0, 1300, 1292, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1349, 0, 0,
+ 0, 0, 1303, 0, 1323, 1397, 0, 1286, 298, 1297,
+ 403, 258, 0, 454, 1404, 1417, 1346, 630, 1419, 1344,
+ 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, 197, 225,
+ 0, 1334, 413, 462, 474, 1409, 1319, 1328, 254, 1326,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 1370, 1389, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 1298, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 1314, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 1405, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 1394, 1437, 426, 473,
+ 240, 607, 497, 199, 1308, 1313, 1306, 0, 255, 256,
+ 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430,
+ 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 1398,
+ 1302, 0, 1311, 1312, 399, 1407, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 1369, 196, 221, 369, 1433,
+ 455, 289, 651, 619, 485, 614, 206, 223, 1305, 263,
+ 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358,
+ 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416,
+ 1436, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 1368,
+ 1374, 382, 282, 306, 321, 1383, 618, 503, 227, 467,
+ 291, 251, 1401, 1403, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 1364, 1392,
+ 377, 577, 578, 317, 397, 0, 0, 0, 0, 0,
+ 0, 1422, 1406, 529, 0, 1348, 1425, 1316, 1335, 1435,
+ 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327,
+ 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, 367, 268,
+ 1296, 1287, 204, 506, 1321, 431, 1337, 203, 1387, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 1431, 371, 1373, 0, 498, 402, 0,
+ 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347,
+ 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 960, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 1329,
+ 1379, 610, 1421, 1330, 1381, 266, 322, 273, 265, 581,
+ 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, 0, 229,
+ 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, 0, 1291,
+ 1295, 1434, 1418, 1324, 276, 0, 0, 0, 0, 0,
+ 0, 0, 1351, 1362, 1396, 1400, 1345, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1322, 0, 1371, 0, 0,
+ 0, 1300, 1292, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1349, 0, 0, 0, 0,
+ 1303, 0, 1323, 1397, 0, 1286, 298, 1297, 403, 258,
+ 0, 454, 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391,
+ 1301, 1410, 1336, 366, 1299, 331, 197, 225, 0, 1334,
+ 413, 462, 474, 1409, 1319, 1328, 254, 1326, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 1370, 1389,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 1298, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 1314, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 1405, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 1394, 1437, 426, 473, 240, 607,
+ 497, 199, 1308, 1313, 1306, 0, 255, 256, 1376, 576,
+ 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 1398, 1302, 0,
+ 1311, 1312, 399, 1407, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 1369, 196, 221, 369, 1433, 455, 289,
+ 651, 619, 485, 614, 206, 223, 1305, 263, 1317, 1325,
+ 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377,
+ 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 1368, 1374, 382,
+ 282, 306, 321, 1383, 618, 503, 227, 467, 291, 251,
+ 1401, 1403, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 1364, 1392, 377, 577,
+ 578, 317, 397, 0, 0, 0, 0, 0, 0, 0,
+ 0, 529, 0, 778, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 765, 0, 0,
+ 0, 271, 770, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 777, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 772, 773, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 95, 0, 0, 1024, 508, 960, 749,
+ 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966,
+ 967, 245, 968, 0, 925, 808, 810, 809, 875, 876,
+ 877, 878, 879, 880, 881, 811, 812, 806, 973, 610,
+ 980, 981, 0, 266, 322, 273, 265, 581, 0, 0,
+ 2233, 2234, 2235, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 745, 762, 0, 776, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 759,
+ 760, 0, 0, 0, 0, 920, 0, 761, 0, 0,
+ 769, 982, 983, 984, 985, 986, 987, 988, 989, 990,
+ 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
+ 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
+ 1021, 1022, 1023, 771, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 919, 0, 0, 630, 0, 0, 917, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 970, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 971, 972, 257, 653, 816,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 824, 825, 281, 308, 901, 900,
+ 899, 307, 309, 897, 898, 896, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 907,
+ 929, 918, 782, 783, 908, 909, 933, 910, 785, 786,
+ 930, 931, 779, 780, 784, 932, 934, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 1397, 1301, 0, 1310, 1311, 398,
- 1406, 591, 592, 672, 384, 486, 603, 335, 349, 352,
- 341, 361, 0, 362, 337, 338, 343, 346, 347, 348,
- 353, 354, 358, 364, 249, 210, 390, 399, 578, 312,
- 216, 217, 218, 524, 525, 526, 527, 619, 620, 624,
- 205, 462, 463, 464, 465, 292, 614, 309, 468, 467,
- 331, 332, 379, 449, 540, 542, 553, 557, 559, 561,
- 567, 570, 541, 543, 554, 558, 560, 562, 568, 571,
- 530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
- 556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
- 546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 1368, 196, 221, 368, 1432, 454, 288, 650, 618, 484,
- 613, 206, 223, 1304, 262, 1316, 1324, 0, 1330, 1338,
- 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387,
- 1389, 1392, 1394, 1401, 1415, 1435, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 301, 302,
- 444, 445, 314, 315, 646, 647, 300, 600, 633, 597,
- 645, 627, 438, 378, 1367, 1373, 381, 281, 305, 320,
- 1382, 617, 502, 227, 466, 290, 251, 1400, 1402, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 1363, 1391, 376, 576, 577, 316, 396,
- 0, 0, 0, 0, 0, 0, 0, 0, 528, 0,
- 777, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 764, 0, 0, 0, 270, 769,
- 0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 776, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 771, 772, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 95, 0, 0, 1023, 507, 959, 748, 925, 963, 1024,
- 976, 977, 978, 964, 0, 238, 965, 966, 245, 967,
- 0, 924, 807, 809, 808, 874, 875, 876, 877, 878,
- 879, 880, 810, 811, 805, 972, 609, 979, 980, 0,
- 265, 321, 272, 264, 580, 0, 0, 2232, 2233, 2234,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 744, 761, 0, 775, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 758, 759, 0, 0,
- 0, 0, 919, 0, 760, 0, 0, 768, 981, 982,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 921, 768, 767, 0, 774,
+ 775, 0, 804, 805, 807, 813, 814, 815, 826, 873,
+ 874, 882, 884, 885, 883, 886, 887, 888, 891, 892,
+ 893, 894, 889, 890, 895, 787, 791, 788, 789, 790,
+ 802, 792, 793, 794, 795, 796, 797, 798, 799, 800,
+ 801, 803, 944, 945, 946, 947, 948, 949, 819, 823,
+ 822, 820, 821, 817, 818, 845, 844, 846, 847, 848,
+ 849, 850, 851, 853, 852, 854, 855, 856, 857, 858,
+ 859, 827, 828, 831, 832, 830, 829, 833, 842, 843,
+ 834, 835, 836, 837, 838, 839, 841, 840, 860, 861,
+ 862, 863, 864, 866, 865, 869, 870, 868, 867, 872,
+ 871, 766, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 935, 263, 936, 0, 0, 940,
+ 0, 0, 0, 942, 941, 0, 943, 905, 904, 0,
+ 0, 937, 938, 0, 939, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 950,
+ 951, 952, 953, 954, 955, 956, 957, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 975, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 778, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 765,
+ 0, 0, 0, 271, 770, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 777, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 772, 773, 0,
+ 0, 0, 0, 0, 0, 2440, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508,
+ 960, 749, 926, 964, 1025, 977, 978, 979, 965, 0,
+ 238, 966, 967, 245, 968, 0, 925, 808, 810, 809,
+ 875, 876, 877, 878, 879, 880, 881, 811, 812, 806,
+ 973, 610, 980, 981, 2441, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 745, 762, 0,
+ 776, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 759, 760, 0, 0, 0, 0, 920, 0, 761,
+ 0, 0, 769, 982, 983, 984, 985, 986, 987, 988,
+ 989, 990, 991, 992, 993, 994, 995, 996, 997, 998,
+ 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
+ 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
+ 1019, 1020, 1021, 1022, 1023, 771, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 919, 0, 0, 630, 0, 0, 917, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 970, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 971, 972, 257,
+ 653, 816, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 824, 825, 281, 308,
+ 901, 900, 899, 307, 309, 897, 898, 896, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 907, 929, 918, 782, 783, 908, 909, 933, 910,
+ 785, 786, 930, 931, 779, 780, 784, 932, 934, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 921, 768, 767,
+ 0, 774, 775, 0, 804, 805, 807, 813, 814, 815,
+ 826, 873, 874, 882, 884, 885, 883, 886, 887, 888,
+ 891, 892, 893, 894, 889, 890, 895, 787, 791, 788,
+ 789, 790, 802, 792, 793, 794, 795, 796, 797, 798,
+ 799, 800, 801, 803, 944, 945, 946, 947, 948, 949,
+ 819, 823, 822, 820, 821, 817, 818, 845, 844, 846,
+ 847, 848, 849, 850, 851, 853, 852, 854, 855, 856,
+ 857, 858, 859, 827, 828, 831, 832, 830, 829, 833,
+ 842, 843, 834, 835, 836, 837, 838, 839, 841, 840,
+ 860, 861, 862, 863, 864, 866, 865, 869, 870, 868,
+ 867, 872, 871, 766, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 935, 263, 936, 0,
+ 0, 940, 0, 0, 0, 942, 941, 0, 943, 905,
+ 904, 0, 0, 937, 938, 0, 939, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 950, 951, 952, 953, 954, 955, 956, 957, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 975, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 86, 529, 0, 778, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 765, 0, 0, 0, 271, 770, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 777, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 772,
+ 773, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 95, 0, 0,
+ 1024, 508, 960, 749, 926, 964, 1025, 977, 978, 979,
+ 965, 0, 238, 966, 967, 245, 968, 0, 925, 808,
+ 810, 809, 875, 876, 877, 878, 879, 880, 881, 811,
+ 812, 806, 973, 610, 980, 981, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 745,
+ 762, 0, 776, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 759, 760, 0, 0, 0, 0, 920,
+ 0, 761, 0, 0, 769, 982, 983, 984, 985, 986,
+ 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
+ 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
+ 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
+ 1017, 1018, 1019, 1020, 1021, 1022, 1023, 771, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 919, 0, 0, 630, 0, 0,
+ 917, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 970, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 971,
+ 972, 257, 653, 816, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 824, 825,
+ 281, 308, 901, 900, 899, 307, 309, 897, 898, 896,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 907, 929, 918, 782, 783, 908, 909,
+ 933, 910, 785, 786, 930, 931, 779, 780, 784, 932,
+ 934, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 921,
+ 768, 767, 0, 774, 775, 0, 804, 805, 807, 813,
+ 814, 815, 826, 873, 874, 882, 884, 885, 883, 886,
+ 887, 888, 891, 892, 893, 894, 889, 890, 895, 787,
+ 791, 788, 789, 790, 802, 792, 793, 794, 795, 796,
+ 797, 798, 799, 800, 801, 803, 944, 945, 946, 947,
+ 948, 949, 819, 823, 822, 820, 821, 817, 818, 845,
+ 844, 846, 847, 848, 849, 850, 851, 853, 852, 854,
+ 855, 856, 857, 858, 859, 827, 828, 831, 832, 830,
+ 829, 833, 842, 843, 834, 835, 836, 837, 838, 839,
+ 841, 840, 860, 861, 862, 863, 864, 866, 865, 869,
+ 870, 868, 867, 872, 871, 766, 196, 221, 369, 94,
+ 455, 289, 651, 619, 485, 614, 206, 223, 935, 263,
+ 936, 0, 0, 940, 0, 0, 0, 942, 941, 0,
+ 943, 905, 904, 0, 0, 937, 938, 0, 939, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 950, 951, 952, 953, 954, 955, 956,
+ 957, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 975, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 778,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 765, 0, 0, 0, 271, 770, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 777, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 772, 773, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 95,
+ 0, 0, 1024, 508, 960, 749, 926, 964, 1025, 977,
+ 978, 979, 965, 0, 238, 966, 967, 245, 968, 0,
+ 925, 808, 810, 809, 875, 876, 877, 878, 879, 880,
+ 881, 811, 812, 806, 973, 610, 980, 981, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 745, 762, 0, 776, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 759, 760, 0, 0, 0,
+ 0, 920, 0, 761, 0, 0, 769, 982, 983, 984,
+ 985, 986, 987, 988, 989, 990, 991, 992, 993, 994,
+ 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
+ 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
+ 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 771,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 919, 0, 0, 630,
+ 0, 0, 917, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 970, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 4098, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 971, 972, 257, 653, 816, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 824, 825, 281, 308, 901, 900, 899, 307, 309, 897,
+ 898, 896, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 907, 929, 918, 782, 783,
+ 908, 909, 933, 910, 785, 786, 930, 931, 779, 780,
+ 784, 932, 934, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 921, 768, 767, 0, 774, 775, 0, 804, 805,
+ 807, 813, 814, 815, 826, 873, 874, 882, 884, 885,
+ 883, 886, 887, 888, 891, 892, 893, 894, 889, 890,
+ 895, 787, 791, 788, 789, 790, 802, 792, 793, 794,
+ 795, 796, 797, 798, 799, 800, 801, 803, 944, 945,
+ 946, 947, 948, 949, 819, 823, 822, 820, 821, 817,
+ 818, 845, 844, 846, 847, 848, 849, 850, 851, 853,
+ 852, 854, 855, 856, 857, 858, 859, 827, 828, 831,
+ 832, 830, 829, 833, 842, 843, 834, 835, 836, 837,
+ 838, 839, 841, 840, 860, 861, 862, 863, 864, 866,
+ 865, 869, 870, 868, 867, 872, 871, 766, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 935, 263, 936, 0, 0, 940, 0, 0, 0, 942,
+ 941, 0, 943, 905, 904, 0, 0, 937, 938, 0,
+ 939, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 950, 951, 952, 953, 954,
+ 955, 956, 957, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 975, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 778, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 765, 0, 0, 0, 271,
+ 770, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 777,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 772, 773, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 95, 0, 1754, 1024, 508, 960, 749, 926, 964,
+ 1025, 977, 978, 979, 965, 0, 238, 966, 967, 245,
+ 968, 0, 925, 808, 810, 809, 875, 876, 877, 878,
+ 879, 880, 881, 811, 812, 806, 973, 610, 980, 981,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 745, 762, 0, 776, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 759, 760, 0,
+ 0, 0, 0, 920, 0, 761, 0, 0, 769, 982,
983, 984, 985, 986, 987, 988, 989, 990, 991, 992,
993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 770, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 918, 0, 0,
- 629, 0, 0, 916, 0, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 969, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 970, 971, 256, 652, 815, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 823, 824, 280, 307, 900, 899, 898, 306, 308, 896,
- 897, 895, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 906, 928, 917, 781, 782,
- 907, 908, 932, 909, 784, 785, 929, 930, 778, 779,
- 783, 931, 933, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 920, 767, 766, 0, 773, 774, 0, 803, 804,
- 806, 812, 813, 814, 825, 872, 873, 881, 883, 884,
- 882, 885, 886, 887, 890, 891, 892, 893, 888, 889,
- 894, 786, 790, 787, 788, 789, 801, 791, 792, 793,
- 794, 795, 796, 797, 798, 799, 800, 802, 943, 944,
- 945, 946, 947, 948, 818, 822, 821, 819, 820, 816,
- 817, 844, 843, 845, 846, 847, 848, 849, 850, 852,
- 851, 853, 854, 855, 856, 857, 858, 826, 827, 830,
- 831, 829, 828, 832, 841, 842, 833, 834, 835, 836,
- 837, 838, 840, 839, 859, 860, 861, 862, 863, 865,
- 864, 868, 869, 867, 866, 871, 870, 765, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 934, 262, 935, 0, 0, 939, 0, 0, 0, 941,
- 940, 0, 942, 904, 903, 0, 0, 936, 937, 0,
- 938, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 949, 950, 951, 952, 953,
- 954, 955, 956, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 974, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 777, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 764, 0, 0, 0, 270,
- 769, 0, 0, 0, 366, 267, 0, 0, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 776,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 771, 772, 0, 0, 0, 0, 0,
- 0, 2439, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 95, 0, 0, 1023, 507, 959, 748, 925, 963,
- 1024, 976, 977, 978, 964, 0, 238, 965, 966, 245,
- 967, 0, 924, 807, 809, 808, 874, 875, 876, 877,
- 878, 879, 880, 810, 811, 805, 972, 609, 979, 980,
- 2440, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
- 0, 0, 0, 744, 761, 0, 775, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 758, 759, 0,
- 0, 0, 0, 919, 0, 760, 0, 0, 768, 981,
- 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
- 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
- 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
- 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 770, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 918, 0,
- 0, 629, 0, 0, 916, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 969, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 970, 971, 256, 652, 815, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 823, 824, 280, 307, 900, 899, 898, 306, 308,
- 896, 897, 895, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 906, 928, 917, 781,
- 782, 907, 908, 932, 909, 784, 785, 929, 930, 778,
- 779, 783, 931, 933, 654, 655, 656, 657, 658, 659,
+ 1023, 771, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 919, 0,
+ 0, 630, 0, 0, 917, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 970, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 971, 972, 257, 653, 816, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 824, 825, 281, 308, 901, 900, 899, 307,
+ 309, 897, 898, 896, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 907, 929, 918,
+ 782, 783, 908, 909, 933, 910, 785, 786, 930, 931,
+ 779, 780, 784, 932, 934, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 920, 767, 766, 0, 773, 774, 0, 803,
- 804, 806, 812, 813, 814, 825, 872, 873, 881, 883,
- 884, 882, 885, 886, 887, 890, 891, 892, 893, 888,
- 889, 894, 786, 790, 787, 788, 789, 801, 791, 792,
- 793, 794, 795, 796, 797, 798, 799, 800, 802, 943,
- 944, 945, 946, 947, 948, 818, 822, 821, 819, 820,
- 816, 817, 844, 843, 845, 846, 847, 848, 849, 850,
- 852, 851, 853, 854, 855, 856, 857, 858, 826, 827,
- 830, 831, 829, 828, 832, 841, 842, 833, 834, 835,
- 836, 837, 838, 840, 839, 859, 860, 861, 862, 863,
- 865, 864, 868, 869, 867, 866, 871, 870, 765, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 934, 262, 935, 0, 0, 939, 0, 0, 0,
- 941, 940, 0, 942, 904, 903, 0, 0, 936, 937,
- 0, 938, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 949, 950, 951, 952,
- 953, 954, 955, 956, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 974, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 86,
- 528, 0, 777, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 764, 0, 0, 0,
- 270, 769, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 776, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 771, 772, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 95, 0, 0, 1023, 507, 959, 748, 925,
- 963, 1024, 976, 977, 978, 964, 0, 238, 965, 966,
- 245, 967, 0, 924, 807, 809, 808, 874, 875, 876,
- 877, 878, 879, 880, 810, 811, 805, 972, 609, 979,
- 980, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 0, 0,
- 0, 0, 0, 0, 744, 761, 0, 775, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 758, 759,
- 0, 0, 0, 0, 919, 0, 760, 0, 0, 768,
- 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 921, 768, 767, 0, 774, 775, 0,
+ 804, 805, 807, 813, 814, 815, 826, 873, 874, 882,
+ 884, 885, 883, 886, 887, 888, 891, 892, 893, 894,
+ 889, 890, 895, 787, 791, 788, 789, 790, 802, 792,
+ 793, 794, 795, 796, 797, 798, 799, 800, 801, 803,
+ 944, 945, 946, 947, 948, 949, 819, 823, 822, 820,
+ 821, 817, 818, 845, 844, 846, 847, 848, 849, 850,
+ 851, 853, 852, 854, 855, 856, 857, 858, 859, 827,
+ 828, 831, 832, 830, 829, 833, 842, 843, 834, 835,
+ 836, 837, 838, 839, 841, 840, 860, 861, 862, 863,
+ 864, 866, 865, 869, 870, 868, 867, 872, 871, 766,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 935, 263, 936, 0, 0, 940, 0, 0,
+ 0, 942, 941, 0, 943, 905, 904, 0, 0, 937,
+ 938, 0, 939, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 950, 951, 952,
+ 953, 954, 955, 956, 957, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 975, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 778, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 765, 0, 0,
+ 0, 271, 770, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 777, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 772, 773, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 95, 0, 0, 1024, 508, 960, 749,
+ 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966,
+ 967, 245, 968, 0, 925, 808, 810, 809, 875, 876,
+ 877, 878, 879, 880, 881, 811, 812, 806, 973, 610,
+ 980, 981, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 745, 762, 0, 776, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 759,
+ 760, 1070, 0, 0, 0, 920, 0, 761, 0, 0,
+ 769, 982, 983, 984, 985, 986, 987, 988, 989, 990,
991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
- 1021, 1022, 770, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 918,
- 0, 0, 629, 0, 0, 916, 0, 0, 0, 0,
- 365, 0, 330, 197, 225, 0, 0, 412, 461, 473,
- 0, 0, 0, 969, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 970, 971, 256, 652, 815, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 823, 824, 280, 307, 900, 899, 898, 306,
- 308, 896, 897, 895, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 906, 928, 917,
- 781, 782, 907, 908, 932, 909, 784, 785, 929, 930,
- 778, 779, 783, 931, 933, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 920, 767, 766, 0, 773, 774, 0,
- 803, 804, 806, 812, 813, 814, 825, 872, 873, 881,
- 883, 884, 882, 885, 886, 887, 890, 891, 892, 893,
- 888, 889, 894, 786, 790, 787, 788, 789, 801, 791,
- 792, 793, 794, 795, 796, 797, 798, 799, 800, 802,
- 943, 944, 945, 946, 947, 948, 818, 822, 821, 819,
- 820, 816, 817, 844, 843, 845, 846, 847, 848, 849,
- 850, 852, 851, 853, 854, 855, 856, 857, 858, 826,
- 827, 830, 831, 829, 828, 832, 841, 842, 833, 834,
- 835, 836, 837, 838, 840, 839, 859, 860, 861, 862,
- 863, 865, 864, 868, 869, 867, 866, 871, 870, 765,
- 196, 221, 368, 94, 454, 288, 650, 618, 484, 613,
- 206, 223, 934, 262, 935, 0, 0, 939, 0, 0,
- 0, 941, 940, 0, 942, 904, 903, 0, 0, 936,
- 937, 0, 938, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 949, 950, 951,
- 952, 953, 954, 955, 956, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 974, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 0, 528, 0, 777, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 0, 0, 764, 0, 0,
- 0, 270, 769, 0, 0, 0, 366, 267, 0, 0,
- 204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 776, 370, 0, 0, 497, 401, 0, 0, 0,
- 0, 0, 0, 0, 0, 771, 772, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 95, 0, 0, 1023, 507, 959, 748,
- 925, 963, 1024, 976, 977, 978, 964, 0, 238, 965,
- 966, 245, 967, 0, 924, 807, 809, 808, 874, 875,
- 876, 877, 878, 879, 880, 810, 811, 805, 972, 609,
- 979, 980, 0, 265, 321, 272, 264, 580, 0, 0,
- 0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
- 0, 0, 0, 0, 0, 744, 761, 0, 775, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 758,
- 759, 0, 0, 0, 0, 919, 0, 760, 0, 0,
- 768, 981, 982, 983, 984, 985, 986, 987, 988, 989,
- 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
- 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
- 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
- 1020, 1021, 1022, 770, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 0, 402, 257, 0, 453,
- 918, 0, 0, 629, 0, 0, 916, 0, 0, 0,
- 0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
- 473, 0, 0, 0, 969, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 4095, 0, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 970, 971, 256, 652, 815, 622,
- 220, 0, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 823, 824, 280, 307, 900, 899, 898,
- 306, 308, 896, 897, 895, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 0,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 0, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 0, 0, 425, 472, 240, 606, 496, 906, 928,
- 917, 781, 782, 907, 908, 932, 909, 784, 785, 929,
- 930, 778, 779, 783, 931, 933, 654, 655, 656, 657,
+ 1021, 1022, 1023, 771, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 919, 0, 0, 630, 0, 0, 917, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 970, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 971, 972, 257, 653, 816,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 824, 825, 281, 308, 901, 900,
+ 899, 307, 309, 897, 898, 896, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 907,
+ 929, 918, 782, 783, 908, 909, 933, 910, 785, 786,
+ 930, 931, 779, 780, 784, 932, 934, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 920, 767, 766, 0, 773, 774,
- 0, 803, 804, 806, 812, 813, 814, 825, 872, 873,
- 881, 883, 884, 882, 885, 886, 887, 890, 891, 892,
- 893, 888, 889, 894, 786, 790, 787, 788, 789, 801,
- 791, 792, 793, 794, 795, 796, 797, 798, 799, 800,
- 802, 943, 944, 945, 946, 947, 948, 818, 822, 821,
- 819, 820, 816, 817, 844, 843, 845, 846, 847, 848,
- 849, 850, 852, 851, 853, 854, 855, 856, 857, 858,
- 826, 827, 830, 831, 829, 828, 832, 841, 842, 833,
- 834, 835, 836, 837, 838, 840, 839, 859, 860, 861,
- 862, 863, 865, 864, 868, 869, 867, 866, 871, 870,
- 765, 196, 221, 368, 0, 454, 288, 650, 618, 484,
- 613, 206, 223, 934, 262, 935, 0, 0, 939, 0,
- 0, 0, 941, 940, 0, 942, 904, 903, 0, 0,
- 936, 937, 0, 938, 0, 0, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 949, 950,
- 951, 952, 953, 954, 955, 956, 300, 600, 633, 597,
- 645, 627, 438, 378, 0, 0, 381, 281, 305, 320,
- 0, 617, 502, 227, 466, 290, 251, 974, 0, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
- 0, 0, 528, 0, 777, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 764, 0,
- 0, 0, 270, 769, 0, 0, 0, 366, 267, 0,
- 0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 776, 370, 0, 0, 497, 401, 0, 0,
- 0, 0, 0, 0, 0, 0, 771, 772, 0, 0,
- 0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 95, 0, 1753, 1023, 507, 959,
- 748, 925, 963, 1024, 976, 977, 978, 964, 0, 238,
- 965, 966, 245, 967, 0, 924, 807, 809, 808, 874,
- 875, 876, 877, 878, 879, 880, 810, 811, 805, 972,
- 609, 979, 980, 0, 265, 321, 272, 264, 580, 0,
- 0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 744, 761, 0, 775,
- 0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 758, 759, 0, 0, 0, 0, 919, 0, 760, 0,
- 0, 768, 981, 982, 983, 984, 985, 986, 987, 988,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 921, 768, 767, 0, 774,
+ 775, 0, 804, 805, 807, 813, 814, 815, 826, 873,
+ 874, 882, 884, 885, 883, 886, 887, 888, 891, 892,
+ 893, 894, 889, 890, 895, 787, 791, 788, 789, 790,
+ 802, 792, 793, 794, 795, 796, 797, 798, 799, 800,
+ 801, 803, 944, 945, 946, 947, 948, 949, 819, 823,
+ 822, 820, 821, 817, 818, 845, 844, 846, 847, 848,
+ 849, 850, 851, 853, 852, 854, 855, 856, 857, 858,
+ 859, 827, 828, 831, 832, 830, 829, 833, 842, 843,
+ 834, 835, 836, 837, 838, 839, 841, 840, 860, 861,
+ 862, 863, 864, 866, 865, 869, 870, 868, 867, 872,
+ 871, 766, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 935, 263, 936, 0, 0, 940,
+ 0, 0, 0, 942, 941, 0, 943, 905, 904, 0,
+ 0, 937, 938, 0, 939, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 950,
+ 951, 952, 953, 954, 955, 956, 957, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 975, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 778, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 765,
+ 0, 0, 0, 271, 770, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 777, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 772, 773, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508,
+ 960, 749, 926, 964, 1025, 977, 978, 979, 965, 0,
+ 238, 966, 967, 245, 968, 0, 925, 808, 810, 809,
+ 875, 876, 877, 878, 879, 880, 881, 811, 812, 806,
+ 973, 610, 980, 981, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 745, 762, 0,
+ 776, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 759, 760, 0, 0, 0, 0, 920, 0, 761,
+ 0, 0, 769, 982, 983, 984, 985, 986, 987, 988,
989, 990, 991, 992, 993, 994, 995, 996, 997, 998,
999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
- 1019, 1020, 1021, 1022, 770, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 297, 0, 402, 257, 0,
- 453, 918, 0, 0, 629, 0, 0, 916, 0, 0,
- 0, 0, 365, 0, 330, 197, 225, 0, 0, 412,
- 461, 473, 0, 0, 0, 969, 0, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 0, 0, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 970, 971, 256, 652, 815,
- 622, 220, 0, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 823, 824, 280, 307, 900, 899,
- 898, 306, 308, 896, 897, 895, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 0, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 0, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 0, 0, 425, 472, 240, 606, 496, 906,
- 928, 917, 781, 782, 907, 908, 932, 909, 784, 785,
- 929, 930, 778, 779, 783, 931, 933, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 920, 767, 766, 0, 773,
- 774, 0, 803, 804, 806, 812, 813, 814, 825, 872,
- 873, 881, 883, 884, 882, 885, 886, 887, 890, 891,
- 892, 893, 888, 889, 894, 786, 790, 787, 788, 789,
- 801, 791, 792, 793, 794, 795, 796, 797, 798, 799,
- 800, 802, 943, 944, 945, 946, 947, 948, 818, 822,
- 821, 819, 820, 816, 817, 844, 843, 845, 846, 847,
- 848, 849, 850, 852, 851, 853, 854, 855, 856, 857,
- 858, 826, 827, 830, 831, 829, 828, 832, 841, 842,
- 833, 834, 835, 836, 837, 838, 840, 839, 859, 860,
- 861, 862, 863, 865, 864, 868, 869, 867, 866, 871,
- 870, 765, 196, 221, 368, 0, 454, 288, 650, 618,
- 484, 613, 206, 223, 934, 262, 935, 0, 0, 939,
- 0, 0, 0, 941, 940, 0, 942, 904, 903, 0,
- 0, 936, 937, 0, 938, 0, 0, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 949,
- 950, 951, 952, 953, 954, 955, 956, 300, 600, 633,
- 597, 645, 627, 438, 378, 0, 0, 381, 281, 305,
- 320, 0, 617, 502, 227, 466, 290, 251, 974, 0,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
- 0, 0, 0, 528, 0, 777, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 0, 764,
- 0, 0, 0, 270, 769, 0, 0, 0, 366, 267,
- 0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 776, 370, 0, 0, 497, 401, 0,
- 0, 0, 0, 0, 0, 0, 0, 771, 772, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 95, 0, 0, 1023, 507,
- 959, 748, 925, 963, 1024, 976, 977, 978, 964, 0,
- 238, 965, 966, 245, 967, 0, 924, 807, 809, 808,
- 874, 875, 876, 877, 878, 879, 880, 810, 811, 805,
- 972, 609, 979, 980, 0, 265, 321, 272, 264, 580,
- 0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
- 0, 0, 0, 0, 0, 0, 0, 744, 761, 0,
- 775, 0, 0, 0, 275, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 758, 759, 1069, 0, 0, 0, 919, 0, 760,
- 0, 0, 768, 981, 982, 983, 984, 985, 986, 987,
- 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
- 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
- 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
- 1018, 1019, 1020, 1021, 1022, 770, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 402, 257,
- 0, 453, 918, 0, 0, 629, 0, 0, 916, 0,
- 0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
- 412, 461, 473, 0, 0, 0, 969, 0, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 0, 0,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 970, 971, 256, 652,
- 815, 622, 220, 0, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 823, 824, 280, 307, 900,
- 899, 898, 306, 308, 896, 897, 895, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 0, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 0, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 0, 0, 425, 472, 240, 606, 496,
- 906, 928, 917, 781, 782, 907, 908, 932, 909, 784,
- 785, 929, 930, 778, 779, 783, 931, 933, 654, 655,
+ 1019, 1020, 1021, 1022, 1023, 771, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 919, 0, 0, 630, 0, 0, 917, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 970, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 971, 972, 257,
+ 653, 816, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 824, 825, 281, 308,
+ 901, 900, 899, 307, 309, 897, 898, 896, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 907, 929, 918, 782, 783, 908, 909, 933, 910,
+ 785, 786, 930, 931, 779, 780, 784, 932, 934, 655,
656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 920, 767, 766, 0,
- 773, 774, 0, 803, 804, 806, 812, 813, 814, 825,
- 872, 873, 881, 883, 884, 882, 885, 886, 887, 890,
- 891, 892, 893, 888, 889, 894, 786, 790, 787, 788,
- 789, 801, 791, 792, 793, 794, 795, 796, 797, 798,
- 799, 800, 802, 943, 944, 945, 946, 947, 948, 818,
- 822, 821, 819, 820, 816, 817, 844, 843, 845, 846,
- 847, 848, 849, 850, 852, 851, 853, 854, 855, 856,
- 857, 858, 826, 827, 830, 831, 829, 828, 832, 841,
- 842, 833, 834, 835, 836, 837, 838, 840, 839, 859,
- 860, 861, 862, 863, 865, 864, 868, 869, 867, 866,
- 871, 870, 765, 196, 221, 368, 0, 454, 288, 650,
- 618, 484, 613, 206, 223, 934, 262, 935, 0, 0,
- 939, 0, 0, 0, 941, 940, 0, 942, 904, 903,
- 0, 0, 936, 937, 0, 938, 0, 0, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 949, 950, 951, 952, 953, 954, 955, 956, 300, 600,
- 633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
- 305, 320, 0, 617, 502, 227, 466, 290, 251, 974,
- 0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 0, 528, 0, 777, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
- 764, 0, 0, 0, 270, 769, 0, 0, 0, 366,
- 267, 0, 0, 204, 505, 0, 430, 0, 203, 0,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 776, 370, 0, 0, 497, 401,
- 0, 0, 0, 0, 0, 0, 0, 0, 771, 772,
- 0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 95, 0, 0, 1023,
- 507, 959, 748, 925, 963, 1024, 976, 977, 978, 964,
- 0, 238, 965, 966, 245, 967, 0, 924, 807, 809,
- 808, 874, 875, 876, 877, 878, 879, 880, 810, 811,
- 805, 972, 609, 979, 980, 0, 265, 321, 272, 264,
- 580, 0, 0, 0, 0, 0, 0, 596, 0, 0,
- 229, 0, 0, 0, 0, 0, 0, 0, 744, 761,
- 0, 775, 0, 0, 0, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 758, 759, 0, 0, 0, 0, 919, 0,
- 760, 0, 0, 768, 981, 982, 983, 984, 985, 986,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 921, 768, 767,
+ 0, 774, 775, 0, 804, 805, 807, 813, 814, 815,
+ 826, 873, 874, 882, 884, 885, 883, 886, 887, 888,
+ 891, 892, 893, 894, 889, 890, 895, 787, 791, 788,
+ 789, 790, 802, 792, 793, 794, 795, 796, 797, 798,
+ 799, 800, 801, 803, 944, 945, 946, 947, 948, 949,
+ 819, 823, 822, 820, 821, 817, 818, 845, 844, 846,
+ 847, 848, 849, 850, 851, 853, 852, 854, 855, 856,
+ 857, 858, 859, 827, 828, 831, 832, 830, 829, 833,
+ 842, 843, 834, 835, 836, 837, 838, 839, 841, 840,
+ 860, 861, 862, 863, 864, 866, 865, 869, 870, 868,
+ 867, 872, 871, 766, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 935, 263, 936, 0,
+ 0, 940, 0, 0, 0, 942, 941, 0, 943, 905,
+ 904, 0, 0, 937, 938, 0, 939, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 950, 951, 952, 953, 954, 955, 956, 957, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 975, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 778, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 765, 0, 0, 0, 271, 770, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 777, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 772,
+ 773, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 95, 0, 0,
+ 1024, 508, 960, 749, 926, 964, 1025, 977, 978, 979,
+ 965, 0, 238, 966, 967, 245, 968, 0, 925, 808,
+ 810, 809, 875, 876, 877, 878, 879, 880, 881, 811,
+ 812, 806, 973, 610, 980, 981, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 745,
+ 762, 0, 776, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 759, 760, 0, 0, 0, 0, 920,
+ 0, 761, 0, 0, 769, 982, 983, 984, 985, 986,
987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
- 1017, 1018, 1019, 1020, 1021, 1022, 770, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
- 257, 0, 453, 918, 0, 0, 629, 0, 0, 916,
- 0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
- 0, 412, 461, 473, 0, 0, 0, 969, 0, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
- 0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 970, 971, 256,
- 652, 815, 622, 220, 0, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 823, 824, 280, 307,
- 900, 899, 898, 306, 308, 896, 897, 895, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 0, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 0, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 0, 0, 425, 472, 240, 606,
- 496, 906, 928, 917, 781, 782, 907, 908, 932, 909,
- 784, 785, 929, 930, 778, 779, 783, 931, 933, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 920, 767, 766,
- 0, 773, 774, 0, 803, 804, 806, 812, 813, 814,
- 825, 872, 873, 881, 883, 884, 882, 885, 886, 887,
- 890, 891, 892, 893, 888, 889, 894, 786, 790, 787,
- 788, 789, 801, 791, 792, 793, 794, 795, 796, 797,
- 798, 799, 800, 802, 943, 944, 945, 946, 947, 948,
- 818, 822, 821, 819, 820, 816, 817, 844, 843, 845,
- 846, 847, 848, 849, 850, 852, 851, 853, 854, 855,
- 856, 857, 858, 826, 827, 830, 831, 829, 828, 832,
- 841, 842, 833, 834, 835, 836, 837, 838, 840, 839,
- 859, 860, 861, 862, 863, 865, 864, 868, 869, 867,
- 866, 871, 870, 765, 196, 221, 368, 0, 454, 288,
- 650, 618, 484, 613, 206, 223, 934, 262, 935, 0,
- 0, 939, 0, 0, 0, 941, 940, 0, 942, 904,
- 903, 0, 0, 936, 937, 0, 938, 0, 0, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 949, 950, 951, 952, 953, 954, 955, 956, 300,
- 600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
- 281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
- 974, 0, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
- 577, 316, 0, 0, 0, 528, 0, 777, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 0, 764, 0, 0, 0, 270, 769, 0, 0, 0,
- 366, 267, 0, 0, 204, 505, 0, 430, 0, 203,
- 0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
- 317, 385, 428, 518, 422, 776, 370, 0, 0, 497,
- 401, 0, 0, 0, 0, 0, 0, 0, 0, 771,
- 772, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 95, 0, 0,
- 1023, 507, 959, 748, 925, 963, 1024, 976, 977, 978,
- 964, 0, 238, 965, 966, 245, 967, 0, 924, 807,
- 809, 808, 874, 875, 876, 877, 878, 879, 880, 810,
- 811, 805, 972, 609, 979, 980, 0, 265, 321, 272,
- 264, 580, 0, 0, 0, 0, 0, 0, 596, 0,
- 0, 229, 0, 0, 0, 0, 0, 0, 0, 744,
- 761, 0, 775, 0, 0, 0, 275, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 758, 759, 0, 0, 0, 0, 919,
- 0, 760, 0, 0, 768, 981, 982, 983, 984, 985,
- 986, 987, 988, 989, 990, 991, 992, 993, 994, 995,
- 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
- 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
- 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3171, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 918, 0, 0, 629, 0, 0,
- 916, 0, 0, 0, 0, 365, 0, 330, 197, 225,
- 0, 0, 412, 461, 473, 0, 0, 0, 969, 0,
- 471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
- 406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
- 494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
- 224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
- 643, 213, 517, 598, 239, 483, 0, 0, 651, 247,
- 504, 610, 599, 215, 594, 503, 393, 326, 327, 214,
- 0, 457, 268, 293, 0, 0, 258, 415, 970, 971,
- 256, 652, 815, 622, 220, 0, 621, 408, 584, 595,
- 394, 383, 219, 593, 392, 382, 334, 823, 824, 280,
- 307, 900, 899, 898, 306, 308, 896, 897, 895, 207,
- 608, 626, 0, 208, 0, 499, 611, 653, 452, 212,
- 234, 235, 237, 0, 279, 283, 291, 294, 303, 304,
- 313, 367, 419, 446, 442, 451, 0, 579, 602, 616,
- 628, 634, 635, 637, 638, 639, 640, 641, 644, 642,
- 407, 311, 495, 333, 373, 0, 0, 425, 472, 240,
- 606, 496, 906, 928, 917, 781, 782, 907, 908, 932,
- 909, 784, 785, 929, 930, 778, 779, 783, 931, 933,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
- 664, 665, 666, 667, 668, 669, 670, 671, 649, 508,
- 514, 509, 510, 511, 512, 513, 0, 515, 920, 767,
- 766, 0, 773, 774, 0, 803, 804, 806, 812, 813,
- 814, 825, 872, 873, 881, 883, 884, 882, 885, 886,
- 887, 890, 891, 892, 893, 888, 889, 894, 786, 790,
- 787, 788, 789, 801, 791, 792, 793, 794, 795, 796,
- 797, 798, 799, 800, 802, 943, 944, 945, 946, 947,
- 948, 818, 822, 821, 819, 820, 816, 817, 844, 843,
- 845, 846, 847, 848, 849, 850, 852, 851, 853, 854,
- 855, 856, 857, 858, 826, 827, 830, 831, 829, 828,
- 832, 841, 842, 833, 834, 835, 836, 837, 838, 840,
- 839, 859, 860, 861, 862, 863, 865, 864, 868, 869,
- 867, 866, 871, 870, 765, 196, 221, 368, 0, 454,
- 288, 650, 618, 484, 613, 206, 223, 934, 262, 935,
- 0, 0, 939, 0, 0, 0, 941, 940, 0, 942,
- 904, 903, 0, 0, 936, 937, 0, 938, 0, 0,
- 198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
- 285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
- 388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
- 424, 427, 431, 435, 436, 437, 439, 441, 443, 455,
- 460, 474, 475, 476, 477, 478, 481, 482, 488, 489,
- 490, 491, 492, 500, 501, 516, 586, 588, 605, 625,
- 632, 480, 949, 950, 951, 952, 953, 954, 955, 956,
- 300, 600, 633, 597, 645, 627, 438, 378, 0, 0,
- 381, 281, 305, 320, 0, 617, 502, 227, 466, 290,
- 251, 974, 0, 211, 246, 230, 259, 274, 277, 324,
- 391, 400, 429, 434, 296, 271, 244, 459, 241, 485,
- 519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
- 576, 577, 316, 0, 0, 0, 528, 0, 777, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 0, 764, 0, 0, 0, 270, 769, 0, 0,
- 0, 366, 267, 0, 0, 204, 505, 0, 430, 0,
- 203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 776, 370, 0, 0,
- 497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 771, 772, 0, 0, 0, 0, 0, 0, 0, 0,
- 323, 248, 325, 202, 413, 498, 286, 0, 95, 0,
- 0, 1023, 507, 959, 748, 925, 963, 1024, 976, 977,
- 978, 964, 0, 238, 965, 966, 245, 967, 0, 924,
- 807, 809, 808, 874, 875, 876, 877, 878, 879, 880,
- 810, 811, 805, 972, 609, 979, 980, 0, 265, 321,
- 272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 744, 761, 0, 775, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 758, 759, 0, 0, 0, 0,
- 919, 0, 760, 0, 0, 768, 981, 982, 983, 984,
+ 1017, 1018, 1019, 1020, 1021, 1022, 1023, 3174, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 919, 0, 0, 630, 0, 0,
+ 917, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 970, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 971,
+ 972, 257, 653, 816, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 824, 825,
+ 281, 308, 901, 900, 899, 307, 309, 897, 898, 896,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 907, 929, 918, 782, 783, 908, 909,
+ 933, 910, 785, 786, 930, 931, 779, 780, 784, 932,
+ 934, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 921,
+ 768, 767, 0, 774, 775, 0, 804, 805, 807, 813,
+ 814, 815, 826, 873, 874, 882, 884, 885, 883, 886,
+ 887, 888, 891, 892, 893, 894, 889, 890, 895, 787,
+ 791, 788, 789, 790, 802, 792, 793, 794, 795, 796,
+ 797, 798, 799, 800, 801, 803, 944, 945, 946, 947,
+ 948, 949, 819, 823, 822, 820, 821, 817, 818, 845,
+ 844, 846, 847, 848, 849, 850, 851, 853, 852, 854,
+ 855, 856, 857, 858, 859, 827, 828, 831, 832, 830,
+ 829, 833, 842, 843, 834, 835, 836, 837, 838, 839,
+ 841, 840, 860, 861, 862, 863, 864, 866, 865, 869,
+ 870, 868, 867, 872, 871, 766, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 935, 263,
+ 936, 0, 0, 940, 0, 0, 0, 942, 941, 0,
+ 943, 905, 904, 0, 0, 937, 938, 0, 939, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 950, 951, 952, 953, 954, 955, 956,
+ 957, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 975, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 778,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 765, 0, 0, 0, 271, 770, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 777, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 772, 773, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 95,
+ 0, 0, 1024, 508, 960, 749, 926, 964, 1025, 977,
+ 978, 979, 965, 0, 238, 966, 967, 245, 968, 0,
+ 925, 808, 810, 809, 875, 876, 877, 878, 879, 880,
+ 881, 811, 812, 806, 973, 610, 980, 981, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 745, 762, 0, 776, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 759, 760, 0, 0, 0,
+ 0, 920, 0, 761, 0, 0, 769, 982, 983, 984,
985, 986, 987, 988, 989, 990, 991, 992, 993, 994,
995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
- 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3167, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 918, 0, 0, 629, 0,
- 0, 916, 0, 0, 0, 0, 365, 0, 330, 197,
- 225, 0, 0, 412, 461, 473, 0, 0, 0, 969,
- 0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 970,
- 971, 256, 652, 815, 622, 220, 0, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 823, 824,
- 280, 307, 900, 899, 898, 306, 308, 896, 897, 895,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 0, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 0, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 0, 0, 425, 472,
- 240, 606, 496, 906, 928, 917, 781, 782, 907, 908,
- 932, 909, 784, 785, 929, 930, 778, 779, 783, 931,
- 933, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 920,
- 767, 766, 0, 773, 774, 0, 803, 804, 806, 812,
- 813, 814, 825, 872, 873, 881, 883, 884, 882, 885,
- 886, 887, 890, 891, 892, 893, 888, 889, 894, 786,
- 790, 787, 788, 789, 801, 791, 792, 793, 794, 795,
- 796, 797, 798, 799, 800, 802, 943, 944, 945, 946,
- 947, 948, 818, 822, 821, 819, 820, 816, 817, 844,
- 843, 845, 846, 847, 848, 849, 850, 852, 851, 853,
- 854, 855, 856, 857, 858, 826, 827, 830, 831, 829,
- 828, 832, 841, 842, 833, 834, 835, 836, 837, 838,
- 840, 839, 859, 860, 861, 862, 863, 865, 864, 868,
- 869, 867, 866, 871, 870, 765, 196, 221, 368, 0,
- 454, 288, 650, 618, 484, 613, 206, 223, 934, 262,
- 935, 0, 0, 939, 0, 0, 0, 941, 940, 0,
- 942, 904, 903, 0, 0, 936, 937, 0, 938, 0,
- 0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 949, 950, 951, 952, 953, 954, 955,
- 956, 300, 600, 633, 597, 645, 627, 438, 378, 0,
- 0, 381, 281, 305, 320, 0, 617, 502, 227, 466,
- 290, 251, 974, 0, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
- 376, 576, 577, 316, 0, 0, 0, 528, 0, 777,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 0, 764, 0, 0, 0, 270, 769, 0,
- 0, 0, 366, 267, 0, 0, 204, 505, 0, 430,
- 0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 776, 370, 0,
- 0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 771, 772, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 95,
- 0, 0, 1023, 507, 959, 1090, 925, 963, 1024, 976,
- 977, 978, 964, 0, 238, 965, 966, 245, 967, 0,
- 924, 807, 809, 808, 874, 875, 876, 877, 878, 879,
- 880, 810, 811, 805, 972, 609, 979, 980, 0, 265,
- 321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
- 596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
- 0, 0, 761, 0, 775, 0, 0, 0, 275, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 758, 759, 0, 0, 0,
- 0, 919, 0, 760, 0, 0, 768, 981, 982, 983,
- 984, 985, 986, 987, 988, 989, 990, 991, 992, 993,
- 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003,
- 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
- 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 770,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 402, 257, 0, 453, 918, 0, 0, 629,
- 0, 0, 916, 0, 0, 0, 0, 365, 0, 330,
- 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
- 969, 0, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 970, 971, 256, 652, 815, 622, 220, 0, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 823,
- 824, 280, 307, 900, 899, 898, 306, 308, 896, 897,
- 895, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 0, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 0, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 0, 0, 425,
- 472, 240, 606, 496, 906, 928, 917, 781, 782, 907,
- 908, 932, 909, 784, 785, 929, 930, 778, 779, 783,
- 931, 933, 654, 655, 656, 657, 658, 659, 660, 661,
+ 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 3170,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 919, 0, 0, 630,
+ 0, 0, 917, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 970, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 971, 972, 257, 653, 816, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 824, 825, 281, 308, 901, 900, 899, 307, 309, 897,
+ 898, 896, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 907, 929, 918, 782, 783,
+ 908, 909, 933, 910, 785, 786, 930, 931, 779, 780,
+ 784, 932, 934, 655, 656, 657, 658, 659, 660, 661,
662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 920, 767, 766, 0, 773, 774, 0, 803, 804, 806,
- 812, 813, 814, 825, 872, 873, 881, 883, 884, 882,
- 885, 886, 887, 890, 891, 892, 893, 888, 889, 894,
- 786, 790, 787, 788, 789, 801, 791, 792, 793, 794,
- 795, 796, 797, 798, 799, 800, 802, 943, 944, 945,
- 946, 947, 948, 818, 822, 821, 819, 820, 816, 817,
- 844, 843, 845, 846, 847, 848, 849, 850, 852, 851,
- 853, 854, 855, 856, 857, 858, 826, 827, 830, 831,
- 829, 828, 832, 841, 842, 833, 834, 835, 836, 837,
- 838, 840, 839, 859, 860, 861, 862, 863, 865, 864,
- 868, 869, 867, 866, 871, 870, 765, 196, 221, 368,
- 0, 454, 288, 650, 618, 484, 613, 206, 223, 934,
- 262, 935, 0, 0, 939, 0, 0, 0, 941, 940,
- 0, 942, 904, 903, 0, 0, 936, 937, 0, 938,
- 0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 949, 950, 951, 952, 953, 954,
- 955, 956, 300, 600, 633, 597, 645, 627, 438, 378,
- 0, 0, 381, 281, 305, 320, 0, 617, 502, 227,
- 466, 290, 251, 974, 0, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
- 0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 777, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 764, 0, 0, 0, 270, 769,
- 0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 776, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 771, 772, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 95, 0, 0, 1023, 507, 959, 1090, 925, 963, 1024,
- 976, 977, 978, 964, 0, 238, 965, 966, 245, 967,
- 0, 924, 807, 809, 808, 874, 875, 876, 877, 878,
- 879, 880, 810, 811, 805, 972, 609, 979, 980, 0,
- 265, 321, 272, 264, 580, 0, 0, 0, 0, 0,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 0, 761, 0, 775, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 758, 759, 0, 0,
- 0, 0, 919, 0, 760, 0, 0, 768, 981, 982,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 921, 768, 767, 0, 774, 775, 0, 804, 805,
+ 807, 813, 814, 815, 826, 873, 874, 882, 884, 885,
+ 883, 886, 887, 888, 891, 892, 893, 894, 889, 890,
+ 895, 787, 791, 788, 789, 790, 802, 792, 793, 794,
+ 795, 796, 797, 798, 799, 800, 801, 803, 944, 945,
+ 946, 947, 948, 949, 819, 823, 822, 820, 821, 817,
+ 818, 845, 844, 846, 847, 848, 849, 850, 851, 853,
+ 852, 854, 855, 856, 857, 858, 859, 827, 828, 831,
+ 832, 830, 829, 833, 842, 843, 834, 835, 836, 837,
+ 838, 839, 841, 840, 860, 861, 862, 863, 864, 866,
+ 865, 869, 870, 868, 867, 872, 871, 766, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 935, 263, 936, 0, 0, 940, 0, 0, 0, 942,
+ 941, 0, 943, 905, 904, 0, 0, 937, 938, 0,
+ 939, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 950, 951, 952, 953, 954,
+ 955, 956, 957, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 975, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 778, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 765, 0, 0, 0, 271,
+ 770, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 777,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 772, 773, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 95, 0, 0, 1024, 508, 960, 1091, 926, 964,
+ 1025, 977, 978, 979, 965, 0, 238, 966, 967, 245,
+ 968, 0, 925, 808, 810, 809, 875, 876, 877, 878,
+ 879, 880, 881, 811, 812, 806, 973, 610, 980, 981,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 0, 762, 0, 776, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 759, 760, 0,
+ 0, 0, 0, 920, 0, 761, 0, 0, 769, 982,
983, 984, 985, 986, 987, 988, 989, 990, 991, 992,
993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 918, 0, 0,
- 629, 0, 0, 916, 0, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 969, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 970, 971, 256, 652, 815, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 823, 824, 280, 307, 900, 899, 898, 306, 308, 896,
- 897, 895, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 906, 928, 917, 781, 782,
- 907, 908, 932, 909, 784, 785, 929, 930, 778, 779,
- 783, 931, 933, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 920, 767, 766, 0, 773, 774, 0, 803, 804,
- 806, 812, 813, 814, 825, 872, 873, 881, 883, 884,
- 882, 885, 886, 887, 890, 891, 892, 893, 888, 889,
- 894, 786, 790, 787, 788, 789, 801, 791, 792, 793,
- 794, 795, 796, 797, 798, 799, 800, 802, 943, 944,
- 945, 946, 947, 948, 818, 822, 821, 819, 820, 816,
- 817, 844, 843, 845, 846, 847, 848, 849, 850, 852,
- 851, 853, 854, 855, 856, 857, 858, 826, 827, 830,
- 831, 829, 828, 832, 841, 842, 833, 834, 835, 836,
- 837, 838, 840, 839, 859, 860, 861, 862, 863, 865,
- 864, 868, 869, 867, 866, 871, 870, 765, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 934, 262, 935, 0, 0, 939, 0, 0, 0, 941,
- 940, 0, 942, 904, 903, 0, 0, 936, 937, 0,
- 938, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 949, 950, 951, 952, 953,
- 954, 955, 956, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 974, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 777, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 764, 0, 0, 0, 270,
- 769, 0, 0, 0, 366, 267, 0, 0, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 776,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 771, 772, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 95, 0, 0, 1023, 507, 959, 1090, 925, 963,
- 1024, 976, 977, 978, 964, 0, 238, 965, 966, 245,
- 967, 0, 924, 807, 809, 808, 874, 875, 876, 877,
- 878, 879, 880, 810, 811, 805, 972, 609, 979, 980,
- 0, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
- 0, 0, 0, 0, 761, 0, 775, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 758, 759, 0,
- 0, 0, 0, 919, 0, 760, 0, 0, 768, 981,
- 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
- 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
- 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
- 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 2121, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 918, 0,
- 0, 629, 0, 0, 916, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 969, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 970, 971, 256, 652, 815, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 823, 824, 280, 307, 900, 899, 898, 306, 308,
- 896, 897, 895, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 906, 928, 917, 781,
- 782, 907, 908, 932, 909, 784, 785, 929, 930, 778,
- 779, 783, 931, 933, 654, 655, 656, 657, 658, 659,
+ 1023, 771, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 919, 0,
+ 0, 630, 0, 0, 917, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 970, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 971, 972, 257, 653, 816, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 824, 825, 281, 308, 901, 900, 899, 307,
+ 309, 897, 898, 896, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 907, 929, 918,
+ 782, 783, 908, 909, 933, 910, 785, 786, 930, 931,
+ 779, 780, 784, 932, 934, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 921, 768, 767, 0, 774, 775, 0,
+ 804, 805, 807, 813, 814, 815, 826, 873, 874, 882,
+ 884, 885, 883, 886, 887, 888, 891, 892, 893, 894,
+ 889, 890, 895, 787, 791, 788, 789, 790, 802, 792,
+ 793, 794, 795, 796, 797, 798, 799, 800, 801, 803,
+ 944, 945, 946, 947, 948, 949, 819, 823, 822, 820,
+ 821, 817, 818, 845, 844, 846, 847, 848, 849, 850,
+ 851, 853, 852, 854, 855, 856, 857, 858, 859, 827,
+ 828, 831, 832, 830, 829, 833, 842, 843, 834, 835,
+ 836, 837, 838, 839, 841, 840, 860, 861, 862, 863,
+ 864, 866, 865, 869, 870, 868, 867, 872, 871, 766,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 935, 263, 936, 0, 0, 940, 0, 0,
+ 0, 942, 941, 0, 943, 905, 904, 0, 0, 937,
+ 938, 0, 939, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 950, 951, 952,
+ 953, 954, 955, 956, 957, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 975, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 778, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 765, 0, 0,
+ 0, 271, 770, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 777, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 772, 773, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 95, 0, 0, 1024, 508, 960, 1091,
+ 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966,
+ 967, 245, 968, 0, 925, 808, 810, 809, 875, 876,
+ 877, 878, 879, 880, 881, 811, 812, 806, 973, 610,
+ 980, 981, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 0, 762, 0, 776, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 759,
+ 760, 0, 0, 0, 0, 920, 0, 761, 0, 0,
+ 769, 982, 983, 984, 985, 986, 987, 988, 989, 990,
+ 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
+ 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
+ 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
+ 1021, 1022, 1023, 2124, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 919, 0, 0, 630, 0, 0, 917, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 970, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 971, 972, 257, 653, 816,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 824, 825, 281, 308, 901, 900,
+ 899, 307, 309, 897, 898, 896, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 907,
+ 929, 918, 782, 783, 908, 909, 933, 910, 785, 786,
+ 930, 931, 779, 780, 784, 932, 934, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 921, 768, 767, 0, 774,
+ 775, 0, 804, 805, 807, 813, 814, 815, 826, 873,
+ 874, 882, 884, 885, 883, 886, 887, 888, 891, 892,
+ 893, 894, 889, 890, 895, 787, 791, 788, 789, 790,
+ 802, 792, 793, 794, 795, 796, 797, 798, 799, 800,
+ 801, 803, 944, 945, 946, 947, 948, 949, 819, 823,
+ 822, 820, 821, 817, 818, 845, 844, 846, 847, 848,
+ 849, 850, 851, 853, 852, 854, 855, 856, 857, 858,
+ 859, 827, 828, 831, 832, 830, 829, 833, 842, 843,
+ 834, 835, 836, 837, 838, 839, 841, 840, 860, 861,
+ 862, 863, 864, 866, 865, 869, 870, 868, 867, 872,
+ 871, 766, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 935, 263, 936, 0, 0, 940,
+ 0, 0, 0, 942, 941, 0, 943, 905, 904, 0,
+ 0, 937, 938, 0, 939, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 950,
+ 951, 952, 953, 954, 955, 956, 957, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 975, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 778, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 765,
+ 0, 0, 0, 271, 770, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 777, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 772, 773, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508,
+ 960, 1091, 926, 964, 1025, 977, 978, 979, 965, 0,
+ 238, 966, 967, 245, 968, 0, 925, 808, 810, 809,
+ 875, 876, 877, 878, 879, 880, 881, 811, 812, 806,
+ 973, 610, 980, 981, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 762, 0,
+ 776, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 759, 760, 0, 0, 0, 0, 920, 0, 761,
+ 0, 0, 769, 982, 983, 984, 985, 986, 987, 988,
+ 989, 990, 991, 992, 993, 994, 995, 996, 997, 998,
+ 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
+ 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
+ 1019, 1020, 1021, 1022, 1023, 2122, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 919, 0, 0, 630, 0, 0, 917, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 970, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 971, 972, 257,
+ 653, 816, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 824, 825, 281, 308,
+ 901, 900, 899, 307, 309, 897, 898, 896, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 907, 929, 918, 782, 783, 908, 909, 933, 910,
+ 785, 786, 930, 931, 779, 780, 784, 932, 934, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 921, 768, 767,
+ 0, 774, 775, 0, 804, 805, 807, 813, 814, 815,
+ 826, 873, 874, 882, 884, 885, 883, 886, 887, 888,
+ 891, 892, 893, 894, 889, 890, 895, 787, 791, 788,
+ 789, 790, 802, 792, 793, 794, 795, 796, 797, 798,
+ 799, 800, 801, 803, 944, 945, 946, 947, 948, 949,
+ 819, 823, 822, 820, 821, 817, 818, 845, 844, 846,
+ 847, 848, 849, 850, 851, 853, 852, 854, 855, 856,
+ 857, 858, 859, 827, 828, 831, 832, 830, 829, 833,
+ 842, 843, 834, 835, 836, 837, 838, 839, 841, 840,
+ 860, 861, 862, 863, 864, 866, 865, 869, 870, 868,
+ 867, 872, 871, 766, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 935, 263, 936, 0,
+ 0, 940, 0, 0, 0, 942, 941, 0, 943, 905,
+ 904, 0, 0, 937, 938, 0, 939, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 950, 951, 952, 953, 954, 955, 956, 957, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 975, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 725, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 1142, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 1141, 630, 0, 0,
+ 0, 0, 0, 1138, 1139, 366, 1099, 331, 197, 225,
+ 1132, 1136, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 86, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 95,
+ 0, 0, 0, 508, 194, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 94, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 2427, 0,
+ 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 1777, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 1779, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 1781, 508, 725, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 1480,
+ 0, 1481, 1482, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 920, 767, 766, 0, 773, 774, 0, 803,
- 804, 806, 812, 813, 814, 825, 872, 873, 881, 883,
- 884, 882, 885, 886, 887, 890, 891, 892, 893, 888,
- 889, 894, 786, 790, 787, 788, 789, 801, 791, 792,
- 793, 794, 795, 796, 797, 798, 799, 800, 802, 943,
- 944, 945, 946, 947, 948, 818, 822, 821, 819, 820,
- 816, 817, 844, 843, 845, 846, 847, 848, 849, 850,
- 852, 851, 853, 854, 855, 856, 857, 858, 826, 827,
- 830, 831, 829, 828, 832, 841, 842, 833, 834, 835,
- 836, 837, 838, 840, 839, 859, 860, 861, 862, 863,
- 865, 864, 868, 869, 867, 866, 871, 870, 765, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 934, 262, 935, 0, 0, 939, 0, 0, 0,
- 941, 940, 0, 942, 904, 903, 0, 0, 936, 937,
- 0, 938, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 949, 950, 951, 952,
- 953, 954, 955, 956, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 974, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
- 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 0, 507, 724, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
- 0, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 1141, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 0,
- 0, 1140, 629, 0, 0, 0, 0, 0, 1137, 1138,
- 365, 1098, 330, 197, 225, 1131, 1135, 412, 461, 473,
- 0, 0, 0, 253, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 199, 0, 0,
- 0, 0, 254, 255, 0, 575, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 0, 0, 0, 0, 0, 398, 0,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 0, 454, 288, 650, 618, 484, 613,
- 206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 0, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 86, 528, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 0, 270, 0, 0, 0, 0, 366, 267, 0, 0,
- 204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 95, 0, 0, 0, 507, 194, 0,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 86, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 95, 0, 1754, 0, 508, 725, 0,
0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
- 342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
- 0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
- 0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4491,1184 +4677,963 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 0, 402, 257, 0, 453,
- 0, 0, 0, 629, 0, 0, 0, 0, 0, 0,
- 0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
- 473, 0, 0, 0, 253, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 0, 0, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 589, 590, 256, 652, 228, 622,
- 220, 0, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 355, 356, 280, 307, 447, 375, 448,
- 306, 308, 404, 403, 405, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 0,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 0, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 0, 0, 425, 472, 240, 606, 496, 199, 0,
- 0, 0, 0, 254, 255, 0, 575, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 654, 655, 656, 657,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 0, 0, 0, 0, 0, 398,
- 0, 591, 592, 672, 384, 486, 603, 335, 349, 352,
- 341, 361, 0, 362, 337, 338, 343, 346, 347, 348,
- 353, 354, 358, 364, 249, 210, 390, 399, 578, 312,
- 216, 217, 218, 524, 525, 526, 527, 619, 620, 624,
- 205, 462, 463, 464, 465, 292, 614, 309, 468, 467,
- 331, 332, 379, 449, 540, 542, 553, 557, 559, 561,
- 567, 570, 541, 543, 554, 558, 560, 562, 568, 571,
- 530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
- 556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
- 546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 94, 454, 288, 650, 618, 484,
- 613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
- 0, 2426, 0, 0, 2425, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 301, 302,
- 444, 445, 314, 315, 646, 647, 300, 600, 633, 597,
- 645, 627, 438, 378, 0, 0, 381, 281, 305, 320,
- 0, 617, 502, 227, 466, 290, 251, 0, 0, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 1776, 0, 376, 576, 577, 316, 0,
- 0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 1778, 0, 0,
- 0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
- 0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 1780, 507, 724,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
- 340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
- 609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
- 0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 1479, 0, 1480, 1481, 0, 0, 0, 0,
- 0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 297, 0, 402, 257, 0,
- 453, 0, 0, 0, 629, 0, 0, 0, 0, 0,
- 0, 0, 365, 0, 330, 197, 225, 0, 0, 412,
- 461, 473, 0, 0, 0, 253, 0, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 0, 0, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 589, 590, 256, 652, 228,
- 622, 220, 0, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 355, 356, 280, 307, 447, 375,
- 448, 306, 308, 404, 403, 405, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 0, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 0, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 0, 0, 425, 472, 240, 606, 496, 199,
- 0, 0, 0, 0, 254, 255, 0, 575, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 0, 0, 0, 0, 0,
- 398, 0, 591, 592, 672, 384, 486, 603, 335, 349,
- 352, 341, 361, 0, 362, 337, 338, 343, 346, 347,
- 348, 353, 354, 358, 364, 249, 210, 390, 399, 578,
- 312, 216, 217, 218, 524, 525, 526, 527, 619, 620,
- 624, 205, 462, 463, 464, 465, 292, 614, 309, 468,
- 467, 331, 332, 379, 449, 540, 542, 553, 557, 559,
- 561, 567, 570, 541, 543, 554, 558, 560, 562, 568,
- 571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
- 551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
- 537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 0, 196, 221, 368, 0, 454, 288, 650, 618,
- 484, 613, 206, 223, 0, 262, 0, 0, 0, 0,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 94, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 301,
- 302, 444, 445, 314, 315, 646, 647, 300, 600, 633,
- 597, 645, 627, 438, 378, 0, 0, 381, 281, 305,
- 320, 0, 617, 502, 227, 466, 290, 251, 0, 0,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
- 0, 0, 86, 528, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
- 0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
- 0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 95, 0, 1753, 0, 507,
- 724, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
- 339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
- 0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
- 0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 402, 257,
- 0, 453, 0, 0, 0, 629, 0, 0, 0, 0,
- 0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
- 412, 461, 473, 0, 0, 0, 253, 0, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 0, 0,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 589, 590, 256, 652,
- 228, 622, 220, 0, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 355, 356, 280, 307, 447,
- 375, 448, 306, 308, 404, 403, 405, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 0, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 0, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 0, 0, 425, 472, 240, 606, 496,
- 199, 0, 0, 0, 0, 254, 255, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 654, 655,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 95, 0, 0, 0, 508,
+ 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 0, 0, 0, 0,
- 0, 398, 0, 591, 592, 672, 384, 486, 603, 335,
- 349, 352, 341, 361, 0, 362, 337, 338, 343, 346,
- 347, 348, 353, 354, 358, 364, 249, 210, 390, 399,
- 578, 312, 216, 217, 218, 524, 525, 526, 527, 619,
- 620, 624, 205, 462, 463, 464, 465, 292, 614, 309,
- 468, 467, 331, 332, 379, 449, 540, 542, 553, 557,
- 559, 561, 567, 570, 541, 543, 554, 558, 560, 562,
- 568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
- 574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
- 533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 0, 196, 221, 368, 94, 454, 288, 650,
- 618, 484, 613, 206, 223, 0, 262, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 300, 600,
- 633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
- 305, 320, 0, 617, 502, 227, 466, 290, 251, 0,
- 0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
- 0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
- 267, 0, 0, 204, 505, 0, 430, 0, 203, 0,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 95, 0, 0, 0,
- 507, 194, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
- 359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
- 0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
- 580, 0, 0, 0, 0, 0, 0, 596, 0, 0,
- 229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
- 257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
- 0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
- 0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
- 0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 589, 590, 256,
- 652, 228, 622, 220, 0, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 355, 356, 280, 307,
- 447, 375, 448, 306, 308, 404, 403, 405, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 0, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 0, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 0, 0, 425, 472, 240, 606,
- 496, 199, 0, 0, 0, 0, 254, 255, 0, 575,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 0, 0, 0,
- 0, 0, 398, 0, 591, 592, 672, 384, 486, 603,
- 335, 349, 352, 341, 361, 0, 362, 337, 338, 343,
- 346, 347, 348, 353, 354, 358, 364, 249, 210, 390,
- 399, 578, 312, 216, 217, 218, 524, 525, 526, 527,
- 619, 620, 624, 205, 462, 463, 464, 465, 292, 614,
- 309, 468, 467, 331, 332, 379, 449, 540, 542, 553,
- 557, 559, 561, 567, 570, 541, 543, 554, 558, 560,
- 562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
- 573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
- 529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
- 650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
- 0, 0, 0, 0, 2426, 0, 0, 2425, 0, 0,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
+ 0, 0, 0, 0, 2427, 0, 0, 2426, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
- 600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
- 281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
- 0, 0, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
- 577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 2373, 0, 0, 0, 0, 270, 0, 0, 0, 0,
- 366, 267, 0, 0, 204, 505, 0, 430, 0, 203,
- 0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
- 317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
- 401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
- 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
- 360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
- 345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
- 264, 580, 0, 0, 0, 0, 0, 0, 596, 0,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 2374, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 1962, 508, 194, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 275, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 0, 0, 0, 629, 0, 0,
- 0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
- 0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
- 471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 2371, 470, 372, 585, 450, 601, 630, 631, 263,
- 406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
- 494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
- 224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
- 643, 213, 517, 598, 239, 483, 0, 0, 651, 247,
- 504, 610, 599, 215, 594, 503, 393, 326, 327, 214,
- 0, 457, 268, 293, 0, 0, 258, 415, 589, 590,
- 256, 652, 228, 622, 220, 0, 621, 408, 584, 595,
- 394, 383, 219, 593, 392, 382, 334, 355, 356, 280,
- 307, 447, 375, 448, 306, 308, 404, 403, 405, 207,
- 608, 626, 0, 208, 0, 499, 611, 653, 452, 212,
- 234, 235, 237, 0, 279, 283, 291, 294, 303, 304,
- 313, 367, 419, 446, 442, 451, 0, 579, 602, 616,
- 628, 634, 635, 637, 638, 639, 640, 641, 644, 642,
- 407, 311, 495, 333, 373, 0, 0, 425, 472, 240,
- 606, 496, 199, 0, 0, 0, 0, 254, 255, 0,
- 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
- 664, 665, 666, 667, 668, 669, 670, 671, 649, 508,
- 514, 509, 510, 511, 512, 513, 0, 515, 0, 0,
- 0, 0, 0, 398, 0, 591, 592, 672, 384, 486,
- 603, 335, 349, 352, 341, 361, 0, 362, 337, 338,
- 343, 346, 347, 348, 353, 354, 358, 364, 249, 210,
- 390, 399, 578, 312, 216, 217, 218, 524, 525, 526,
- 527, 619, 620, 624, 205, 462, 463, 464, 465, 292,
- 614, 309, 468, 467, 331, 332, 379, 449, 540, 542,
- 553, 557, 559, 561, 567, 570, 541, 543, 554, 558,
- 560, 562, 568, 571, 530, 532, 534, 536, 549, 548,
- 545, 573, 574, 551, 556, 535, 547, 552, 565, 572,
- 569, 529, 533, 537, 546, 564, 563, 544, 555, 566,
- 550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
- 288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
- 285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
- 388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
- 424, 427, 431, 435, 436, 437, 439, 441, 443, 455,
- 460, 474, 475, 476, 477, 478, 481, 482, 488, 489,
- 490, 491, 492, 500, 501, 516, 586, 588, 605, 625,
- 632, 480, 301, 302, 444, 445, 314, 315, 646, 647,
- 300, 600, 633, 597, 645, 627, 438, 378, 0, 0,
- 381, 281, 305, 320, 0, 617, 502, 227, 466, 290,
- 251, 0, 0, 211, 246, 230, 259, 274, 277, 324,
- 391, 400, 429, 434, 296, 271, 244, 459, 241, 485,
- 519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
- 576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
- 0, 366, 267, 0, 0, 204, 505, 0, 430, 0,
- 203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
- 497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
- 351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
- 336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
- 272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 0, 0, 0, 0, 365, 1098, 330, 197,
- 225, 1096, 0, 412, 461, 473, 0, 0, 0, 253,
- 0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 589,
- 590, 256, 652, 228, 622, 220, 0, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 355, 356,
- 280, 307, 447, 375, 448, 306, 308, 404, 403, 405,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 0, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 0, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 0, 0, 425, 472,
- 240, 606, 496, 199, 0, 0, 0, 0, 254, 255,
- 0, 575, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 0,
- 0, 0, 0, 0, 398, 0, 591, 592, 672, 384,
- 486, 603, 335, 349, 352, 341, 361, 0, 362, 337,
- 338, 343, 346, 347, 348, 353, 354, 358, 364, 249,
- 210, 390, 399, 578, 312, 216, 217, 218, 524, 525,
- 526, 527, 619, 620, 624, 205, 462, 463, 464, 465,
- 292, 614, 309, 468, 467, 331, 332, 379, 449, 540,
- 542, 553, 557, 559, 561, 567, 570, 541, 543, 554,
- 558, 560, 562, 568, 571, 530, 532, 534, 536, 549,
- 548, 545, 573, 574, 551, 556, 535, 547, 552, 565,
- 572, 569, 529, 533, 537, 546, 564, 563, 544, 555,
- 566, 550, 538, 531, 539, 0, 196, 221, 368, 0,
- 454, 288, 650, 618, 484, 613, 206, 223, 0, 262,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 301, 302, 444, 445, 314, 315, 646,
- 647, 300, 600, 633, 597, 645, 627, 438, 378, 0,
- 0, 381, 281, 305, 320, 0, 617, 502, 227, 466,
- 290, 251, 0, 0, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
- 376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 2373, 0, 0, 0, 0, 270, 0, 0,
- 0, 0, 366, 267, 0, 0, 204, 505, 0, 430,
- 0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
- 0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 0,
- 0, 0, 1961, 507, 194, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 2372, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 725, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
- 0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
- 363, 336, 345, 0, 0, 609, 0, 0, 0, 265,
- 321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
- 596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 1099, 331,
+ 197, 225, 1097, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 2374, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 1962, 508, 194, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 1754, 0, 508, 725, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
- 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
- 253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 589, 590, 256, 652, 228, 622, 220, 0, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 355,
- 356, 280, 307, 447, 375, 448, 306, 308, 404, 403,
- 405, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 0, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 0, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 0, 0, 425,
- 472, 240, 606, 496, 199, 0, 0, 0, 0, 254,
- 255, 0, 575, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 654, 655, 656, 657, 658, 659, 660, 661,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 3729, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 2133, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2134, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 2881, 508, 725, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2882, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 725, 0, 0, 0, 0, 2866,
+ 0, 0, 0, 0, 238, 0, 0, 245, 2867, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 0, 0, 0, 0, 0, 398, 0, 591, 592, 672,
- 384, 486, 603, 335, 349, 352, 341, 361, 0, 362,
- 337, 338, 343, 346, 347, 348, 353, 354, 358, 364,
- 249, 210, 390, 399, 578, 312, 216, 217, 218, 524,
- 525, 526, 527, 619, 620, 624, 205, 462, 463, 464,
- 465, 292, 614, 309, 468, 467, 331, 332, 379, 449,
- 540, 542, 553, 557, 559, 561, 567, 570, 541, 543,
- 554, 558, 560, 562, 568, 571, 530, 532, 534, 536,
- 549, 548, 545, 573, 574, 551, 556, 535, 547, 552,
- 565, 572, 569, 529, 533, 537, 546, 564, 563, 544,
- 555, 566, 550, 538, 531, 539, 0, 196, 221, 368,
- 0, 454, 288, 650, 618, 484, 613, 206, 223, 0,
- 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 301, 302, 444, 445, 314, 315,
- 646, 647, 300, 600, 633, 597, 645, 627, 438, 378,
- 0, 0, 381, 281, 305, 320, 0, 617, 502, 227,
- 466, 290, 251, 0, 0, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
- 0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
- 0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 1753, 0, 507, 724, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
- 0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
- 357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
- 265, 321, 272, 264, 580, 0, 0, 0, 0, 0,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 0, 0, 0,
- 629, 0, 0, 0, 3726, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 253, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 589, 590, 256, 652, 228, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 355, 356, 280, 307, 447, 375, 448, 306, 308, 404,
- 403, 405, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 199, 0, 0, 0, 0,
- 254, 255, 0, 575, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 0, 0, 0, 0, 0, 398, 0, 591, 592,
- 672, 384, 486, 603, 335, 349, 352, 341, 361, 0,
- 362, 337, 338, 343, 346, 347, 348, 353, 354, 358,
- 364, 249, 210, 390, 399, 578, 312, 216, 217, 218,
- 524, 525, 526, 527, 619, 620, 624, 205, 462, 463,
- 464, 465, 292, 614, 309, 468, 467, 331, 332, 379,
- 449, 540, 542, 553, 557, 559, 561, 567, 570, 541,
- 543, 554, 558, 560, 562, 568, 571, 530, 532, 534,
- 536, 549, 548, 545, 573, 574, 551, 556, 535, 547,
- 552, 565, 572, 569, 529, 533, 537, 546, 564, 563,
- 544, 555, 566, 550, 538, 531, 539, 0, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 0, 262, 0, 0, 0, 0, 0, 0, 0, 0,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 301, 302, 444, 445, 314,
- 315, 646, 647, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 0, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
- 0, 0, 0, 0, 366, 267, 0, 0, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 0,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 2132, 507, 724, 0, 0, 0,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 1800, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 1799, 508, 725, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
- 0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
- 350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
- 0, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2133, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 0, 0,
- 0, 629, 0, 0, 0, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 253, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 589, 590, 256, 652, 228, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 355, 356, 280, 307, 447, 375, 448, 306, 308,
- 404, 403, 405, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 199, 0, 0, 0,
- 0, 254, 255, 0, 575, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 654, 655, 656, 657, 658, 659,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 0, 0, 0, 0, 0, 398, 0, 591,
- 592, 672, 384, 486, 603, 335, 349, 352, 341, 361,
- 0, 362, 337, 338, 343, 346, 347, 348, 353, 354,
- 358, 364, 249, 210, 390, 399, 578, 312, 216, 217,
- 218, 524, 525, 526, 527, 619, 620, 624, 205, 462,
- 463, 464, 465, 292, 614, 309, 468, 467, 331, 332,
- 379, 449, 540, 542, 553, 557, 559, 561, 567, 570,
- 541, 543, 554, 558, 560, 562, 568, 571, 530, 532,
- 534, 536, 549, 548, 545, 573, 574, 551, 556, 535,
- 547, 552, 565, 572, 569, 529, 533, 537, 546, 564,
- 563, 544, 555, 566, 550, 538, 531, 539, 0, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 0, 262, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 301, 302, 444, 445,
- 314, 315, 646, 647, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 0, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
- 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 2879, 507, 724, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
- 0, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2880,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 0,
- 0, 0, 629, 0, 0, 0, 0, 0, 0, 0,
- 365, 0, 330, 197, 225, 0, 0, 412, 461, 473,
- 0, 0, 0, 253, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 199, 0, 0,
- 0, 0, 254, 255, 0, 575, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 0, 0, 0, 0, 0, 398, 0,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 0, 454, 288, 650, 618, 484, 613,
- 206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 0, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 0, 270, 0, 0, 0, 0, 366, 267, 0, 0,
- 204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 0, 507, 724, 0,
- 0, 0, 0, 2864, 0, 0, 0, 0, 238, 0,
- 0, 245, 2865, 0, 0, 351, 360, 359, 339, 340,
- 342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
- 0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
- 0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 0, 402, 257, 0, 453,
- 0, 0, 0, 629, 0, 0, 0, 0, 0, 0,
- 0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
- 473, 0, 0, 0, 253, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 0, 0, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 589, 590, 256, 652, 228, 622,
- 220, 0, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 355, 356, 280, 307, 447, 375, 448,
- 306, 308, 404, 403, 405, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 0,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 0, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 0, 0, 425, 472, 240, 606, 496, 199, 0,
- 0, 0, 0, 254, 255, 0, 575, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 654, 655, 656, 657,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 727, 728,
+ 729, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 0, 0, 0, 0, 0, 398,
- 0, 591, 592, 672, 384, 486, 603, 335, 349, 352,
- 341, 361, 0, 362, 337, 338, 343, 346, 347, 348,
- 353, 354, 358, 364, 249, 210, 390, 399, 578, 312,
- 216, 217, 218, 524, 525, 526, 527, 619, 620, 624,
- 205, 462, 463, 464, 465, 292, 614, 309, 468, 467,
- 331, 332, 379, 449, 540, 542, 553, 557, 559, 561,
- 567, 570, 541, 543, 554, 558, 560, 562, 568, 571,
- 530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
- 556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
- 546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 0, 454, 288, 650, 618, 484,
- 613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 301, 302,
- 444, 445, 314, 315, 646, 647, 300, 600, 633, 597,
- 645, 627, 438, 378, 0, 0, 381, 281, 305, 320,
- 0, 617, 502, 227, 466, 290, 251, 0, 0, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
- 0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
- 0, 0, 270, 1799, 0, 0, 0, 366, 267, 0,
- 0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 1798, 507, 724,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
- 340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
- 609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
- 0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 297, 0, 402, 257, 0,
- 453, 0, 0, 0, 629, 0, 0, 0, 0, 0,
- 0, 0, 365, 0, 330, 197, 225, 0, 0, 412,
- 461, 473, 0, 0, 0, 253, 0, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 0, 0, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 589, 590, 256, 652, 228,
- 622, 220, 0, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 355, 356, 280, 307, 447, 375,
- 448, 306, 308, 404, 403, 405, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 0, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 0, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 0, 0, 425, 472, 240, 606, 496, 199,
- 0, 0, 0, 0, 254, 255, 0, 575, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 0, 0, 0, 0, 0,
- 398, 0, 591, 592, 672, 384, 486, 603, 335, 349,
- 352, 341, 361, 0, 362, 337, 338, 343, 346, 347,
- 348, 353, 354, 358, 364, 249, 210, 390, 399, 578,
- 312, 216, 217, 218, 524, 525, 526, 527, 619, 620,
- 624, 205, 462, 463, 464, 465, 292, 614, 309, 468,
- 467, 331, 332, 379, 449, 540, 542, 553, 557, 559,
- 561, 567, 570, 541, 543, 554, 558, 560, 562, 568,
- 571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
- 551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
- 537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 0, 196, 221, 368, 0, 454, 288, 650, 618,
- 484, 613, 206, 223, 0, 262, 0, 0, 0, 0,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 301,
- 302, 444, 445, 314, 315, 646, 647, 300, 600, 633,
- 597, 645, 627, 438, 378, 0, 0, 381, 281, 305,
- 320, 0, 617, 502, 227, 466, 290, 251, 0, 0,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
- 0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
- 0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
- 0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
- 726, 727, 728, 0, 0, 0, 0, 0, 0, 0,
- 238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
- 339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
- 0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
- 0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 402, 257,
- 0, 453, 0, 0, 0, 629, 0, 0, 0, 0,
- 0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
- 412, 461, 473, 0, 0, 0, 253, 0, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 0, 0,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 589, 590, 256, 652,
- 228, 622, 220, 0, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 355, 356, 280, 307, 447,
- 375, 448, 306, 308, 404, 403, 405, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 0, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 0, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 0, 0, 425, 472, 240, 606, 496,
- 199, 0, 0, 0, 0, 254, 255, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 654, 655,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 4073,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 0, 0, 0, 0,
- 0, 398, 0, 591, 592, 672, 384, 486, 603, 335,
- 349, 352, 341, 361, 0, 362, 337, 338, 343, 346,
- 347, 348, 353, 354, 358, 364, 249, 210, 390, 399,
- 578, 312, 216, 217, 218, 524, 525, 526, 527, 619,
- 620, 624, 205, 462, 463, 464, 465, 292, 614, 309,
- 468, 467, 331, 332, 379, 449, 540, 542, 553, 557,
- 559, 561, 567, 570, 541, 543, 554, 558, 560, 562,
- 568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
- 574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
- 533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 0, 196, 221, 368, 0, 454, 288, 650,
- 618, 484, 613, 206, 223, 0, 262, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 300, 600,
- 633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
- 305, 320, 0, 617, 502, 227, 466, 290, 251, 0,
- 0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
- 0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
- 267, 0, 0, 204, 505, 0, 430, 0, 203, 0,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 0, 0, 0, 0,
- 507, 724, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
- 359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
- 0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
- 580, 0, 0, 0, 0, 0, 0, 596, 0, 0,
- 229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
- 257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
- 4070, 0, 0, 0, 365, 0, 330, 197, 225, 0,
- 0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
- 0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 589, 590, 256,
- 652, 228, 622, 220, 0, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 355, 356, 280, 307,
- 447, 375, 448, 306, 308, 404, 403, 405, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 0, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 0, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 0, 0, 425, 472, 240, 606,
- 496, 199, 0, 0, 0, 0, 254, 255, 0, 575,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 0, 0, 0,
- 0, 0, 398, 0, 591, 592, 672, 384, 486, 603,
- 335, 349, 352, 341, 361, 0, 362, 337, 338, 343,
- 346, 347, 348, 353, 354, 358, 364, 249, 210, 390,
- 399, 578, 312, 216, 217, 218, 524, 525, 526, 527,
- 619, 620, 624, 205, 462, 463, 464, 465, 292, 614,
- 309, 468, 467, 331, 332, 379, 449, 540, 542, 553,
- 557, 559, 561, 567, 570, 541, 543, 554, 558, 560,
- 562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
- 573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
- 529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
- 650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
- 600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
- 281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
- 0, 0, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
- 577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 0, 0, 0, 0, 0, 270, 0, 0, 0, 0,
- 366, 267, 0, 0, 204, 505, 0, 430, 0, 203,
- 0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
- 317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
- 401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
- 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
- 360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
- 345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
- 264, 580, 0, 0, 0, 0, 0, 0, 596, 0,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 1962, 508, 194, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 275, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 0, 0, 0, 629, 0, 0,
- 0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
- 0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
- 471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
- 406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
- 494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
- 224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
- 643, 213, 517, 598, 239, 483, 0, 0, 651, 247,
- 504, 610, 599, 215, 594, 503, 393, 326, 327, 214,
- 0, 457, 268, 293, 0, 0, 258, 415, 589, 590,
- 256, 652, 228, 622, 220, 0, 621, 408, 584, 595,
- 394, 383, 219, 593, 392, 382, 334, 355, 356, 280,
- 307, 447, 375, 448, 306, 308, 404, 403, 405, 207,
- 608, 626, 0, 208, 0, 499, 611, 653, 452, 212,
- 234, 235, 237, 0, 279, 283, 291, 294, 303, 304,
- 313, 367, 419, 446, 442, 451, 0, 579, 602, 616,
- 628, 634, 635, 637, 638, 639, 640, 641, 644, 642,
- 407, 311, 495, 333, 373, 0, 0, 425, 472, 240,
- 606, 496, 199, 0, 0, 0, 0, 254, 255, 0,
- 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
- 664, 665, 666, 667, 668, 669, 670, 671, 649, 508,
- 514, 509, 510, 511, 512, 513, 0, 515, 0, 0,
- 0, 0, 0, 398, 0, 591, 592, 672, 384, 486,
- 603, 335, 349, 352, 341, 361, 0, 362, 337, 338,
- 343, 346, 347, 348, 353, 354, 358, 364, 249, 210,
- 390, 399, 578, 312, 216, 217, 218, 524, 525, 526,
- 527, 619, 620, 624, 205, 462, 463, 464, 465, 292,
- 614, 309, 468, 467, 331, 332, 379, 449, 540, 542,
- 553, 557, 559, 561, 567, 570, 541, 543, 554, 558,
- 560, 562, 568, 571, 530, 532, 534, 536, 549, 548,
- 545, 573, 574, 551, 556, 535, 547, 552, 565, 572,
- 569, 529, 533, 537, 546, 564, 563, 544, 555, 566,
- 550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
- 288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
- 285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
- 388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
- 424, 427, 431, 435, 436, 437, 439, 441, 443, 455,
- 460, 474, 475, 476, 477, 478, 481, 482, 488, 489,
- 490, 491, 492, 500, 501, 516, 586, 588, 605, 625,
- 632, 480, 301, 302, 444, 445, 314, 315, 646, 647,
- 300, 600, 633, 597, 645, 627, 438, 378, 0, 0,
- 381, 281, 305, 320, 0, 617, 502, 227, 466, 290,
- 251, 0, 0, 211, 246, 230, 259, 274, 277, 324,
- 391, 400, 429, 434, 296, 271, 244, 459, 241, 485,
- 519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
- 576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
- 0, 366, 267, 0, 0, 204, 505, 0, 430, 0,
- 203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
- 497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
- 351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
- 336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
- 272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 3726, 0, 0, 0, 365, 0, 330, 197,
- 225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
- 0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 589,
- 590, 256, 652, 228, 622, 220, 0, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 355, 356,
- 280, 307, 447, 375, 448, 306, 308, 404, 403, 405,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 0, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 0, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 0, 0, 425, 472,
- 240, 606, 496, 199, 0, 0, 0, 0, 254, 255,
- 0, 575, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 0,
- 0, 0, 0, 0, 398, 0, 591, 592, 672, 384,
- 486, 603, 335, 349, 352, 341, 361, 0, 362, 337,
- 338, 343, 346, 347, 348, 353, 354, 358, 364, 249,
- 210, 390, 399, 578, 312, 216, 217, 218, 524, 525,
- 526, 527, 619, 620, 624, 205, 462, 463, 464, 465,
- 292, 614, 309, 468, 467, 331, 332, 379, 449, 540,
- 542, 553, 557, 559, 561, 567, 570, 541, 543, 554,
- 558, 560, 562, 568, 571, 530, 532, 534, 536, 549,
- 548, 545, 573, 574, 551, 556, 535, 547, 552, 565,
- 572, 569, 529, 533, 537, 546, 564, 563, 544, 555,
- 566, 550, 538, 531, 539, 0, 196, 221, 368, 0,
- 454, 288, 650, 618, 484, 613, 206, 223, 0, 262,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 301, 302, 444, 445, 314, 315, 646,
- 647, 300, 600, 633, 597, 645, 627, 438, 378, 0,
- 0, 381, 281, 305, 320, 0, 617, 502, 227, 466,
- 290, 251, 0, 0, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
- 376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 0, 0, 0, 0, 0, 270, 0, 0,
- 0, 0, 366, 267, 0, 0, 204, 505, 0, 430,
- 0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
- 0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 95,
- 0, 0, 0, 507, 724, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 725, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
- 0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
- 363, 336, 345, 0, 0, 609, 0, 0, 0, 265,
- 321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
- 596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5677,147 +5642,73 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
- 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
- 253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 589, 590, 256, 652, 228, 622, 220, 0, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 355,
- 356, 280, 307, 447, 375, 448, 306, 308, 404, 403,
- 405, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 0, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 0, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 0, 0, 425,
- 472, 240, 606, 496, 199, 0, 0, 0, 0, 254,
- 255, 0, 575, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 654, 655, 656, 657, 658, 659, 660, 661,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 3729, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 0, 0, 0, 0, 0, 398, 0, 591, 592, 672,
- 384, 486, 603, 335, 349, 352, 341, 361, 0, 362,
- 337, 338, 343, 346, 347, 348, 353, 354, 358, 364,
- 249, 210, 390, 399, 578, 312, 216, 217, 218, 524,
- 525, 526, 527, 619, 620, 624, 205, 462, 463, 464,
- 465, 292, 614, 309, 468, 467, 331, 332, 379, 449,
- 540, 542, 553, 557, 559, 561, 567, 570, 541, 543,
- 554, 558, 560, 562, 568, 571, 530, 532, 534, 536,
- 549, 548, 545, 573, 574, 551, 556, 535, 547, 552,
- 565, 572, 569, 529, 533, 537, 546, 564, 563, 544,
- 555, 566, 550, 538, 531, 539, 0, 196, 221, 368,
- 0, 454, 288, 650, 618, 484, 613, 206, 223, 0,
- 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 301, 302, 444, 445, 314, 315,
- 646, 647, 300, 600, 633, 597, 645, 627, 438, 378,
- 0, 0, 381, 281, 305, 320, 0, 617, 502, 227,
- 466, 290, 251, 0, 0, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
- 0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
- 0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 0, 0, 507, 194, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
- 0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
- 357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
- 265, 321, 272, 264, 580, 0, 0, 0, 0, 0,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 0, 0, 0,
- 629, 0, 0, 0, 0, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 253, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 589, 590, 256, 652, 228, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 355, 356, 280, 307, 447, 375, 448, 306, 308, 404,
- 403, 405, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 199, 0, 0, 0, 0,
- 254, 255, 0, 575, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 0, 0, 0, 0, 0, 398, 0, 591, 592,
- 672, 384, 486, 603, 335, 349, 352, 341, 361, 0,
- 362, 337, 338, 343, 346, 347, 348, 353, 354, 358,
- 364, 249, 210, 390, 399, 578, 312, 216, 217, 218,
- 524, 525, 526, 527, 619, 620, 624, 205, 462, 463,
- 464, 465, 292, 614, 309, 468, 467, 331, 332, 379,
- 449, 540, 542, 553, 557, 559, 561, 567, 570, 541,
- 543, 554, 558, 560, 562, 568, 571, 530, 532, 534,
- 536, 549, 548, 545, 573, 574, 551, 556, 535, 547,
- 552, 565, 572, 569, 529, 533, 537, 546, 564, 563,
- 544, 555, 566, 550, 538, 531, 539, 0, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 0, 262, 0, 0, 0, 0, 0, 0, 0, 0,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 301, 302, 444, 445, 314,
- 315, 646, 647, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 0, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
- 0, 0, 0, 0, 366, 267, 0, 0, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 0,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 1780, 507, 724, 0, 0, 0,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 95, 0, 0, 0, 508, 725, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
- 0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
- 350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
- 0, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5825,147 +5716,73 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 0, 0,
- 0, 629, 0, 0, 0, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 253, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 589, 590, 256, 652, 228, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 355, 356, 280, 307, 447, 375, 448, 306, 308,
- 404, 403, 405, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 199, 0, 0, 0,
- 0, 254, 255, 0, 575, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 654, 655, 656, 657, 658, 659,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 0, 0, 0, 0, 0, 398, 0, 591,
- 592, 672, 384, 486, 603, 335, 349, 352, 341, 361,
- 0, 362, 337, 338, 343, 346, 347, 348, 353, 354,
- 358, 364, 249, 210, 390, 399, 578, 312, 216, 217,
- 218, 524, 525, 526, 527, 619, 620, 624, 205, 462,
- 463, 464, 465, 292, 614, 309, 468, 467, 331, 332,
- 379, 449, 540, 542, 553, 557, 559, 561, 567, 570,
- 541, 543, 554, 558, 560, 562, 568, 571, 530, 532,
- 534, 536, 549, 548, 545, 573, 574, 551, 556, 535,
- 547, 552, 565, 572, 569, 529, 533, 537, 546, 564,
- 563, 544, 555, 566, 550, 538, 531, 539, 0, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 0, 262, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 301, 302, 444, 445,
- 314, 315, 646, 647, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 0, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
- 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 0, 0, 0, 0, 507, 194, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
- 0, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 0,
- 0, 0, 629, 0, 0, 0, 0, 0, 0, 0,
- 365, 0, 330, 197, 225, 0, 0, 412, 461, 473,
- 0, 0, 0, 253, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 199, 0, 0,
- 0, 0, 254, 255, 0, 575, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 0, 0, 0, 0, 0, 398, 0,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 2079, 454, 288, 650, 618, 484, 613,
- 206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 0, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 0, 270, 0, 0, 0, 0, 366, 267, 0, 0,
- 204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 2070, 507, 724, 0,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 2428, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 194, 0,
0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
- 342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
- 0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
- 0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -5973,443 +5790,221 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 0, 402, 257, 0, 453,
- 0, 0, 0, 629, 0, 0, 0, 0, 0, 0,
- 0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
- 473, 0, 0, 0, 253, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 0, 0, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 589, 590, 256, 652, 228, 622,
- 220, 0, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 355, 356, 280, 307, 447, 375, 448,
- 306, 308, 404, 403, 405, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 0,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 0, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 0, 0, 425, 472, 240, 606, 496, 199, 0,
- 0, 0, 0, 254, 255, 0, 575, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 654, 655, 656, 657,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 0, 0, 0, 0, 0, 398,
- 0, 591, 592, 672, 384, 486, 603, 335, 349, 352,
- 341, 361, 0, 362, 337, 338, 343, 346, 347, 348,
- 353, 354, 358, 364, 249, 210, 390, 399, 578, 312,
- 216, 217, 218, 524, 525, 526, 527, 619, 620, 624,
- 205, 462, 463, 464, 465, 292, 614, 309, 468, 467,
- 331, 332, 379, 449, 540, 542, 553, 557, 559, 561,
- 567, 570, 541, 543, 554, 558, 560, 562, 568, 571,
- 530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
- 556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
- 546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 0, 454, 288, 650, 618, 484,
- 613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 301, 302,
- 444, 445, 314, 315, 646, 647, 300, 600, 633, 597,
- 645, 627, 438, 378, 0, 0, 381, 281, 305, 320,
- 0, 617, 502, 227, 466, 290, 251, 0, 0, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
- 0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
- 0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
- 1928, 204, 505, 0, 430, 0, 203, 0, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 0, 0, 0, 0, 507, 724,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
- 340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
- 609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
- 0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 297, 0, 402, 257, 0,
- 453, 0, 0, 0, 629, 0, 0, 0, 0, 0,
- 0, 0, 365, 0, 330, 197, 225, 0, 0, 412,
- 461, 473, 0, 0, 0, 253, 0, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 0, 0, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 589, 590, 256, 652, 228,
- 622, 220, 0, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 355, 356, 280, 307, 447, 375,
- 448, 306, 308, 404, 403, 405, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 0, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 0, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 0, 0, 425, 472, 240, 606, 496, 199,
- 0, 0, 0, 0, 254, 255, 0, 575, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 0, 0, 0, 0, 0,
- 398, 0, 591, 592, 672, 384, 486, 603, 335, 349,
- 352, 341, 361, 0, 362, 337, 338, 343, 346, 347,
- 348, 353, 354, 358, 364, 249, 210, 390, 399, 578,
- 312, 216, 217, 218, 524, 525, 526, 527, 619, 620,
- 624, 205, 462, 463, 464, 465, 292, 614, 309, 468,
- 467, 331, 332, 379, 449, 540, 542, 553, 557, 559,
- 561, 567, 570, 541, 543, 554, 558, 560, 562, 568,
- 571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
- 551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
- 537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 0, 196, 221, 368, 0, 454, 288, 650, 618,
- 484, 613, 206, 223, 0, 262, 0, 0, 0, 0,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 301,
- 302, 444, 445, 314, 315, 646, 647, 300, 600, 633,
- 597, 645, 627, 438, 378, 0, 0, 381, 281, 305,
- 320, 0, 617, 502, 227, 466, 290, 251, 0, 0,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
- 0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
- 0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
- 0, 1926, 204, 505, 0, 430, 0, 203, 0, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
- 724, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
- 339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
- 0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
- 0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 402, 257,
- 0, 453, 0, 0, 0, 629, 0, 0, 0, 0,
- 0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
- 412, 461, 473, 0, 0, 0, 253, 0, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 0, 0,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 589, 590, 256, 652,
- 228, 622, 220, 0, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 355, 356, 280, 307, 447,
- 375, 448, 306, 308, 404, 403, 405, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 0, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 0, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 0, 0, 425, 472, 240, 606, 496,
- 199, 0, 0, 0, 0, 254, 255, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 654, 655,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 1781, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 0, 0, 0, 0,
- 0, 398, 0, 591, 592, 672, 384, 486, 603, 335,
- 349, 352, 341, 361, 0, 362, 337, 338, 343, 346,
- 347, 348, 353, 354, 358, 364, 249, 210, 390, 399,
- 578, 312, 216, 217, 218, 524, 525, 526, 527, 619,
- 620, 624, 205, 462, 463, 464, 465, 292, 614, 309,
- 468, 467, 331, 332, 379, 449, 540, 542, 553, 557,
- 559, 561, 567, 570, 541, 543, 554, 558, 560, 562,
- 568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
- 574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
- 533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 0, 196, 221, 368, 0, 454, 288, 650,
- 618, 484, 613, 206, 223, 0, 262, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 300, 600,
- 633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
- 305, 320, 0, 617, 502, 227, 466, 290, 251, 0,
- 0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
- 0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
- 267, 0, 1924, 204, 505, 0, 430, 0, 203, 0,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 0, 0, 0, 0,
- 507, 724, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
- 359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
- 0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
- 580, 0, 0, 0, 0, 0, 0, 596, 0, 0,
- 229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
- 257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
- 0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
- 0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
- 0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 589, 590, 256,
- 652, 228, 622, 220, 0, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 355, 356, 280, 307,
- 447, 375, 448, 306, 308, 404, 403, 405, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 0, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 0, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 0, 0, 425, 472, 240, 606,
- 496, 199, 0, 0, 0, 0, 254, 255, 0, 575,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 0, 0, 0,
- 0, 0, 398, 0, 591, 592, 672, 384, 486, 603,
- 335, 349, 352, 341, 361, 0, 362, 337, 338, 343,
- 346, 347, 348, 353, 354, 358, 364, 249, 210, 390,
- 399, 578, 312, 216, 217, 218, 524, 525, 526, 527,
- 619, 620, 624, 205, 462, 463, 464, 465, 292, 614,
- 309, 468, 467, 331, 332, 379, 449, 540, 542, 553,
- 557, 559, 561, 567, 570, 541, 543, 554, 558, 560,
- 562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
- 573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
- 529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
- 650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
- 600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
- 281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
- 0, 0, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
- 577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 0, 0, 0, 0, 0, 270, 0, 0, 0, 0,
- 366, 267, 0, 1922, 204, 505, 0, 430, 0, 203,
- 0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
- 317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
- 401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
- 0, 507, 724, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
- 360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
- 345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
- 264, 580, 0, 0, 0, 0, 0, 0, 596, 0,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 194, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 275, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 0, 0, 0, 629, 0, 0,
- 0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
- 0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
- 471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
- 406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
- 494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
- 224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
- 643, 213, 517, 598, 239, 483, 0, 0, 651, 247,
- 504, 610, 599, 215, 594, 503, 393, 326, 327, 214,
- 0, 457, 268, 293, 0, 0, 258, 415, 589, 590,
- 256, 652, 228, 622, 220, 0, 621, 408, 584, 595,
- 394, 383, 219, 593, 392, 382, 334, 355, 356, 280,
- 307, 447, 375, 448, 306, 308, 404, 403, 405, 207,
- 608, 626, 0, 208, 0, 499, 611, 653, 452, 212,
- 234, 235, 237, 0, 279, 283, 291, 294, 303, 304,
- 313, 367, 419, 446, 442, 451, 0, 579, 602, 616,
- 628, 634, 635, 637, 638, 639, 640, 641, 644, 642,
- 407, 311, 495, 333, 373, 0, 0, 425, 472, 240,
- 606, 496, 199, 0, 0, 0, 0, 254, 255, 0,
- 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
- 664, 665, 666, 667, 668, 669, 670, 671, 649, 508,
- 514, 509, 510, 511, 512, 513, 0, 515, 0, 0,
- 0, 0, 0, 398, 0, 591, 592, 672, 384, 486,
- 603, 335, 349, 352, 341, 361, 0, 362, 337, 338,
- 343, 346, 347, 348, 353, 354, 358, 364, 249, 210,
- 390, 399, 578, 312, 216, 217, 218, 524, 525, 526,
- 527, 619, 620, 624, 205, 462, 463, 464, 465, 292,
- 614, 309, 468, 467, 331, 332, 379, 449, 540, 542,
- 553, 557, 559, 561, 567, 570, 541, 543, 554, 558,
- 560, 562, 568, 571, 530, 532, 534, 536, 549, 548,
- 545, 573, 574, 551, 556, 535, 547, 552, 565, 572,
- 569, 529, 533, 537, 546, 564, 563, 544, 555, 566,
- 550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
- 288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
- 285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
- 388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
- 424, 427, 431, 435, 436, 437, 439, 441, 443, 455,
- 460, 474, 475, 476, 477, 478, 481, 482, 488, 489,
- 490, 491, 492, 500, 501, 516, 586, 588, 605, 625,
- 632, 480, 301, 302, 444, 445, 314, 315, 646, 647,
- 300, 600, 633, 597, 645, 627, 438, 378, 0, 0,
- 381, 281, 305, 320, 0, 617, 502, 227, 466, 290,
- 251, 0, 0, 211, 246, 230, 259, 274, 277, 324,
- 391, 400, 429, 434, 296, 271, 244, 459, 241, 485,
- 519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
- 576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
- 0, 366, 267, 0, 1920, 204, 505, 0, 430, 0,
- 203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
- 497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
- 351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
- 336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
- 272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 0, 0, 0, 0, 365, 0, 330, 197,
- 225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
- 0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 589,
- 590, 256, 652, 228, 622, 220, 0, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 355, 356,
- 280, 307, 447, 375, 448, 306, 308, 404, 403, 405,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 0, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 0, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 0, 0, 425, 472,
- 240, 606, 496, 199, 0, 0, 0, 0, 254, 255,
- 0, 575, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 0,
- 0, 0, 0, 0, 398, 0, 591, 592, 672, 384,
- 486, 603, 335, 349, 352, 341, 361, 0, 362, 337,
- 338, 343, 346, 347, 348, 353, 354, 358, 364, 249,
- 210, 390, 399, 578, 312, 216, 217, 218, 524, 525,
- 526, 527, 619, 620, 624, 205, 462, 463, 464, 465,
- 292, 614, 309, 468, 467, 331, 332, 379, 449, 540,
- 542, 553, 557, 559, 561, 567, 570, 541, 543, 554,
- 558, 560, 562, 568, 571, 530, 532, 534, 536, 549,
- 548, 545, 573, 574, 551, 556, 535, 547, 552, 565,
- 572, 569, 529, 533, 537, 546, 564, 563, 544, 555,
- 566, 550, 538, 531, 539, 0, 196, 221, 368, 0,
- 454, 288, 650, 618, 484, 613, 206, 223, 0, 262,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 409, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 301, 302, 444, 445, 314, 315, 646,
- 647, 300, 600, 633, 597, 645, 627, 438, 378, 0,
- 0, 381, 281, 305, 320, 0, 617, 502, 227, 466,
- 290, 251, 0, 0, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
- 376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 0, 0, 0, 0, 0, 270, 0, 0,
- 0, 0, 366, 267, 0, 1916, 204, 505, 0, 430,
- 0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
- 0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 0,
- 0, 0, 0, 507, 724, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 2080,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 2071, 508, 725, 0, 0, 0, 0, 0,
0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
- 0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
- 363, 336, 345, 0, 0, 609, 0, 0, 0, 265,
- 321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
- 596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6418,147 +6013,73 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
- 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
- 253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 589, 590, 256, 652, 228, 622, 220, 0, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 355,
- 356, 280, 307, 447, 375, 448, 306, 308, 404, 403,
- 405, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 0, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 0, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 0, 0, 425,
- 472, 240, 606, 496, 199, 0, 0, 0, 0, 254,
- 255, 0, 575, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 654, 655, 656, 657, 658, 659, 660, 661,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 0, 0, 0, 0, 0, 398, 0, 591, 592, 672,
- 384, 486, 603, 335, 349, 352, 341, 361, 0, 362,
- 337, 338, 343, 346, 347, 348, 353, 354, 358, 364,
- 249, 210, 390, 399, 578, 312, 216, 217, 218, 524,
- 525, 526, 527, 619, 620, 624, 205, 462, 463, 464,
- 465, 292, 614, 309, 468, 467, 331, 332, 379, 449,
- 540, 542, 553, 557, 559, 561, 567, 570, 541, 543,
- 554, 558, 560, 562, 568, 571, 530, 532, 534, 536,
- 549, 548, 545, 573, 574, 551, 556, 535, 547, 552,
- 565, 572, 569, 529, 533, 537, 546, 564, 563, 544,
- 555, 566, 550, 538, 531, 539, 0, 196, 221, 368,
- 0, 454, 288, 650, 618, 484, 613, 206, 223, 0,
- 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 301, 302, 444, 445, 314, 315,
- 646, 647, 300, 600, 633, 597, 645, 627, 438, 378,
- 0, 0, 381, 281, 305, 320, 0, 617, 502, 227,
- 466, 290, 251, 0, 0, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
- 0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
- 0, 0, 0, 366, 267, 0, 1914, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 0, 0, 507, 724, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
- 0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
- 357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
- 265, 321, 272, 264, 580, 0, 0, 0, 0, 0,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 0, 0, 0,
- 629, 0, 0, 0, 0, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 253, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 589, 590, 256, 652, 228, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 355, 356, 280, 307, 447, 375, 448, 306, 308, 404,
- 403, 405, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 199, 0, 0, 0, 0,
- 254, 255, 0, 575, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 0, 0, 0, 0, 0, 398, 0, 591, 592,
- 672, 384, 486, 603, 335, 349, 352, 341, 361, 0,
- 362, 337, 338, 343, 346, 347, 348, 353, 354, 358,
- 364, 249, 210, 390, 399, 578, 312, 216, 217, 218,
- 524, 525, 526, 527, 619, 620, 624, 205, 462, 463,
- 464, 465, 292, 614, 309, 468, 467, 331, 332, 379,
- 449, 540, 542, 553, 557, 559, 561, 567, 570, 541,
- 543, 554, 558, 560, 562, 568, 571, 530, 532, 534,
- 536, 549, 548, 545, 573, 574, 551, 556, 535, 547,
- 552, 565, 572, 569, 529, 533, 537, 546, 564, 563,
- 544, 555, 566, 550, 538, 531, 539, 0, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 0, 262, 0, 0, 0, 0, 0, 0, 0, 0,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 301, 302, 444, 445, 314,
- 315, 646, 647, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 0, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
- 0, 0, 0, 0, 366, 267, 0, 1912, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 0,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 0, 507, 724, 0, 0, 0,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 1929, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 0, 508, 725, 0, 0, 0,
0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
- 0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
- 350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
- 0, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6566,147 +6087,73 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 0, 0,
- 0, 629, 0, 0, 0, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 253, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 589, 590, 256, 652, 228, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 355, 356, 280, 307, 447, 375, 448, 306, 308,
- 404, 403, 405, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 199, 0, 0, 0,
- 0, 254, 255, 0, 575, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 654, 655, 656, 657, 658, 659,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 0, 0, 0, 0, 0, 398, 0, 591,
- 592, 672, 384, 486, 603, 335, 349, 352, 341, 361,
- 0, 362, 337, 338, 343, 346, 347, 348, 353, 354,
- 358, 364, 249, 210, 390, 399, 578, 312, 216, 217,
- 218, 524, 525, 526, 527, 619, 620, 624, 205, 462,
- 463, 464, 465, 292, 614, 309, 468, 467, 331, 332,
- 379, 449, 540, 542, 553, 557, 559, 561, 567, 570,
- 541, 543, 554, 558, 560, 562, 568, 571, 530, 532,
- 534, 536, 549, 548, 545, 573, 574, 551, 556, 535,
- 547, 552, 565, 572, 569, 529, 533, 537, 546, 564,
- 563, 544, 555, 566, 550, 538, 531, 539, 0, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 0, 262, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 301, 302, 444, 445,
- 314, 315, 646, 647, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 0, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 396, 0, 376, 576, 577, 316, 0, 0, 0,
- 528, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
- 270, 0, 0, 0, 0, 366, 267, 0, 0, 204,
- 505, 0, 430, 0, 203, 0, 487, 252, 377, 374,
- 583, 282, 273, 269, 250, 317, 385, 428, 518, 422,
- 0, 370, 0, 0, 497, 401, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 323, 248, 325, 202, 413, 498,
- 286, 0, 1887, 0, 0, 0, 507, 724, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 238, 0, 0,
- 245, 0, 0, 0, 351, 360, 359, 339, 340, 342,
- 344, 350, 357, 363, 336, 345, 0, 0, 609, 0,
- 0, 0, 265, 321, 272, 264, 580, 0, 0, 0,
- 0, 0, 0, 596, 0, 0, 229, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 275, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 297, 0, 402, 257, 0, 453, 0,
- 0, 0, 629, 0, 0, 0, 0, 0, 0, 0,
- 365, 0, 330, 197, 225, 0, 0, 412, 461, 473,
- 0, 0, 0, 253, 0, 471, 426, 604, 233, 284,
- 458, 432, 469, 440, 287, 0, 0, 470, 372, 585,
- 450, 601, 630, 631, 263, 406, 615, 522, 623, 648,
- 226, 260, 420, 506, 607, 494, 397, 581, 582, 329,
- 493, 295, 201, 369, 636, 224, 479, 371, 242, 231,
- 587, 612, 299, 289, 456, 643, 213, 517, 598, 239,
- 483, 0, 0, 651, 247, 504, 610, 599, 215, 594,
- 503, 393, 326, 327, 214, 0, 457, 268, 293, 0,
- 0, 258, 415, 589, 590, 256, 652, 228, 622, 220,
- 0, 621, 408, 584, 595, 394, 383, 219, 593, 392,
- 382, 334, 355, 356, 280, 307, 447, 375, 448, 306,
- 308, 404, 403, 405, 207, 608, 626, 0, 208, 0,
- 499, 611, 653, 452, 212, 234, 235, 237, 0, 279,
- 283, 291, 294, 303, 304, 313, 367, 419, 446, 442,
- 451, 0, 579, 602, 616, 628, 634, 635, 637, 638,
- 639, 640, 641, 644, 642, 407, 311, 495, 333, 373,
- 0, 0, 425, 472, 240, 606, 496, 199, 0, 0,
- 0, 0, 254, 255, 0, 575, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 654, 655, 656, 657, 658,
- 659, 660, 661, 662, 663, 664, 665, 666, 667, 668,
- 669, 670, 671, 649, 508, 514, 509, 510, 511, 512,
- 513, 0, 515, 0, 0, 0, 0, 0, 398, 0,
- 591, 592, 672, 384, 486, 603, 335, 349, 352, 341,
- 361, 0, 362, 337, 338, 343, 346, 347, 348, 353,
- 354, 358, 364, 249, 210, 390, 399, 578, 312, 216,
- 217, 218, 524, 525, 526, 527, 619, 620, 624, 205,
- 462, 463, 464, 465, 292, 614, 309, 468, 467, 331,
- 332, 379, 449, 540, 542, 553, 557, 559, 561, 567,
- 570, 541, 543, 554, 558, 560, 562, 568, 571, 530,
- 532, 534, 536, 549, 548, 545, 573, 574, 551, 556,
- 535, 547, 552, 565, 572, 569, 529, 533, 537, 546,
- 564, 563, 544, 555, 566, 550, 538, 531, 539, 0,
- 196, 221, 368, 0, 454, 288, 650, 618, 484, 613,
- 206, 223, 0, 262, 0, 0, 0, 0, 0, 0,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
- 236, 243, 261, 276, 278, 285, 298, 310, 318, 319,
- 322, 328, 380, 386, 387, 388, 389, 409, 410, 411,
- 414, 417, 418, 421, 423, 424, 427, 431, 435, 436,
- 437, 439, 441, 443, 455, 460, 474, 475, 476, 477,
- 478, 481, 482, 488, 489, 490, 491, 492, 500, 501,
- 516, 586, 588, 605, 625, 632, 480, 301, 302, 444,
- 445, 314, 315, 646, 647, 300, 600, 633, 597, 645,
- 627, 438, 378, 0, 0, 381, 281, 305, 320, 0,
- 617, 502, 227, 466, 290, 251, 0, 0, 211, 246,
- 230, 259, 274, 277, 324, 391, 400, 429, 434, 296,
- 271, 244, 459, 241, 485, 519, 520, 521, 523, 395,
- 266, 433, 396, 0, 376, 576, 577, 316, 0, 0,
- 0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 0, 0, 0, 0, 0,
- 1784, 270, 0, 0, 0, 0, 366, 267, 0, 0,
- 204, 505, 0, 430, 0, 203, 0, 487, 252, 377,
- 374, 583, 282, 273, 269, 250, 317, 385, 428, 518,
- 422, 0, 370, 0, 0, 497, 401, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 248, 325, 202, 413,
- 498, 286, 0, 0, 0, 0, 0, 507, 194, 0,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 1927,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 725, 0,
0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 245, 0, 0, 0, 351, 360, 359, 339, 340,
- 342, 344, 350, 357, 363, 336, 345, 0, 0, 609,
- 0, 0, 0, 265, 321, 272, 264, 580, 0, 0,
- 0, 0, 0, 0, 596, 0, 0, 229, 0, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 275, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6714,147 +6161,221 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 297, 0, 402, 257, 0, 453,
- 0, 0, 0, 629, 0, 0, 0, 0, 0, 0,
- 0, 365, 0, 330, 197, 225, 0, 0, 412, 461,
- 473, 0, 0, 0, 253, 0, 471, 426, 604, 233,
- 284, 458, 432, 469, 440, 287, 0, 0, 470, 372,
- 585, 450, 601, 630, 631, 263, 406, 615, 522, 623,
- 648, 226, 260, 420, 506, 607, 494, 397, 581, 582,
- 329, 493, 295, 201, 369, 636, 224, 479, 371, 242,
- 231, 587, 612, 299, 289, 456, 643, 213, 517, 598,
- 239, 483, 0, 0, 651, 247, 504, 610, 599, 215,
- 594, 503, 393, 326, 327, 214, 0, 457, 268, 293,
- 0, 0, 258, 415, 589, 590, 256, 652, 228, 622,
- 220, 0, 621, 408, 584, 595, 394, 383, 219, 593,
- 392, 382, 334, 355, 356, 280, 307, 447, 375, 448,
- 306, 308, 404, 403, 405, 207, 608, 626, 0, 208,
- 0, 499, 611, 653, 452, 212, 234, 235, 237, 0,
- 279, 283, 291, 294, 303, 304, 313, 367, 419, 446,
- 442, 451, 0, 579, 602, 616, 628, 634, 635, 637,
- 638, 639, 640, 641, 644, 642, 407, 311, 495, 333,
- 373, 0, 0, 425, 472, 240, 606, 496, 199, 0,
- 0, 0, 0, 254, 255, 0, 575, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 654, 655, 656, 657,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
- 668, 669, 670, 671, 649, 508, 514, 509, 510, 511,
- 512, 513, 0, 515, 0, 0, 0, 0, 0, 398,
- 0, 591, 592, 672, 384, 486, 603, 335, 349, 352,
- 341, 361, 0, 362, 337, 338, 343, 346, 347, 348,
- 353, 354, 358, 364, 249, 210, 390, 399, 578, 312,
- 216, 217, 218, 524, 525, 526, 527, 619, 620, 624,
- 205, 462, 463, 464, 465, 292, 614, 309, 468, 467,
- 331, 332, 379, 449, 540, 542, 553, 557, 559, 561,
- 567, 570, 541, 543, 554, 558, 560, 562, 568, 571,
- 530, 532, 534, 536, 549, 548, 545, 573, 574, 551,
- 556, 535, 547, 552, 565, 572, 569, 529, 533, 537,
- 546, 564, 563, 544, 555, 566, 550, 538, 531, 539,
- 0, 196, 221, 368, 0, 454, 288, 650, 618, 484,
- 613, 206, 223, 0, 262, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 198, 200, 209, 222,
- 232, 236, 243, 261, 276, 278, 285, 298, 310, 318,
- 319, 322, 328, 380, 386, 387, 388, 389, 409, 410,
- 411, 414, 417, 418, 421, 423, 424, 427, 431, 435,
- 436, 437, 439, 441, 443, 455, 460, 474, 475, 476,
- 477, 478, 481, 482, 488, 489, 490, 491, 492, 500,
- 501, 516, 586, 588, 605, 625, 632, 480, 301, 302,
- 444, 445, 314, 315, 646, 647, 300, 600, 633, 597,
- 645, 627, 438, 378, 0, 0, 381, 281, 305, 320,
- 0, 617, 502, 227, 466, 290, 251, 0, 0, 211,
- 246, 230, 259, 274, 277, 324, 391, 400, 429, 434,
- 296, 271, 244, 459, 241, 485, 519, 520, 521, 523,
- 395, 266, 433, 396, 0, 376, 576, 577, 316, 0,
- 0, 0, 528, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 0, 0, 0, 0,
- 0, 0, 270, 0, 0, 0, 0, 366, 267, 0,
- 0, 204, 505, 0, 430, 0, 203, 0, 487, 252,
- 377, 374, 583, 282, 273, 269, 250, 317, 385, 428,
- 518, 422, 0, 370, 0, 0, 497, 401, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 323, 248, 325, 202,
- 413, 498, 286, 0, 95, 0, 0, 0, 507, 959,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 0, 0, 245, 0, 0, 0, 351, 360, 359, 339,
- 340, 342, 344, 350, 357, 363, 336, 345, 0, 0,
- 609, 0, 0, 0, 265, 321, 272, 264, 580, 0,
- 0, 0, 0, 0, 0, 596, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 275, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 297, 0, 402, 257, 0,
- 453, 0, 0, 0, 629, 0, 0, 0, 0, 0,
- 0, 0, 365, 0, 330, 197, 225, 0, 0, 412,
- 461, 473, 0, 0, 0, 253, 0, 471, 426, 604,
- 233, 284, 458, 432, 469, 440, 287, 0, 0, 470,
- 372, 585, 450, 601, 630, 631, 263, 406, 615, 522,
- 623, 648, 226, 260, 420, 506, 607, 494, 397, 581,
- 582, 329, 493, 295, 201, 369, 636, 224, 479, 371,
- 242, 231, 587, 612, 299, 289, 456, 643, 213, 517,
- 598, 239, 483, 0, 0, 651, 247, 504, 610, 599,
- 215, 594, 503, 393, 326, 327, 214, 0, 457, 268,
- 293, 0, 0, 258, 415, 589, 590, 256, 652, 228,
- 622, 220, 0, 621, 408, 584, 595, 394, 383, 219,
- 593, 392, 382, 334, 355, 356, 280, 307, 447, 375,
- 448, 306, 308, 404, 403, 405, 207, 608, 626, 0,
- 208, 0, 499, 611, 653, 452, 212, 234, 235, 237,
- 0, 279, 283, 291, 294, 303, 304, 313, 367, 419,
- 446, 442, 451, 0, 579, 602, 616, 628, 634, 635,
- 637, 638, 639, 640, 641, 644, 642, 407, 311, 495,
- 333, 373, 0, 0, 425, 472, 240, 606, 496, 199,
- 0, 0, 0, 0, 254, 255, 0, 575, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 654, 655, 656,
- 657, 658, 659, 660, 661, 662, 663, 664, 665, 666,
- 667, 668, 669, 670, 671, 649, 508, 514, 509, 510,
- 511, 512, 513, 0, 515, 0, 0, 0, 0, 0,
- 398, 0, 591, 592, 672, 384, 486, 603, 335, 349,
- 352, 341, 361, 0, 362, 337, 338, 343, 346, 347,
- 348, 353, 354, 358, 364, 249, 210, 390, 399, 578,
- 312, 216, 217, 218, 524, 525, 526, 527, 619, 620,
- 624, 205, 462, 463, 464, 465, 292, 614, 309, 468,
- 467, 331, 332, 379, 449, 540, 542, 553, 557, 559,
- 561, 567, 570, 541, 543, 554, 558, 560, 562, 568,
- 571, 530, 532, 534, 536, 549, 548, 545, 573, 574,
- 551, 556, 535, 547, 552, 565, 572, 569, 529, 533,
- 537, 546, 564, 563, 544, 555, 566, 550, 538, 531,
- 539, 0, 196, 221, 368, 0, 454, 288, 650, 618,
- 484, 613, 206, 223, 0, 262, 0, 0, 0, 0,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
- 222, 232, 236, 243, 261, 276, 278, 285, 298, 310,
- 318, 319, 322, 328, 380, 386, 387, 388, 389, 409,
- 410, 411, 414, 417, 418, 421, 423, 424, 427, 431,
- 435, 436, 437, 439, 441, 443, 455, 460, 474, 475,
- 476, 477, 478, 481, 482, 488, 489, 490, 491, 492,
- 500, 501, 516, 586, 588, 605, 625, 632, 480, 301,
- 302, 444, 445, 314, 315, 646, 647, 300, 600, 633,
- 597, 645, 627, 438, 378, 0, 0, 381, 281, 305,
- 320, 0, 617, 502, 227, 466, 290, 251, 0, 0,
- 211, 246, 230, 259, 274, 277, 324, 391, 400, 429,
- 434, 296, 271, 244, 459, 241, 485, 519, 520, 521,
- 523, 395, 266, 433, 396, 0, 376, 576, 577, 316,
- 0, 0, 0, 528, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 416, 0, 0, 0, 0,
- 0, 0, 0, 270, 0, 0, 0, 0, 366, 267,
- 0, 0, 204, 505, 0, 430, 0, 203, 0, 487,
- 252, 377, 374, 583, 282, 273, 269, 250, 317, 385,
- 428, 518, 422, 0, 370, 0, 0, 497, 401, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 248, 325,
- 202, 413, 498, 286, 0, 0, 0, 0, 0, 507,
- 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 238, 0, 0, 245, 0, 0, 0, 351, 360, 359,
- 339, 340, 342, 344, 350, 357, 363, 336, 345, 0,
- 0, 609, 0, 0, 0, 265, 321, 272, 264, 580,
- 0, 0, 0, 0, 0, 0, 596, 0, 0, 229,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 1925, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 1923, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 725, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 1921, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 725, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6862,525 +6383,1049 @@ var yyAct = [...]int{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1456, 0, 297, 0, 402, 257,
- 0, 453, 0, 0, 0, 629, 0, 0, 0, 0,
- 0, 0, 0, 365, 0, 330, 197, 225, 0, 0,
- 412, 461, 473, 0, 0, 0, 253, 0, 471, 426,
- 604, 233, 284, 458, 432, 469, 440, 287, 0, 0,
- 470, 372, 585, 450, 601, 630, 631, 263, 406, 615,
- 522, 623, 648, 226, 260, 420, 506, 607, 494, 397,
- 581, 582, 329, 493, 295, 201, 369, 636, 224, 479,
- 371, 242, 231, 587, 612, 299, 289, 456, 643, 213,
- 517, 598, 239, 483, 0, 0, 651, 247, 504, 610,
- 599, 215, 594, 503, 393, 326, 327, 214, 0, 457,
- 268, 293, 0, 0, 258, 415, 589, 590, 256, 652,
- 228, 622, 220, 0, 621, 408, 584, 595, 394, 383,
- 219, 593, 392, 382, 334, 355, 356, 280, 307, 447,
- 375, 448, 306, 308, 404, 403, 405, 207, 608, 626,
- 0, 208, 0, 499, 611, 653, 452, 212, 234, 235,
- 237, 0, 279, 283, 291, 294, 303, 304, 313, 367,
- 419, 446, 442, 451, 0, 579, 602, 616, 628, 634,
- 635, 637, 638, 639, 640, 641, 644, 642, 407, 311,
- 495, 333, 373, 0, 0, 425, 472, 240, 606, 496,
- 199, 0, 0, 0, 0, 254, 255, 0, 575, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 654, 655,
- 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
- 666, 667, 668, 669, 670, 671, 649, 508, 514, 509,
- 510, 511, 512, 513, 0, 515, 0, 0, 0, 0,
- 0, 398, 0, 591, 592, 672, 384, 486, 603, 335,
- 349, 352, 341, 361, 0, 362, 337, 338, 343, 346,
- 347, 348, 353, 354, 358, 364, 249, 210, 390, 399,
- 578, 312, 216, 217, 218, 524, 525, 526, 527, 619,
- 620, 624, 205, 462, 463, 464, 465, 292, 614, 309,
- 468, 467, 331, 332, 379, 449, 540, 542, 553, 557,
- 559, 561, 567, 570, 541, 543, 554, 558, 560, 562,
- 568, 571, 530, 532, 534, 536, 549, 548, 545, 573,
- 574, 551, 556, 535, 547, 552, 565, 572, 569, 529,
- 533, 537, 546, 564, 563, 544, 555, 566, 550, 538,
- 531, 539, 0, 196, 221, 368, 0, 454, 288, 650,
- 618, 484, 613, 206, 223, 0, 262, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 198, 200,
- 209, 222, 232, 236, 243, 261, 276, 278, 285, 298,
- 310, 318, 319, 322, 328, 380, 386, 387, 388, 389,
- 409, 410, 411, 414, 417, 418, 421, 423, 424, 427,
- 431, 435, 436, 437, 439, 441, 443, 455, 460, 474,
- 475, 476, 477, 478, 481, 482, 488, 489, 490, 491,
- 492, 500, 501, 516, 586, 588, 605, 625, 632, 480,
- 301, 302, 444, 445, 314, 315, 646, 647, 1455, 600,
- 633, 597, 645, 627, 438, 378, 0, 0, 381, 281,
- 305, 320, 0, 617, 502, 227, 466, 290, 251, 0,
- 0, 211, 246, 230, 259, 274, 277, 324, 391, 400,
- 429, 434, 296, 271, 244, 459, 241, 485, 519, 520,
- 521, 523, 395, 266, 433, 396, 0, 376, 576, 577,
- 316, 0, 0, 0, 528, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 0, 0,
- 0, 0, 0, 0, 270, 0, 0, 0, 0, 366,
- 267, 0, 0, 204, 505, 0, 430, 0, 203, 0,
- 487, 252, 377, 374, 583, 282, 273, 269, 250, 317,
- 385, 428, 518, 422, 0, 370, 0, 0, 497, 401,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 323, 248,
- 325, 202, 413, 498, 286, 0, 0, 0, 0, 0,
- 507, 194, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 238, 0, 0, 245, 0, 0, 0, 351, 360,
- 359, 339, 340, 342, 344, 350, 357, 363, 336, 345,
- 0, 0, 609, 0, 0, 0, 265, 321, 272, 264,
- 580, 0, 0, 0, 0, 0, 0, 596, 0, 0,
- 229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 275, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 297, 0, 402,
- 257, 0, 453, 0, 0, 0, 629, 0, 0, 0,
- 0, 0, 0, 0, 365, 0, 330, 197, 225, 0,
- 0, 412, 461, 473, 0, 0, 0, 253, 0, 471,
- 426, 604, 233, 284, 458, 432, 469, 440, 287, 0,
- 0, 470, 372, 585, 450, 601, 630, 631, 263, 406,
- 615, 522, 623, 648, 226, 260, 420, 506, 607, 494,
- 397, 581, 582, 329, 493, 295, 201, 369, 636, 224,
- 479, 371, 242, 231, 587, 612, 299, 289, 456, 643,
- 213, 517, 598, 239, 483, 0, 0, 651, 247, 504,
- 610, 599, 215, 594, 503, 393, 326, 327, 214, 0,
- 457, 268, 293, 0, 0, 258, 415, 589, 590, 256,
- 652, 228, 622, 220, 0, 621, 408, 584, 595, 394,
- 383, 219, 593, 392, 382, 334, 355, 356, 280, 307,
- 447, 375, 448, 306, 308, 404, 403, 405, 207, 608,
- 626, 0, 208, 0, 499, 611, 653, 452, 212, 234,
- 235, 237, 0, 279, 283, 291, 294, 303, 304, 313,
- 367, 419, 446, 442, 451, 0, 579, 602, 616, 628,
- 634, 635, 637, 638, 639, 640, 641, 644, 642, 407,
- 311, 495, 333, 373, 0, 0, 425, 472, 240, 606,
- 496, 199, 0, 0, 0, 0, 254, 255, 0, 575,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
- 665, 666, 667, 668, 669, 670, 671, 649, 508, 514,
- 509, 510, 511, 512, 513, 0, 515, 0, 0, 0,
- 0, 0, 398, 0, 591, 592, 672, 384, 486, 603,
- 335, 349, 352, 341, 361, 0, 362, 337, 338, 343,
- 346, 347, 348, 353, 354, 358, 364, 249, 210, 390,
- 399, 578, 312, 216, 217, 218, 524, 525, 526, 527,
- 619, 620, 624, 205, 462, 463, 464, 465, 292, 614,
- 309, 468, 467, 331, 332, 379, 449, 540, 542, 553,
- 557, 559, 561, 567, 570, 541, 543, 554, 558, 560,
- 562, 568, 571, 530, 532, 534, 536, 549, 548, 545,
- 573, 574, 551, 556, 535, 547, 552, 565, 572, 569,
- 529, 533, 537, 546, 564, 563, 544, 555, 566, 550,
- 538, 531, 539, 0, 196, 221, 368, 0, 454, 288,
- 650, 618, 484, 613, 206, 223, 0, 262, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1049, 0, 0, 0, 198,
- 200, 209, 222, 232, 236, 243, 261, 276, 278, 285,
- 298, 310, 318, 319, 322, 328, 380, 386, 387, 388,
- 389, 409, 410, 411, 414, 417, 418, 421, 423, 424,
- 427, 431, 435, 436, 437, 439, 441, 443, 455, 460,
- 474, 475, 476, 477, 478, 481, 482, 488, 489, 490,
- 491, 492, 500, 501, 516, 586, 588, 605, 625, 632,
- 480, 301, 302, 444, 445, 314, 315, 646, 647, 300,
- 600, 633, 597, 645, 627, 438, 378, 0, 0, 381,
- 281, 305, 320, 0, 617, 502, 227, 466, 290, 251,
- 0, 0, 211, 246, 230, 259, 274, 277, 324, 391,
- 400, 429, 434, 296, 271, 244, 459, 241, 485, 519,
- 520, 521, 523, 395, 266, 433, 396, 0, 376, 576,
- 577, 316, 0, 0, 0, 528, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 416, 0, 0,
- 0, 0, 0, 0, 0, 270, 0, 0, 0, 0,
- 366, 267, 0, 0, 204, 505, 0, 430, 0, 203,
- 0, 487, 252, 377, 374, 583, 282, 273, 269, 250,
- 317, 385, 428, 518, 422, 0, 370, 0, 0, 497,
- 401, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
- 248, 325, 202, 413, 498, 286, 0, 0, 0, 0,
- 0, 507, 194, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 0, 245, 0, 0, 0, 351,
- 360, 359, 339, 340, 342, 344, 350, 357, 363, 336,
- 345, 0, 0, 609, 0, 0, 0, 265, 321, 272,
- 264, 580, 0, 0, 0, 0, 0, 0, 596, 0,
- 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 275, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 297, 0,
- 402, 257, 0, 453, 0, 675, 0, 629, 0, 0,
- 0, 0, 0, 0, 0, 365, 0, 330, 197, 225,
- 0, 0, 412, 461, 473, 0, 0, 0, 253, 0,
- 471, 426, 604, 233, 284, 458, 432, 469, 440, 287,
- 0, 0, 470, 372, 585, 450, 601, 630, 631, 263,
- 406, 615, 522, 623, 648, 226, 260, 420, 506, 607,
- 494, 397, 581, 582, 329, 493, 295, 201, 369, 636,
- 224, 479, 371, 242, 231, 587, 612, 299, 289, 456,
- 643, 213, 517, 598, 239, 483, 0, 0, 651, 247,
- 504, 610, 599, 215, 594, 503, 393, 326, 327, 214,
- 0, 457, 268, 293, 0, 0, 258, 415, 589, 590,
- 256, 652, 228, 622, 220, 0, 621, 408, 584, 595,
- 394, 383, 219, 593, 392, 382, 334, 355, 356, 280,
- 307, 447, 375, 448, 306, 308, 404, 403, 405, 207,
- 608, 626, 0, 208, 0, 499, 611, 653, 452, 212,
- 234, 235, 237, 0, 279, 283, 291, 294, 303, 304,
- 313, 367, 419, 446, 442, 451, 0, 579, 602, 616,
- 628, 634, 635, 637, 638, 639, 640, 641, 644, 642,
- 407, 311, 495, 333, 373, 0, 0, 425, 472, 240,
- 606, 496, 199, 0, 0, 0, 0, 254, 255, 0,
- 575, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
- 664, 665, 666, 667, 668, 669, 670, 671, 649, 508,
- 514, 509, 510, 511, 512, 513, 0, 515, 0, 0,
- 0, 0, 0, 398, 0, 591, 592, 672, 384, 486,
- 603, 335, 349, 352, 341, 361, 0, 362, 337, 338,
- 343, 346, 347, 348, 353, 354, 358, 364, 249, 210,
- 390, 399, 578, 312, 216, 217, 218, 524, 525, 526,
- 527, 619, 620, 624, 205, 462, 463, 464, 465, 292,
- 614, 309, 468, 467, 331, 332, 379, 449, 540, 542,
- 553, 557, 559, 561, 567, 570, 541, 543, 554, 558,
- 560, 562, 568, 571, 530, 532, 534, 536, 549, 548,
- 545, 573, 574, 551, 556, 535, 547, 552, 565, 572,
- 569, 529, 533, 537, 546, 564, 563, 544, 555, 566,
- 550, 538, 531, 539, 0, 196, 221, 368, 0, 454,
- 288, 650, 618, 484, 613, 206, 223, 0, 262, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 198, 200, 209, 222, 232, 236, 243, 261, 276, 278,
- 285, 298, 310, 318, 319, 322, 328, 380, 386, 387,
- 388, 389, 409, 410, 411, 414, 417, 418, 421, 423,
- 424, 427, 431, 435, 436, 437, 439, 441, 443, 455,
- 460, 474, 475, 476, 477, 478, 481, 482, 488, 489,
- 490, 491, 492, 500, 501, 516, 586, 588, 605, 625,
- 632, 480, 301, 302, 444, 445, 314, 315, 646, 647,
- 300, 600, 633, 597, 645, 627, 438, 378, 0, 0,
- 381, 281, 305, 320, 0, 617, 502, 227, 466, 290,
- 251, 0, 0, 211, 246, 230, 259, 274, 277, 324,
- 391, 400, 429, 434, 296, 271, 244, 459, 241, 485,
- 519, 520, 521, 523, 395, 266, 433, 396, 0, 376,
- 576, 577, 316, 0, 0, 0, 528, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 0, 0, 0, 0, 0, 0, 270, 0, 0, 0,
- 0, 366, 267, 0, 0, 204, 505, 0, 430, 0,
- 203, 0, 487, 252, 377, 374, 583, 282, 273, 269,
- 250, 317, 385, 428, 518, 422, 0, 370, 0, 0,
- 497, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 323, 248, 325, 202, 413, 498, 286, 0, 0, 0,
- 0, 0, 507, 724, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 238, 0, 0, 245, 0, 0, 0,
- 351, 360, 359, 339, 340, 342, 344, 350, 357, 363,
- 336, 345, 0, 0, 609, 0, 0, 0, 265, 321,
- 272, 264, 580, 0, 0, 0, 0, 0, 0, 596,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 275, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
- 0, 402, 257, 0, 453, 0, 0, 0, 629, 0,
- 0, 0, 0, 0, 0, 0, 365, 0, 330, 197,
- 225, 0, 0, 412, 461, 473, 0, 0, 0, 253,
- 0, 471, 426, 604, 233, 284, 458, 432, 469, 440,
- 287, 0, 0, 470, 372, 585, 450, 601, 630, 631,
- 263, 406, 615, 522, 623, 648, 226, 260, 420, 506,
- 607, 494, 397, 581, 582, 329, 493, 295, 201, 369,
- 636, 224, 479, 371, 242, 231, 587, 612, 299, 289,
- 456, 643, 213, 517, 598, 239, 483, 0, 0, 651,
- 247, 504, 610, 599, 215, 594, 503, 393, 326, 327,
- 214, 0, 457, 268, 293, 0, 0, 258, 415, 589,
- 590, 256, 652, 228, 622, 220, 0, 621, 408, 584,
- 595, 394, 383, 219, 593, 392, 382, 334, 355, 356,
- 280, 307, 447, 375, 448, 306, 308, 404, 403, 405,
- 207, 608, 626, 0, 208, 0, 499, 611, 653, 452,
- 212, 234, 235, 237, 0, 279, 283, 291, 294, 303,
- 304, 313, 367, 419, 446, 442, 451, 0, 579, 602,
- 616, 628, 634, 635, 637, 638, 639, 640, 641, 644,
- 642, 407, 311, 495, 333, 373, 0, 0, 425, 472,
- 240, 606, 496, 199, 0, 0, 0, 0, 254, 255,
- 0, 575, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 654, 655, 656, 657, 658, 659, 660, 661, 662,
- 663, 664, 665, 666, 667, 668, 669, 670, 671, 649,
- 508, 514, 509, 510, 511, 512, 513, 0, 515, 0,
- 0, 0, 0, 0, 398, 0, 591, 592, 672, 384,
- 486, 603, 335, 349, 352, 341, 361, 0, 362, 337,
- 338, 343, 346, 347, 348, 353, 354, 358, 364, 249,
- 210, 390, 399, 578, 312, 216, 217, 218, 524, 525,
- 526, 527, 619, 620, 624, 205, 462, 463, 464, 465,
- 292, 614, 309, 468, 467, 331, 332, 379, 449, 540,
- 542, 553, 557, 559, 561, 567, 570, 541, 543, 554,
- 558, 560, 562, 568, 571, 530, 532, 534, 536, 549,
- 548, 545, 573, 574, 551, 556, 535, 547, 552, 565,
- 572, 569, 529, 533, 537, 546, 564, 563, 544, 555,
- 566, 550, 538, 531, 539, 0, 196, 221, 368, 0,
- 454, 288, 650, 618, 484, 613, 206, 223, 0, 262,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 198, 200, 209, 222, 232, 236, 243, 261, 276,
- 278, 285, 298, 310, 318, 319, 322, 328, 380, 386,
- 387, 388, 389, 4136, 410, 411, 414, 417, 418, 421,
- 423, 424, 427, 431, 435, 436, 437, 439, 441, 443,
- 455, 460, 474, 475, 476, 477, 478, 481, 482, 488,
- 489, 490, 491, 492, 500, 501, 516, 586, 588, 605,
- 625, 632, 480, 301, 302, 444, 445, 314, 315, 646,
- 647, 300, 600, 633, 597, 645, 627, 438, 378, 0,
- 0, 381, 281, 305, 320, 0, 617, 502, 227, 466,
- 290, 251, 0, 0, 211, 246, 230, 259, 274, 277,
- 324, 391, 400, 429, 434, 296, 271, 244, 459, 241,
- 485, 519, 520, 521, 523, 395, 266, 433, 396, 0,
- 376, 576, 577, 316, 0, 0, 0, 528, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 416,
- 0, 0, 0, 0, 0, 0, 0, 270, 0, 0,
- 0, 0, 366, 267, 0, 0, 204, 505, 0, 430,
- 0, 203, 0, 487, 252, 377, 374, 583, 282, 273,
- 269, 250, 317, 385, 428, 518, 422, 0, 370, 0,
- 0, 497, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 248, 325, 202, 413, 498, 286, 0, 0,
- 0, 0, 0, 507, 724, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
- 0, 351, 360, 359, 339, 340, 342, 344, 350, 357,
- 363, 336, 345, 0, 0, 609, 0, 0, 0, 265,
- 321, 272, 264, 580, 0, 0, 0, 0, 0, 0,
- 596, 0, 0, 229, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 275, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 1917, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 0, 508, 725, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 297, 0, 402, 257, 0, 453, 0, 0, 0, 629,
- 0, 0, 0, 0, 0, 0, 0, 365, 0, 330,
- 197, 225, 0, 0, 412, 461, 473, 0, 0, 0,
- 253, 0, 471, 426, 604, 233, 284, 458, 432, 469,
- 440, 287, 0, 0, 470, 372, 585, 450, 601, 630,
- 631, 263, 406, 615, 522, 623, 648, 226, 260, 420,
- 506, 607, 494, 397, 581, 582, 329, 493, 295, 201,
- 369, 636, 224, 479, 371, 242, 231, 587, 612, 299,
- 289, 456, 643, 213, 517, 598, 239, 483, 0, 0,
- 651, 247, 504, 610, 599, 215, 594, 503, 393, 326,
- 327, 214, 0, 457, 268, 293, 0, 0, 258, 415,
- 589, 590, 256, 652, 228, 622, 220, 0, 621, 408,
- 584, 595, 394, 383, 219, 593, 392, 382, 334, 355,
- 356, 280, 307, 447, 375, 448, 306, 308, 404, 403,
- 405, 207, 608, 626, 0, 208, 0, 499, 611, 653,
- 452, 212, 234, 235, 237, 0, 279, 283, 291, 294,
- 303, 304, 313, 367, 419, 446, 442, 451, 0, 579,
- 602, 616, 628, 634, 635, 637, 638, 639, 640, 641,
- 644, 642, 407, 311, 495, 333, 373, 0, 0, 425,
- 472, 240, 606, 496, 199, 0, 0, 0, 0, 254,
- 255, 0, 575, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 654, 655, 656, 657, 658, 659, 660, 661,
- 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
- 649, 508, 514, 509, 510, 511, 512, 513, 0, 515,
- 0, 0, 0, 0, 0, 398, 0, 591, 592, 672,
- 384, 486, 603, 335, 349, 352, 341, 361, 0, 362,
- 337, 338, 343, 346, 347, 348, 353, 354, 358, 364,
- 249, 210, 390, 399, 578, 312, 216, 217, 218, 524,
- 525, 526, 527, 619, 620, 624, 205, 462, 463, 464,
- 465, 292, 614, 309, 468, 467, 331, 332, 379, 449,
- 540, 542, 553, 557, 559, 561, 567, 570, 541, 543,
- 554, 558, 560, 562, 568, 571, 530, 532, 534, 536,
- 549, 548, 545, 573, 574, 551, 556, 535, 547, 552,
- 565, 572, 569, 529, 533, 537, 546, 564, 563, 544,
- 555, 566, 550, 538, 531, 539, 0, 196, 221, 368,
- 0, 454, 288, 650, 618, 484, 613, 206, 223, 0,
- 262, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 198, 200, 209, 222, 232, 236, 243, 261,
- 276, 278, 285, 298, 310, 318, 319, 322, 328, 380,
- 386, 387, 388, 389, 409, 410, 411, 414, 417, 418,
- 421, 423, 424, 427, 431, 435, 436, 437, 439, 441,
- 443, 455, 460, 474, 475, 476, 477, 478, 481, 482,
- 488, 489, 490, 491, 492, 500, 501, 516, 586, 588,
- 605, 625, 632, 480, 301, 302, 444, 445, 314, 315,
- 646, 647, 300, 600, 633, 597, 645, 627, 438, 378,
- 0, 0, 381, 281, 305, 320, 0, 617, 502, 227,
- 466, 290, 251, 0, 0, 211, 246, 230, 259, 274,
- 277, 324, 391, 400, 429, 434, 296, 271, 244, 459,
- 241, 485, 519, 520, 521, 523, 395, 266, 433, 396,
- 0, 376, 576, 577, 316, 0, 0, 0, 528, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 0, 0, 0, 0, 0, 0, 270, 0,
- 0, 0, 0, 366, 267, 0, 0, 204, 505, 0,
- 430, 0, 203, 0, 487, 252, 377, 374, 583, 282,
- 273, 269, 250, 317, 385, 428, 518, 422, 0, 370,
- 0, 0, 497, 401, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 323, 248, 325, 202, 413, 498, 286, 0,
- 0, 0, 0, 0, 507, 959, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 238, 0, 0, 245, 0,
- 0, 0, 351, 360, 359, 339, 340, 342, 344, 350,
- 357, 363, 336, 345, 0, 0, 609, 0, 0, 0,
- 265, 321, 272, 264, 580, 0, 0, 0, 0, 0,
- 0, 596, 0, 0, 229, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 297, 0, 402, 257, 0, 453, 0, 0, 0,
- 629, 0, 0, 0, 0, 0, 0, 0, 365, 0,
- 330, 197, 225, 0, 0, 412, 461, 473, 0, 0,
- 0, 253, 0, 471, 426, 604, 233, 284, 458, 432,
- 469, 440, 287, 0, 0, 470, 372, 585, 450, 601,
- 630, 631, 263, 406, 615, 522, 623, 648, 226, 260,
- 420, 506, 607, 494, 397, 581, 582, 329, 493, 295,
- 201, 369, 636, 224, 479, 371, 242, 231, 587, 612,
- 299, 289, 456, 643, 213, 517, 598, 239, 483, 0,
- 0, 651, 247, 504, 610, 599, 215, 594, 503, 393,
- 326, 327, 214, 0, 457, 268, 293, 0, 0, 258,
- 415, 589, 590, 256, 652, 228, 622, 220, 0, 621,
- 408, 584, 595, 394, 383, 219, 593, 392, 382, 334,
- 355, 356, 280, 307, 447, 375, 448, 306, 308, 404,
- 403, 405, 207, 608, 626, 0, 208, 0, 499, 611,
- 653, 452, 212, 234, 235, 237, 0, 279, 283, 291,
- 294, 303, 304, 313, 367, 419, 446, 442, 451, 0,
- 579, 602, 616, 628, 634, 635, 637, 638, 639, 640,
- 641, 644, 642, 407, 311, 495, 333, 373, 0, 0,
- 425, 472, 240, 606, 496, 199, 0, 0, 0, 0,
- 254, 255, 0, 575, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 649, 508, 514, 509, 510, 511, 512, 513, 0,
- 515, 0, 0, 0, 0, 0, 398, 0, 591, 592,
- 672, 384, 486, 603, 335, 349, 352, 341, 361, 0,
- 362, 337, 338, 343, 346, 347, 348, 353, 354, 358,
- 364, 249, 210, 390, 399, 578, 312, 216, 217, 218,
- 524, 525, 526, 527, 619, 620, 624, 205, 462, 463,
- 464, 465, 292, 614, 309, 468, 467, 331, 332, 379,
- 449, 540, 542, 553, 557, 559, 561, 567, 570, 541,
- 543, 554, 558, 560, 562, 568, 571, 530, 532, 534,
- 536, 549, 548, 545, 573, 574, 551, 556, 535, 547,
- 552, 565, 572, 569, 529, 533, 537, 546, 564, 563,
- 544, 555, 566, 550, 538, 531, 539, 0, 196, 221,
- 368, 0, 454, 288, 650, 618, 484, 613, 206, 223,
- 0, 262, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
- 261, 276, 278, 285, 298, 310, 318, 319, 322, 328,
- 380, 386, 387, 388, 389, 409, 410, 411, 414, 417,
- 418, 421, 423, 424, 427, 431, 435, 436, 437, 439,
- 441, 443, 455, 460, 474, 475, 476, 477, 478, 481,
- 482, 488, 489, 490, 491, 492, 500, 501, 516, 586,
- 588, 605, 625, 632, 480, 301, 302, 444, 445, 314,
- 315, 646, 647, 300, 600, 633, 597, 645, 627, 438,
- 378, 0, 0, 381, 281, 305, 320, 0, 617, 502,
- 227, 466, 290, 251, 0, 0, 211, 246, 230, 259,
- 274, 277, 324, 391, 400, 429, 434, 296, 271, 244,
- 459, 241, 485, 519, 520, 521, 523, 395, 266, 433,
- 396, 0, 376, 576, 577, 316, 0, 0, 0, 528,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 0, 0, 0, 0, 0, 0, 270,
- 0, 0, 0, 0, 366, 267, 0, 0, 204, 505,
- 0, 430, 0, 203, 0, 487, 252, 377, 374, 583,
- 282, 273, 269, 250, 317, 385, 428, 518, 422, 0,
- 370, 0, 0, 497, 401, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 248, 325, 202, 413, 498, 286,
- 0, 0, 0, 0, 0, 507, 194, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
- 0, 0, 0, 351, 360, 359, 339, 340, 342, 344,
- 350, 357, 363, 336, 345, 0, 0, 609, 0, 0,
- 0, 265, 321, 272, 264, 580, 0, 0, 0, 0,
- 0, 0, 596, 0, 0, 229, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 275, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 1915,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 725, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 297, 0, 402, 257, 0, 453, 0, 0,
- 0, 629, 0, 0, 0, 0, 0, 0, 0, 365,
- 0, 330, 197, 225, 0, 0, 412, 461, 473, 0,
- 0, 0, 253, 0, 471, 426, 604, 233, 284, 458,
- 432, 469, 440, 287, 0, 0, 470, 372, 585, 450,
- 601, 630, 631, 263, 406, 615, 522, 623, 648, 226,
- 260, 420, 506, 607, 494, 397, 581, 582, 329, 493,
- 295, 201, 369, 636, 224, 479, 371, 242, 231, 587,
- 612, 299, 289, 456, 643, 213, 517, 598, 239, 483,
- 0, 0, 651, 247, 504, 610, 599, 215, 594, 503,
- 393, 326, 327, 214, 0, 457, 268, 293, 0, 0,
- 258, 415, 589, 590, 256, 652, 228, 622, 220, 0,
- 621, 408, 584, 595, 394, 383, 219, 593, 392, 382,
- 334, 355, 356, 280, 307, 447, 375, 448, 306, 308,
- 404, 403, 405, 207, 608, 626, 0, 208, 0, 499,
- 611, 653, 452, 212, 234, 235, 237, 0, 279, 283,
- 291, 294, 303, 304, 313, 367, 419, 446, 442, 451,
- 0, 579, 602, 616, 628, 634, 635, 637, 638, 639,
- 640, 641, 644, 642, 407, 311, 495, 333, 373, 0,
- 0, 425, 472, 240, 606, 496, 199, 0, 0, 0,
- 0, 254, 255, 0, 575, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 654, 655, 656, 657, 658, 659,
- 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
- 670, 671, 649, 508, 514, 509, 510, 511, 512, 513,
- 0, 515, 0, 0, 0, 0, 0, 398, 0, 591,
- 592, 672, 384, 486, 603, 335, 349, 352, 341, 361,
- 0, 362, 337, 338, 343, 346, 347, 348, 353, 354,
- 358, 364, 249, 210, 390, 399, 578, 312, 216, 217,
- 218, 524, 525, 526, 527, 619, 620, 624, 205, 462,
- 463, 464, 465, 292, 614, 309, 468, 467, 331, 332,
- 379, 449, 540, 542, 553, 557, 559, 561, 567, 570,
- 541, 543, 554, 558, 560, 562, 568, 571, 530, 532,
- 534, 536, 549, 548, 545, 573, 574, 551, 556, 535,
- 547, 552, 565, 572, 569, 529, 533, 537, 546, 564,
- 563, 544, 555, 566, 550, 538, 531, 539, 0, 196,
- 221, 368, 0, 454, 288, 650, 618, 484, 613, 206,
- 223, 0, 262, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 198, 200, 209, 222, 232, 236,
- 243, 261, 276, 278, 285, 298, 310, 318, 319, 322,
- 328, 380, 386, 387, 388, 389, 409, 410, 411, 414,
- 417, 418, 421, 423, 424, 427, 431, 435, 436, 437,
- 439, 441, 443, 455, 460, 474, 475, 476, 477, 478,
- 481, 482, 488, 489, 490, 491, 492, 500, 501, 516,
- 586, 588, 605, 625, 632, 480, 301, 302, 444, 445,
- 314, 315, 646, 647, 300, 600, 633, 597, 645, 627,
- 438, 378, 0, 0, 381, 281, 305, 320, 0, 617,
- 502, 227, 466, 290, 251, 0, 0, 211, 246, 230,
- 259, 274, 277, 324, 391, 400, 429, 434, 296, 271,
- 244, 459, 241, 485, 519, 520, 521, 523, 395, 266,
- 433, 0, 0, 376, 576, 577, 316,
-}
-
-var yyPact = [...]int{
- -1000, -1000, 1925, -1000, -552, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 1913, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 725, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 1888, 0, 0,
+ 0, 508, 725, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 0, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 1785, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 194, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 410, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 95, 0, 0, 0, 508, 960, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 194, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1457, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 1456, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1050, 0, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 397, 0, 377, 577,
+ 578, 317, 0, 0, 0, 529, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 417, 0, 0,
+ 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
+ 367, 268, 0, 0, 204, 506, 0, 431, 0, 203,
+ 0, 488, 253, 378, 375, 584, 283, 274, 270, 250,
+ 318, 386, 429, 519, 423, 0, 371, 0, 0, 498,
+ 402, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 324,
+ 248, 326, 202, 414, 499, 287, 0, 0, 0, 0,
+ 0, 508, 194, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 238, 0, 0, 245, 0, 0, 0, 352,
+ 361, 360, 340, 341, 343, 345, 351, 358, 364, 337,
+ 346, 0, 0, 610, 0, 0, 0, 266, 322, 273,
+ 265, 581, 0, 0, 0, 0, 0, 0, 597, 0,
+ 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 276, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 298, 0,
+ 403, 258, 0, 454, 0, 676, 0, 630, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 331, 197, 225,
+ 0, 0, 413, 462, 474, 0, 0, 0, 254, 0,
+ 472, 427, 605, 233, 285, 459, 433, 470, 441, 288,
+ 0, 0, 471, 373, 586, 451, 602, 631, 632, 264,
+ 407, 616, 523, 624, 649, 226, 261, 421, 507, 608,
+ 495, 398, 582, 583, 330, 494, 296, 201, 370, 637,
+ 224, 480, 372, 242, 231, 588, 613, 300, 252, 290,
+ 457, 644, 213, 518, 599, 239, 484, 0, 0, 652,
+ 247, 505, 611, 600, 215, 595, 504, 394, 327, 328,
+ 214, 0, 458, 269, 294, 0, 0, 259, 416, 590,
+ 591, 257, 653, 228, 623, 220, 0, 622, 409, 585,
+ 596, 395, 384, 219, 594, 393, 383, 335, 356, 357,
+ 281, 308, 448, 376, 449, 307, 309, 405, 404, 406,
+ 207, 609, 627, 0, 208, 0, 500, 612, 654, 453,
+ 212, 234, 235, 237, 0, 280, 284, 292, 295, 304,
+ 305, 314, 368, 420, 447, 443, 452, 0, 580, 603,
+ 617, 629, 635, 636, 638, 639, 640, 641, 642, 645,
+ 643, 408, 312, 496, 334, 374, 0, 0, 426, 473,
+ 240, 607, 497, 199, 0, 0, 0, 0, 255, 256,
+ 0, 576, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 655, 656, 657, 658, 659, 660, 661, 662, 663,
+ 664, 665, 666, 667, 668, 669, 670, 671, 672, 650,
+ 509, 515, 510, 511, 512, 513, 514, 0, 516, 0,
+ 0, 0, 0, 0, 399, 0, 592, 593, 673, 385,
+ 487, 604, 336, 350, 353, 342, 362, 0, 363, 338,
+ 339, 344, 347, 348, 349, 354, 355, 359, 365, 249,
+ 210, 391, 400, 579, 313, 216, 217, 218, 525, 526,
+ 527, 528, 620, 621, 625, 205, 463, 464, 465, 466,
+ 293, 615, 310, 469, 468, 332, 333, 380, 450, 541,
+ 543, 554, 558, 560, 562, 568, 571, 542, 544, 555,
+ 559, 561, 563, 569, 572, 531, 533, 535, 537, 550,
+ 549, 546, 574, 575, 552, 557, 536, 548, 553, 566,
+ 573, 570, 530, 534, 538, 547, 565, 564, 545, 556,
+ 567, 551, 539, 532, 540, 0, 196, 221, 369, 0,
+ 455, 289, 651, 619, 485, 614, 206, 223, 0, 263,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 198, 200, 209, 222, 232, 236, 243, 262, 277,
+ 279, 286, 299, 311, 319, 320, 323, 329, 381, 387,
+ 388, 389, 390, 410, 411, 412, 415, 418, 419, 422,
+ 424, 425, 428, 432, 436, 437, 438, 440, 442, 444,
+ 456, 461, 475, 476, 477, 478, 479, 482, 483, 489,
+ 490, 491, 492, 493, 501, 502, 517, 587, 589, 606,
+ 626, 633, 481, 302, 303, 445, 446, 315, 316, 647,
+ 648, 301, 601, 634, 598, 646, 628, 439, 379, 0,
+ 0, 382, 282, 306, 321, 0, 618, 503, 227, 467,
+ 291, 251, 0, 0, 211, 246, 230, 260, 275, 278,
+ 325, 392, 401, 430, 435, 297, 272, 244, 460, 241,
+ 486, 520, 521, 522, 524, 396, 267, 434, 397, 0,
+ 377, 577, 578, 317, 0, 0, 0, 529, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 417,
+ 0, 0, 0, 0, 0, 0, 0, 271, 0, 0,
+ 0, 0, 367, 268, 0, 0, 204, 506, 0, 431,
+ 0, 203, 0, 488, 253, 378, 375, 584, 283, 274,
+ 270, 250, 318, 386, 429, 519, 423, 0, 371, 0,
+ 0, 498, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 324, 248, 326, 202, 414, 499, 287, 0, 0,
+ 0, 0, 0, 508, 725, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 238, 0, 0, 245, 0, 0,
+ 0, 352, 361, 360, 340, 341, 343, 345, 351, 358,
+ 364, 337, 346, 0, 0, 610, 0, 0, 0, 266,
+ 322, 273, 265, 581, 0, 0, 0, 0, 0, 0,
+ 597, 0, 0, 229, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 276, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 298, 0, 403, 258, 0, 454, 0, 0, 0, 630,
+ 0, 0, 0, 0, 0, 0, 0, 366, 0, 331,
+ 197, 225, 0, 0, 413, 462, 474, 0, 0, 0,
+ 254, 0, 472, 427, 605, 233, 285, 459, 433, 470,
+ 441, 288, 0, 0, 471, 373, 586, 451, 602, 631,
+ 632, 264, 407, 616, 523, 624, 649, 226, 261, 421,
+ 507, 608, 495, 398, 582, 583, 330, 494, 296, 201,
+ 370, 637, 224, 480, 372, 242, 231, 588, 613, 300,
+ 252, 290, 457, 644, 213, 518, 599, 239, 484, 0,
+ 0, 652, 247, 505, 611, 600, 215, 595, 504, 394,
+ 327, 328, 214, 0, 458, 269, 294, 0, 0, 259,
+ 416, 590, 591, 257, 653, 228, 623, 220, 0, 622,
+ 409, 585, 596, 395, 384, 219, 594, 393, 383, 335,
+ 356, 357, 281, 308, 448, 376, 449, 307, 309, 405,
+ 404, 406, 207, 609, 627, 0, 208, 0, 500, 612,
+ 654, 453, 212, 234, 235, 237, 0, 280, 284, 292,
+ 295, 304, 305, 314, 368, 420, 447, 443, 452, 0,
+ 580, 603, 617, 629, 635, 636, 638, 639, 640, 641,
+ 642, 645, 643, 408, 312, 496, 334, 374, 0, 0,
+ 426, 473, 240, 607, 497, 199, 0, 0, 0, 0,
+ 255, 256, 0, 576, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 655, 656, 657, 658, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 650, 509, 515, 510, 511, 512, 513, 514, 0,
+ 516, 0, 0, 0, 0, 0, 399, 0, 592, 593,
+ 673, 385, 487, 604, 336, 350, 353, 342, 362, 0,
+ 363, 338, 339, 344, 347, 348, 349, 354, 355, 359,
+ 365, 249, 210, 391, 400, 579, 313, 216, 217, 218,
+ 525, 526, 527, 528, 620, 621, 625, 205, 463, 464,
+ 465, 466, 293, 615, 310, 469, 468, 332, 333, 380,
+ 450, 541, 543, 554, 558, 560, 562, 568, 571, 542,
+ 544, 555, 559, 561, 563, 569, 572, 531, 533, 535,
+ 537, 550, 549, 546, 574, 575, 552, 557, 536, 548,
+ 553, 566, 573, 570, 530, 534, 538, 547, 565, 564,
+ 545, 556, 567, 551, 539, 532, 540, 0, 196, 221,
+ 369, 0, 455, 289, 651, 619, 485, 614, 206, 223,
+ 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 198, 200, 209, 222, 232, 236, 243,
+ 262, 277, 279, 286, 299, 311, 319, 320, 323, 329,
+ 381, 387, 388, 389, 390, 4139, 411, 412, 415, 418,
+ 419, 422, 424, 425, 428, 432, 436, 437, 438, 440,
+ 442, 444, 456, 461, 475, 476, 477, 478, 479, 482,
+ 483, 489, 490, 491, 492, 493, 501, 502, 517, 587,
+ 589, 606, 626, 633, 481, 302, 303, 445, 446, 315,
+ 316, 647, 648, 301, 601, 634, 598, 646, 628, 439,
+ 379, 0, 0, 382, 282, 306, 321, 0, 618, 503,
+ 227, 467, 291, 251, 0, 0, 211, 246, 230, 260,
+ 275, 278, 325, 392, 401, 430, 435, 297, 272, 244,
+ 460, 241, 486, 520, 521, 522, 524, 396, 267, 434,
+ 397, 0, 377, 577, 578, 317, 0, 0, 0, 529,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 417, 0, 0, 0, 0, 0, 0, 0, 271,
+ 0, 0, 0, 0, 367, 268, 0, 0, 204, 506,
+ 0, 431, 0, 203, 0, 488, 253, 378, 375, 584,
+ 283, 274, 270, 250, 318, 386, 429, 519, 423, 0,
+ 371, 0, 0, 498, 402, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 324, 248, 326, 202, 414, 499, 287,
+ 0, 0, 0, 0, 0, 508, 725, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 238, 0, 0, 245,
+ 0, 0, 0, 352, 361, 360, 340, 341, 343, 345,
+ 351, 358, 364, 337, 346, 0, 0, 610, 0, 0,
+ 0, 266, 322, 273, 265, 581, 0, 0, 0, 0,
+ 0, 0, 597, 0, 0, 229, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 298, 0, 403, 258, 0, 454, 0, 0,
+ 0, 630, 0, 0, 0, 0, 0, 0, 0, 366,
+ 0, 331, 197, 225, 0, 0, 413, 462, 474, 0,
+ 0, 0, 254, 0, 472, 427, 605, 233, 285, 459,
+ 433, 470, 441, 288, 0, 0, 471, 373, 586, 451,
+ 602, 631, 632, 264, 407, 616, 523, 624, 649, 226,
+ 261, 421, 507, 608, 495, 398, 582, 583, 330, 494,
+ 296, 201, 370, 637, 224, 480, 372, 242, 231, 588,
+ 613, 300, 252, 290, 457, 644, 213, 518, 599, 239,
+ 484, 0, 0, 652, 247, 505, 611, 600, 215, 595,
+ 504, 394, 327, 328, 214, 0, 458, 269, 294, 0,
+ 0, 259, 416, 590, 591, 257, 653, 228, 623, 220,
+ 0, 622, 409, 585, 596, 395, 384, 219, 594, 393,
+ 383, 335, 356, 357, 281, 308, 448, 376, 449, 307,
+ 309, 405, 404, 406, 207, 609, 627, 0, 208, 0,
+ 500, 612, 654, 453, 212, 234, 235, 237, 0, 280,
+ 284, 292, 295, 304, 305, 314, 368, 420, 447, 443,
+ 452, 0, 580, 603, 617, 629, 635, 636, 638, 639,
+ 640, 641, 642, 645, 643, 408, 312, 496, 334, 374,
+ 0, 0, 426, 473, 240, 607, 497, 199, 0, 0,
+ 0, 0, 255, 256, 0, 576, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 655, 656, 657, 658, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 650, 509, 515, 510, 511, 512, 513,
+ 514, 0, 516, 0, 0, 0, 0, 0, 399, 0,
+ 592, 593, 673, 385, 487, 604, 336, 350, 353, 342,
+ 362, 0, 363, 338, 339, 344, 347, 348, 349, 354,
+ 355, 359, 365, 249, 210, 391, 400, 579, 313, 216,
+ 217, 218, 525, 526, 527, 528, 620, 621, 625, 205,
+ 463, 464, 465, 466, 293, 615, 310, 469, 468, 332,
+ 333, 380, 450, 541, 543, 554, 558, 560, 562, 568,
+ 571, 542, 544, 555, 559, 561, 563, 569, 572, 531,
+ 533, 535, 537, 550, 549, 546, 574, 575, 552, 557,
+ 536, 548, 553, 566, 573, 570, 530, 534, 538, 547,
+ 565, 564, 545, 556, 567, 551, 539, 532, 540, 0,
+ 196, 221, 369, 0, 455, 289, 651, 619, 485, 614,
+ 206, 223, 0, 263, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 198, 200, 209, 222, 232,
+ 236, 243, 262, 277, 279, 286, 299, 311, 319, 320,
+ 323, 329, 381, 387, 388, 389, 390, 410, 411, 412,
+ 415, 418, 419, 422, 424, 425, 428, 432, 436, 437,
+ 438, 440, 442, 444, 456, 461, 475, 476, 477, 478,
+ 479, 482, 483, 489, 490, 491, 492, 493, 501, 502,
+ 517, 587, 589, 606, 626, 633, 481, 302, 303, 445,
+ 446, 315, 316, 647, 648, 301, 601, 634, 598, 646,
+ 628, 439, 379, 0, 0, 382, 282, 306, 321, 0,
+ 618, 503, 227, 467, 291, 251, 0, 0, 211, 246,
+ 230, 260, 275, 278, 325, 392, 401, 430, 435, 297,
+ 272, 244, 460, 241, 486, 520, 521, 522, 524, 396,
+ 267, 434, 397, 0, 377, 577, 578, 317, 0, 0,
+ 0, 529, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 0, 271, 0, 0, 0, 0, 367, 268, 0, 0,
+ 204, 506, 0, 431, 0, 203, 0, 488, 253, 378,
+ 375, 584, 283, 274, 270, 250, 318, 386, 429, 519,
+ 423, 0, 371, 0, 0, 498, 402, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 324, 248, 326, 202, 414,
+ 499, 287, 0, 0, 0, 0, 0, 508, 960, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
+ 0, 245, 0, 0, 0, 352, 361, 360, 340, 341,
+ 343, 345, 351, 358, 364, 337, 346, 0, 0, 610,
+ 0, 0, 0, 266, 322, 273, 265, 581, 0, 0,
+ 0, 0, 0, 0, 597, 0, 0, 229, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 276, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 298, 0, 403, 258, 0, 454,
+ 0, 0, 0, 630, 0, 0, 0, 0, 0, 0,
+ 0, 366, 0, 331, 197, 225, 0, 0, 413, 462,
+ 474, 0, 0, 0, 254, 0, 472, 427, 605, 233,
+ 285, 459, 433, 470, 441, 288, 0, 0, 471, 373,
+ 586, 451, 602, 631, 632, 264, 407, 616, 523, 624,
+ 649, 226, 261, 421, 507, 608, 495, 398, 582, 583,
+ 330, 494, 296, 201, 370, 637, 224, 480, 372, 242,
+ 231, 588, 613, 300, 252, 290, 457, 644, 213, 518,
+ 599, 239, 484, 0, 0, 652, 247, 505, 611, 600,
+ 215, 595, 504, 394, 327, 328, 214, 0, 458, 269,
+ 294, 0, 0, 259, 416, 590, 591, 257, 653, 228,
+ 623, 220, 0, 622, 409, 585, 596, 395, 384, 219,
+ 594, 393, 383, 335, 356, 357, 281, 308, 448, 376,
+ 449, 307, 309, 405, 404, 406, 207, 609, 627, 0,
+ 208, 0, 500, 612, 654, 453, 212, 234, 235, 237,
+ 0, 280, 284, 292, 295, 304, 305, 314, 368, 420,
+ 447, 443, 452, 0, 580, 603, 617, 629, 635, 636,
+ 638, 639, 640, 641, 642, 645, 643, 408, 312, 496,
+ 334, 374, 0, 0, 426, 473, 240, 607, 497, 199,
+ 0, 0, 0, 0, 255, 256, 0, 576, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 655, 656, 657,
+ 658, 659, 660, 661, 662, 663, 664, 665, 666, 667,
+ 668, 669, 670, 671, 672, 650, 509, 515, 510, 511,
+ 512, 513, 514, 0, 516, 0, 0, 0, 0, 0,
+ 399, 0, 592, 593, 673, 385, 487, 604, 336, 350,
+ 353, 342, 362, 0, 363, 338, 339, 344, 347, 348,
+ 349, 354, 355, 359, 365, 249, 210, 391, 400, 579,
+ 313, 216, 217, 218, 525, 526, 527, 528, 620, 621,
+ 625, 205, 463, 464, 465, 466, 293, 615, 310, 469,
+ 468, 332, 333, 380, 450, 541, 543, 554, 558, 560,
+ 562, 568, 571, 542, 544, 555, 559, 561, 563, 569,
+ 572, 531, 533, 535, 537, 550, 549, 546, 574, 575,
+ 552, 557, 536, 548, 553, 566, 573, 570, 530, 534,
+ 538, 547, 565, 564, 545, 556, 567, 551, 539, 532,
+ 540, 0, 196, 221, 369, 0, 455, 289, 651, 619,
+ 485, 614, 206, 223, 0, 263, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 198, 200, 209,
+ 222, 232, 236, 243, 262, 277, 279, 286, 299, 311,
+ 319, 320, 323, 329, 381, 387, 388, 389, 390, 410,
+ 411, 412, 415, 418, 419, 422, 424, 425, 428, 432,
+ 436, 437, 438, 440, 442, 444, 456, 461, 475, 476,
+ 477, 478, 479, 482, 483, 489, 490, 491, 492, 493,
+ 501, 502, 517, 587, 589, 606, 626, 633, 481, 302,
+ 303, 445, 446, 315, 316, 647, 648, 301, 601, 634,
+ 598, 646, 628, 439, 379, 0, 0, 382, 282, 306,
+ 321, 0, 618, 503, 227, 467, 291, 251, 0, 0,
+ 211, 246, 230, 260, 275, 278, 325, 392, 401, 430,
+ 435, 297, 272, 244, 460, 241, 486, 520, 521, 522,
+ 524, 396, 267, 434, 397, 0, 377, 577, 578, 317,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
+ 0, 0, 0, 271, 0, 0, 0, 0, 367, 268,
+ 0, 0, 204, 506, 0, 431, 0, 203, 0, 488,
+ 253, 378, 375, 584, 283, 274, 270, 250, 318, 386,
+ 429, 519, 423, 0, 371, 0, 0, 498, 402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 324, 248, 326,
+ 202, 414, 499, 287, 0, 0, 0, 0, 0, 508,
+ 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 238, 0, 0, 245, 0, 0, 0, 352, 361, 360,
+ 340, 341, 343, 345, 351, 358, 364, 337, 346, 0,
+ 0, 610, 0, 0, 0, 266, 322, 273, 265, 581,
+ 0, 0, 0, 0, 0, 0, 597, 0, 0, 229,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 276, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 298, 0, 403, 258,
+ 0, 454, 0, 0, 0, 630, 0, 0, 0, 0,
+ 0, 0, 0, 366, 0, 331, 197, 225, 0, 0,
+ 413, 462, 474, 0, 0, 0, 254, 0, 472, 427,
+ 605, 233, 285, 459, 433, 470, 441, 288, 0, 0,
+ 471, 373, 586, 451, 602, 631, 632, 264, 407, 616,
+ 523, 624, 649, 226, 261, 421, 507, 608, 495, 398,
+ 582, 583, 330, 494, 296, 201, 370, 637, 224, 480,
+ 372, 242, 231, 588, 613, 300, 252, 290, 457, 644,
+ 213, 518, 599, 239, 484, 0, 0, 652, 247, 505,
+ 611, 600, 215, 595, 504, 394, 327, 328, 214, 0,
+ 458, 269, 294, 0, 0, 259, 416, 590, 591, 257,
+ 653, 228, 623, 220, 0, 622, 409, 585, 596, 395,
+ 384, 219, 594, 393, 383, 335, 356, 357, 281, 308,
+ 448, 376, 449, 307, 309, 405, 404, 406, 207, 609,
+ 627, 0, 208, 0, 500, 612, 654, 453, 212, 234,
+ 235, 237, 0, 280, 284, 292, 295, 304, 305, 314,
+ 368, 420, 447, 443, 452, 0, 580, 603, 617, 629,
+ 635, 636, 638, 639, 640, 641, 642, 645, 643, 408,
+ 312, 496, 334, 374, 0, 0, 426, 473, 240, 607,
+ 497, 199, 0, 0, 0, 0, 255, 256, 0, 576,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
+ 656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 650, 509, 515,
+ 510, 511, 512, 513, 514, 0, 516, 0, 0, 0,
+ 0, 0, 399, 0, 592, 593, 673, 385, 487, 604,
+ 336, 350, 353, 342, 362, 0, 363, 338, 339, 344,
+ 347, 348, 349, 354, 355, 359, 365, 249, 210, 391,
+ 400, 579, 313, 216, 217, 218, 525, 526, 527, 528,
+ 620, 621, 625, 205, 463, 464, 465, 466, 293, 615,
+ 310, 469, 468, 332, 333, 380, 450, 541, 543, 554,
+ 558, 560, 562, 568, 571, 542, 544, 555, 559, 561,
+ 563, 569, 572, 531, 533, 535, 537, 550, 549, 546,
+ 574, 575, 552, 557, 536, 548, 553, 566, 573, 570,
+ 530, 534, 538, 547, 565, 564, 545, 556, 567, 551,
+ 539, 532, 540, 0, 196, 221, 369, 0, 455, 289,
+ 651, 619, 485, 614, 206, 223, 0, 263, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 200, 209, 222, 232, 236, 243, 262, 277, 279, 286,
+ 299, 311, 319, 320, 323, 329, 381, 387, 388, 389,
+ 390, 410, 411, 412, 415, 418, 419, 422, 424, 425,
+ 428, 432, 436, 437, 438, 440, 442, 444, 456, 461,
+ 475, 476, 477, 478, 479, 482, 483, 489, 490, 491,
+ 492, 493, 501, 502, 517, 587, 589, 606, 626, 633,
+ 481, 302, 303, 445, 446, 315, 316, 647, 648, 301,
+ 601, 634, 598, 646, 628, 439, 379, 0, 0, 382,
+ 282, 306, 321, 0, 618, 503, 227, 467, 291, 251,
+ 0, 0, 211, 246, 230, 260, 275, 278, 325, 392,
+ 401, 430, 435, 297, 272, 244, 460, 241, 486, 520,
+ 521, 522, 524, 396, 267, 434, 0, 0, 377, 577,
+ 578, 317,
+}
+
+var yyPact = [...]int{
+ -1000, -1000, 4350, -1000, -549, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, 2520, 2555, -1000, -1000, -1000, -1000, 2696, -1000, 1031,
+ 2117, -1000, 2474, 4989, -1000, 56250, 778, -1000, 53282, -420,
+ 897, 238, 36958, -1000, 193, -1000, 186, 54766, 189, -1000,
+ -1000, -1000, -1000, -420, 22860, 2334, 57, 55, 56250, -1000,
+ -1000, -1000, -1000, -373, 2641, 2087, -1000, 392, -1000, -1000,
+ -1000, -1000, -1000, -1000, 52540, -1000, 1119, -1000, -1000, 2482,
+ 2485, 2309, 941, 2399, -1000, 2569, 2087, -1000, 22860, 2632,
+ 2475, 22118, 22118, 456, -1000, -1000, 269, -1000, -1000, 31764,
+ 56250, 39926, 322, -1000, 2474, -1000, -1000, -1000, 211, -1000,
+ 342, 1987, -1000, 1971, -1000, 937, 914, 389, 473, 471,
+ 386, 385, 384, 368, 367, 363, 358, 355, 399, -1000,
+ 958, 958, -218, -220, 371, 769, 460, 460, 1035, 490,
+ 2427, 2379, -1000, -1000, 958, 958, 958, 339, 958, 958,
+ 958, 958, 311, 310, 958, 958, 958, 958, 958, 958,
+ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958,
+ 958, 917, 2474, 270, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, 2636, 2900, -1000, -1000, -1000, -1000, 2720, -1000, 1025,
- 2152, -1000, 2517, 5041, -1000, 55856, 753, -1000, 52892, -454,
- 877, 238, 36590, -1000, 177, -1000, 165, 54374, 169, -1000,
- -1000, -1000, -1000, -454, 22511, 2360, 38, 37, 55856, -1000,
- -1000, -1000, -1000, -373, 2674, 2129, -1000, 380, -1000, -1000,
- -1000, -1000, -1000, -1000, 52151, -1000, 1229, -1000, -1000, 2522,
- 2491, 2370, 943, 2372, -1000, 2590, 2129, -1000, 22511, 2666,
- 2439, 21770, 21770, 467, -1000, -1000, 273, -1000, -1000, 31403,
- 55856, 39554, 897, -1000, 2517, -1000, -1000, -1000, 212, -1000,
- 349, 2043, -1000, 2039, -1000, 942, 1017, 408, 473, 466,
- 405, 404, 394, 391, 389, 388, 386, 381, 385, -1000,
- 974, 974, -236, -241, 1021, 454, 461, 461, 1048, 496,
- 2473, 2463, -1000, -1000, 974, 974, 974, 360, 974, 974,
- 974, 974, 303, 302, 974, 974, 974, 974, 974, 974,
- 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
- 974, 902, 2517, 266, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
@@ -7425,70 +7470,70 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 56250, 194, 56250, -1000, 828, 775,
+ -1000, -1000, -459, 1114, 1114, 101, 1114, 1114, 1114, 1114,
+ 183, 1043, 54, -1000, 182, 261, 168, 271, 1096, 304,
+ -1000, -1000, 257, 1096, 1834, -1000, 946, 266, 169, -1000,
+ 1114, 1114, -1000, 15416, 203, 15416, 15416, 265, 172, -1000,
+ 2464, -1000, -1000, -1000, -1000, -1000, 1344, -1000, -1000, -1000,
+ -1000, -37, 489, -1000, -1000, -1000, -1000, 54766, 51798, 283,
+ -1000, -1000, 780, 1851, 1393, 22860, 1315, 938, -1000, -1000,
+ 1434, 900, -1000, -1000, -1000, -1000, -1000, 809, -1000, 25086,
+ 25086, 25086, 25086, -1000, -1000, 1830, 51056, 1830, 1830, 25086,
+ 1830, 25086, 1830, 1830, 1830, 1830, 22860, 1830, 1830, 1830,
+ 1830, -1000, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, -1000, -1000, -1000, -1000, 1830, 826, 1830, 1830, 1830,
+ 1830, 1830, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1830,
+ 1830, 1830, 1830, 1830, 1830, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, -1000, -1000,
+ -1000, 1692, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1693,
+ 1513, 1500, 1498, -1000, 19892, 1830, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, 55856, 234, 55856, -1000, 821, 730, -1000,
- -1000, -458, 1154, 1154, 80, 1154, 1154, 1154, 1154, 164,
- 1008, 33, -1000, 160, 271, 149, 261, 1096, 798, -1000,
- -1000, 252, 1096, 1852, -1000, 949, 259, 155, -1000, 1154,
- 1154, -1000, 15077, 220, 15077, 15077, 256, 154, -1000, 2494,
- -1000, -1000, -1000, -1000, -1000, 1381, -1000, -1000, -1000, -1000,
- -36, 489, -1000, -1000, -1000, -1000, 54374, 51410, 290, -1000,
- -1000, 30, 1958, 1395, 22511, 1420, 940, -1000, -1000, 1248,
- 904, -1000, -1000, -1000, -1000, -1000, 783, -1000, 24734, 24734,
- 24734, 24734, -1000, -1000, 2048, 50669, 2048, 2048, 24734, 2048,
- 24734, 2048, 2048, 2048, 2048, 22511, 2048, 2048, 2048, 2048,
- -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- -1000, -1000, -1000, -1000, 2048, 820, 2048, 2048, 2048, 2048,
- 2048, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2048, 2048,
- 2048, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, -1000,
- 1591, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1583, 1540,
- 1534, 1525, -1000, 19547, 2048, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 56250, -1000, 1830,
+ 216, 54766, 54766, 340, 1333, -1000, -1000, 2569, 2087, -1000,
+ 2641, 2620, 392, -1000, 3919, 2111, 1683, 1406, 2087, 1954,
+ 56250, -1000, 2005, -1000, -1000, -1000, -357, -364, 2232, 1455,
+ 1829, -1000, -1000, -1000, -1000, 1798, 22860, -1000, -1000, 2693,
+ -1000, 28796, 823, 2687, 50314, -1000, 456, 456, 1969, 421,
+ 13, -1000, -1000, -1000, -1000, 979, 36216, -1000, -1000, -1000,
+ -1000, -1000, 1884, 56250, -1000, -1000, 5043, 54766, -1000, 2107,
+ -1000, 1875, -1000, 2041, 22860, 2126, 768, 54766, 523, 516,
+ 510, 475, -62, -1000, -1000, -1000, -1000, -1000, -1000, 958,
+ 958, 958, -1000, 395, 2623, 4989, 5064, -1000, -1000, -1000,
+ 49572, 2102, 54766, -1000, 2088, -1000, 1039, 861, 864, 864,
+ 54766, -1000, -1000, 55508, 54766, 1037, 1033, 54766, 54766, 54766,
+ 54766, -1000, 48830, -1000, 48088, 47346, 1331, 54766, 46604, 45862,
+ 45120, 44378, 43636, -1000, 2609, -1000, 2204, -1000, -1000, -1000,
+ 55508, 54766, 54766, 55508, 54766, 55508, 56250, 54766, -1000, -1000,
+ 357, -1000, -1000, 1329, 1327, 1319, 958, 958, 1317, 1828,
+ 1823, 1816, 958, 958, 1305, 1800, 38442, 1780, 276, 1299,
+ 1296, 1294, 1293, 1775, 259, 1757, 1237, 1220, 1272, 54766,
+ 2083, 56250, -1000, 250, 1070, 434, 978, 2474, 2331, 1964,
+ 488, 767, 54766, 474, 474, 54766, -1000, 16164, 56250, 230,
+ -1000, 1744, 22860, -1000, 1117, 1096, 1096, -1000, -1000, -1000,
+ -1000, -1000, -1000, 1114, 56250, 1117, -1000, -1000, -1000, 1096,
+ 1114, 56250, 1114, 1114, 1114, 1114, 1096, 1096, 1096, 1114,
+ 56250, 56250, 56250, 56250, 56250, 56250, 56250, 56250, 56250, 15416,
+ 946, 1114, -460, -1000, 1742, -1000, -1000, -1000, 2230, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, 55856, -1000, 2048, 196,
- 54374, 54374, 317, 1361, -1000, -1000, 2590, 2129, -1000, 2674,
- 2662, 380, -1000, 3907, 2056, 1627, 1538, 2129, 2019, 55856,
- -1000, 2052, -1000, -1000, -1000, -343, -355, 2294, 1519, 1848,
- -1000, -1000, -1000, -1000, 2065, 22511, -1000, -1000, 2717, -1000,
- 28439, 816, 2706, 49928, -1000, 467, 467, 2036, 427, -4,
- -1000, -1000, -1000, -1000, 1006, 35849, -1000, -1000, -1000, -1000,
- -1000, 1946, 55856, -1000, -1000, 4251, 54374, -1000, 2150, -1000,
- 1934, -1000, 2102, 22511, 2174, 724, 54374, 515, 510, 506,
- 468, -71, -1000, -1000, -1000, -1000, -1000, -1000, 974, 974,
- 974, -1000, 372, 2658, 5041, 5724, -1000, -1000, -1000, 49187,
- 2148, 54374, -1000, 2147, -1000, 1136, 835, 847, 847, 54374,
- -1000, -1000, 55115, 54374, 1113, 1093, 54374, 54374, 54374, 54374,
- -1000, 48446, -1000, 47705, 46964, 1359, 54374, 46223, 45482, 44741,
- 44000, 43259, -1000, 2471, -1000, 2096, -1000, -1000, -1000, 55115,
- 54374, 54374, 55115, 54374, 55115, 55856, 54374, -1000, -1000, 321,
- -1000, -1000, 1354, 1344, 1338, 974, 974, 1337, 1825, 1823,
- 1807, 974, 974, 1336, 1799, 38072, 1791, 260, 1332, 1314,
- 1312, 1340, 1772, 282, 1761, 1333, 1309, 1310, 54374, 2144,
- 55856, -1000, 243, 1023, 407, 1005, 2517, 2353, 2033, 481,
- 528, 54374, 464, 464, 54374, -1000, 15824, 55856, 217, -1000,
- 1736, 22511, -1000, 1103, 1096, 1096, -1000, -1000, -1000, -1000,
- -1000, -1000, 1154, 55856, 1103, -1000, -1000, -1000, 1096, 1154,
- 55856, 1154, 1154, 1154, 1154, 1096, 1096, 1096, 1154, 55856,
- 55856, 55856, 55856, 55856, 55856, 55856, 55856, 55856, 15077, 949,
- 1154, -459, -1000, 1721, -1000, -1000, -1000, 2256, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
@@ -7501,340 +7546,337 @@ var yyPact = [...]int{
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15416,
+ 15416, -1000, -1000, 2565, 2559, -1000, -1000, -1000, 1960, -1000,
+ 184, 17, 185, -1000, 42894, 535, 974, -1000, 535, -1000,
+ -1000, -1000, -1000, -1000, 1959, 42152, -1000, -461, -464, -467,
+ -469, -1000, -1000, -1000, -471, -473, -1000, -1000, -1000, 22860,
+ 22860, 22860, 22860, -257, -1000, 1217, 25086, 2491, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 22860, 247, 1131, 25086, 25086,
+ 25086, 25086, 25086, 25086, 25086, 26570, 25828, 25086, 25086, 25086,
+ 25086, 25086, 25086, -1000, -1000, 33990, 6271, 6271, 900, 900,
+ 900, 900, -1000, -174, 1958, 55508, -1000, -1000, -1000, 822,
+ 22860, 22860, 900, -1000, 1238, 2007, 19892, 22860, 22860, 22860,
+ 22860, 960, 1393, 55508, 22860, -1000, 1406, -1000, -1000, -1000,
+ -1000, 1234, -1000, -1000, 1081, 2376, 2376, 2376, 2376, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 2376,
+ 22860, 208, 208, 919, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 18408, 22860, 22860, 25086, 22860, 22860, 22860, 1406,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 1406,
+ 22860, 1221, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 17660,
+ 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000, -1000,
+ -1000, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 1406,
+ 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 1686, 1493, 1478, 22860, -1000,
+ 1957, -1000, -202, 31022, 22860, 1739, 2683, 2157, 54766, -1000,
+ -1000, -1000, -1000, 2569, -1000, 2569, 1686, 3881, 2277, 22118,
+ -1000, -1000, 3881, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, 1737, -1000, 56250, 1954,
+ 2545, 54766, -1000, -294, -1000, -295, 2272, 1730, 351, -1000,
+ 22860, 22860, 1953, -1000, 1399, 56250, -1000, -257, -1000, 41410,
+ -1000, -1000, 14668, 56250, 350, 56250, -1000, 30280, 40668, 306,
+ -1000, 13, 1933, -1000, 29, 1, 19150, 899, -1000, -1000,
+ -1000, 371, 27312, 1822, 899, 100, -1000, -1000, -1000, 2041,
+ -1000, 2041, 2041, 2041, 2041, 351, 351, 351, 351, -1000,
+ -1000, -1000, -1000, -1000, 2079, 2041, 2075, -1000, 2041, 2041,
+ 2041, 2041, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2073,
+ 2073, 2073, 2061, 2061, 2042, 2042, 447, -1000, 22860, 486,
+ 39926, 2537, 1270, 1538, 250, 475, 2144, 54766, 54766, 54766,
+ 56250, 989, -1000, 1445, 1412, 1398, -1000, -532, 1952, -1000,
+ -1000, 2617, -1000, -1000, 956, 1088, 1084, 1064, 54766, 214,
+ 335, -1000, 433, -1000, 39926, 54766, 1029, 864, 54766, -1000,
+ 54766, -1000, -1000, -1000, -1000, -1000, 54766, -1000, -1000, 1950,
+ -1000, 1927, 1106, 1083, 1098, 1080, 1950, -1000, -1000, -183,
+ 1950, -1000, 1950, -1000, 1950, -1000, 1950, -1000, 1950, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1001, 278,
+ -350, 54766, 214, 487, -1000, 485, 33990, -1000, -1000, -1000,
+ 33990, 33990, -1000, -1000, -1000, -1000, 1726, 1723, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -520, 56250, -1000,
+ 236, 971, 268, 376, 291, 56250, 405, 2423, 2413, 2403,
+ 2396, 2391, 2373, 2366, 242, 298, 56250, 56250, 474, 2206,
+ 56250, 2522, 56250, -1000, -1000, -1000, -1000, -1000, 1716, 1708,
+ -1000, 1393, 56250, -1000, -1000, 1114, 1114, -1000, -1000, 56250,
+ 1114, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1114,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15077, 15077,
- -1000, -1000, 2584, 2575, -1000, -1000, -1000, 2032, -1000, 163,
- 5, 168, -1000, 42518, 513, 1004, -1000, 513, -1000, -1000,
- -1000, -1000, -1000, 2027, 41777, -1000, -460, -461, -462, -463,
- -1000, -1000, -1000, -464, -473, -1000, -1000, -1000, 22511, 22511,
- 22511, 22511, -276, -1000, 1199, 24734, 2504, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 22511, 247, 991, 24734, 24734, 24734,
- 24734, 24734, 24734, 24734, 26216, 25475, 24734, 24734, 24734, 24734,
- 24734, 24734, -1000, -1000, 33626, 6276, 6276, 904, 904, 904,
- 904, -1000, -186, 2022, 55115, -1000, -1000, -1000, 813, 22511,
- 22511, 904, -1000, 1253, 1138, 19547, 22511, 22511, 22511, 22511,
- 1011, 1395, 55115, 22511, -1000, 1538, -1000, -1000, -1000, -1000,
- 1245, -1000, -1000, 1091, 2415, 2415, 2415, 2415, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 2415, 22511,
- 148, 148, 719, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 18065, 22511, 22511, 24734, 22511, 22511, 22511, 1538, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511,
- 1351, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 17318, 22511,
- 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
- 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511,
- 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 1638, 1518, 1544, 22511, -1000, 2020,
- -1000, -200, 30662, 22511, 1691, 2695, 2185, 54374, -1000, -1000,
- -1000, -1000, 2590, -1000, 2590, 1638, 3897, 2266, 21770, -1000,
- -1000, 3897, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 1820, -1000, 55856, 2019, 2566,
- 54374, -1000, -316, -1000, -321, 2296, 1687, 318, -1000, 22511,
- 22511, 2016, -1000, 1698, 55856, -1000, -276, -1000, 41036, -1000,
- -1000, 14330, 55856, 354, 55856, -1000, 29921, 40295, 319, -1000,
- -4, 1996, -1000, 12, -2, 18806, 882, -1000, -1000, -1000,
- 1021, 26957, 1950, 882, 83, -1000, -1000, -1000, 2102, -1000,
- 2102, 2102, 2102, 2102, 318, 318, 318, 318, -1000, -1000,
- -1000, -1000, -1000, 2142, 2102, 2137, -1000, 2102, 2102, 2102,
- 2102, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2136, 2136,
- 2136, 2134, 2134, 2106, 2106, 453, -1000, 22511, 435, 39554,
- 2546, 1308, 1193, 243, 468, 2183, 54374, 54374, 54374, 55856,
- 1052, -1000, 1408, 1404, 1380, -1000, -532, 2015, -1000, -1000,
- 2656, -1000, -1000, 964, 1175, 1172, 893, 54374, 205, 328,
- -1000, 440, -1000, 39554, 54374, 1087, 847, 54374, -1000, 54374,
- -1000, -1000, -1000, -1000, -1000, 54374, -1000, -1000, 2014, -1000,
- 2005, 1201, 1166, 1195, 1161, 2014, -1000, -1000, -194, 2014,
- -1000, 2014, -1000, 2014, -1000, 2014, -1000, 2014, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, 993, 286, -385,
- 54374, 205, 480, -1000, 479, 33626, -1000, -1000, -1000, 33626,
- 33626, -1000, -1000, -1000, -1000, 1656, 1643, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, 56250, -1000, -1000, -1000, -1000,
+ 1702, -1000, 56250, -37, 177, -1000, -1000, 54766, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -114, -1000, 854,
+ 26, 393, -1000, -1000, -1000, -1000, -1000, 2550, -1000, 1393,
+ 1021, 1010, -1000, 1830, -1000, -1000, 1233, -1000, -1000, -1000,
+ -1000, -1000, 1830, 1830, 1830, -1000, -1000, -1000, -1000, -1000,
+ 247, 25086, 25086, 25086, 1782, 777, 1891, 1812, 1474, 1231,
+ 1231, 976, 25086, 976, 25086, 918, 918, 918, 918, 918,
+ -1000, -1000, -1000, -1000, -1000, -1000, 1692, -1000, 1667, -1000,
+ 1830, 55508, 1827, 17660, 1747, 1599, 1406, 932, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3935, 1406,
+ 1851, 1406, 1674, 3902, 1026, -1000, 22860, 1406, 3610, -1000,
+ -1000, 1406, 1406, 22860, -1000, -1000, 22860, 22860, 22860, 22860,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 22860, 1538, 1947, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -522, 55856, -1000, 228,
- 998, 288, 315, 265, 55856, 367, 2469, 2438, 2433, 2432,
- 2429, 2420, 2397, 241, 301, 55856, 55856, 464, 2240, 55856,
- 2549, 55856, -1000, -1000, -1000, -1000, -1000, 1632, 1619, -1000,
- 1395, 55856, -1000, -1000, 1154, 1154, -1000, -1000, 55856, 1154,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1154, -1000,
+ -1000, 1938, 2669, 1558, 1538, 1538, 1538, 1538, 3587, 1538,
+ 1538, 22860, 1358, -1000, -1000, -1000, 1419, 3583, 1684, 3572,
+ 1538, 1538, -1000, 1538, 3541, 3536, 1406, 2928, 2820, 1538,
+ 1538, 1538, 1538, 1538, 2792, 2778, 1538, 1538, 2705, 1538,
+ 3522, 1538, 2698, 2681, 2677, 2633, 2611, 2603, 2594, 2570,
+ 2561, 2539, 2533, 2523, 2509, 2492, 2458, 2448, 2444, 2407,
+ 1538, 1538, 1538, 3508, 1538, 3489, 1538, 3485, 1538, 1538,
+ 3474, 2394, 2364, 1406, 1934, -1000, 3469, 1538, 3457, 3453,
+ 3446, 2354, 3427, 3422, 3418, 1538, 1538, 1538, 2339, 3413,
+ 3407, 3395, 3391, 3374, 3369, 3364, 3355, 3343, 1538, 1478,
+ 1478, 1478, 1478, 1478, 3253, -259, 1538, 1406, -1000, -1000,
+ -1000, -1000, -1000, 3092, 2333, 3042, 3030, 3011, 3003, 1406,
+ 1830, 821, -1000, -1000, 1478, 1406, 1406, 1478, 1478, 2995,
+ 2963, 2957, 2953, 2933, 2834, 1538, 1538, -1000, 1538, 2810,
+ 2800, 2303, 2290, 1406, -1000, 1478, 56250, -1000, -451, -1000,
+ -8, 954, 1830, -1000, 38442, 1406, -1000, 4349, -1000, 1168,
+ -1000, -1000, -1000, -1000, -1000, 35474, 1879, -1000, -1000, -1000,
+ -1000, 1830, 1762, -1000, -1000, -1000, -1000, 351, 73, 34732,
+ 890, 890, 123, 1393, 1393, 22860, -1000, -1000, -1000, -1000,
+ -1000, -1000, 820, 2642, 404, 1830, -1000, 1948, 3576, -1000,
+ -1000, -1000, 2544, 28054, -1000, -1000, 1830, 1830, 56250, 1939,
+ 1745, -1000, 819, -1000, 1320, 1933, 13, 24, -1000, -1000,
+ -1000, -1000, 1393, -1000, 1378, 353, 346, -1000, 437, -1000,
+ -1000, -1000, -1000, 2343, 81, -1000, -1000, -1000, 912, 351,
+ -1000, -1000, -1000, -1000, -1000, -1000, 1664, -1000, 1664, -1000,
+ -1000, -1000, -1000, -1000, 1268, -1000, -1000, -1000, -1000, 1266,
+ -1000, -1000, 1256, -1000, -1000, 2877, 2183, 486, -1000, -1000,
+ 958, 1655, -1000, -1000, 2356, 958, 958, 54766, -1000, -1000,
+ 1783, 2537, 236, 56250, 2203, -1000, 2144, 2144, 2144, -1000,
+ 2497, -1000, -1000, -1000, -1000, -1000, -1000, -522, 174, 609,
+ -1000, -1000, -1000, 1389, 54766, 1721, -1000, 224, -1000, 1779,
+ -1000, 54766, -1000, 1713, 2053, 54766, 54766, -1000, -1000, -1000,
+ 54766, 1830, -1000, -1000, -1000, -1000, 760, 2471, 319, -1000,
+ -1000, -283, -1000, -1000, 214, 224, 55508, 54766, 899, -1000,
+ -1000, -1000, -1000, -1000, -523, 1690, 506, 228, 328, 56250,
+ 56250, 56250, 56250, 56250, 56250, 800, -1000, -1000, 39, -1000,
+ -1000, 202, -1000, -1000, 1623, -1000, -1000, -1000, -1000, 202,
+ -1000, -1000, -1000, -1000, -1000, 275, 478, -1000, 56250, 56250,
+ 964, -1000, -1000, -1000, -1000, -1000, 1096, -1000, -1000, 1096,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 55856, -1000, -1000, -1000, -1000, 1616,
- -1000, 55856, -36, 161, -1000, -1000, 54374, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -119, -1000, 351, 8,
- 378, -1000, -1000, -1000, -1000, -1000, 2570, -1000, 1395, 1127,
- 1057, -1000, 2048, -1000, -1000, 1239, -1000, -1000, -1000, -1000,
- -1000, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, 247,
- 24734, 24734, 24734, 1630, 777, 1347, 1801, 1204, 1334, 1334,
- 919, 24734, 919, 24734, 922, 922, 922, 922, 922, -1000,
- -1000, -1000, -1000, -1000, -1000, 1591, -1000, 1589, -1000, 2048,
- 55115, 1932, 17318, 2072, 1735, 1538, 931, -1000, -1000, -1000,
+ -1000, -1000, 2457, 56250, 20, -490, -1000, -486, 22860, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, 1666, 749, 1891, 25086,
+ 25086, 2007, 2007, 25086, -1000, -1000, -1000, 1076, 1076, 33990,
+ -1000, 25086, 22860, -1000, -1000, 22860, 22860, 22860, 981, -1000,
+ 22860, 1181, -1000, 22860, -1000, -259, 1478, 1538, 1538, 1538,
+ 1538, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+ -259, 1908, -1000, 22860, 22860, 22860, 1406, 334, -1000, -1000,
+ -1000, -259, 22860, -1000, -1000, 2666, -1000, 22860, -1000, 33990,
+ 22860, 22860, 22860, -1000, -1000, -1000, 22860, 22860, -1000, -1000,
+ 22860, -1000, 22860, -1000, -1000, -1000, -1000, -1000, -1000, 22860,
+ -1000, 22860, -1000, -1000, -1000, 22860, -1000, 22860, -1000, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, -1000, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, -1000, 22860, -1000, 22860, -1000, 22860,
+ -1000, 22860, 22860, -1000, 22860, 22860, 22860, -1000, 22860, 22860,
+ 22860, 22860, -1000, -1000, -1000, -1000, 22860, 22860, 22860, 22860,
+ 22860, 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000,
+ -1000, -1000, 22860, -1000, 39926, 47, -259, 1221, 47, 1221,
+ 24344, 832, 507, 23602, -1000, 22860, 16912, -1000, -1000, -1000,
+ -1000, -1000, 22860, 22860, 22860, 22860, 22860, 22860, -1000, -1000,
+ -1000, 22860, 22860, -1000, 22860, -1000, 22860, -1000, -1000, -1000,
+ -1000, -1000, 954, -1000, 455, 453, 864, 54766, -1000, -1000,
+ -1000, -1000, 1930, -1000, 2564, -1000, 2285, 2284, 2659, 2642,
+ 22118, -1000, 30280, -1000, -1000, 54766, -419, -1000, 2326, 2476,
+ 890, 890, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13920,
+ 2569, 22860, 2201, 55508, 223, -1000, 29538, 54766, 55508, 30280,
+ 30280, 30280, 30280, 30280, -1000, 2242, 2235, -1000, 2254, 2228,
+ 2313, 56250, -1000, 1686, 1688, -1000, 22860, 32506, 1935, 30280,
+ -1000, -1000, 30280, 56250, 13172, -1000, -1000, 6, -7, -1000,
+ -1000, -1000, -1000, 371, -1000, -1000, 1082, 2543, 2338, -1000,
+ -1000, -1000, -1000, -1000, 1682, -1000, 1676, 1928, 1671, 1662,
+ 278, -1000, 2067, 2451, 958, 958, -1000, 1254, -1000, 1238,
+ 1614, 1586, -1000, -1000, -1000, 496, -1000, 56250, 2200, 2195,
+ 2194, -1000, -540, 1253, 2052, 2012, 22860, 2051, 2615, 1913,
+ 54766, -1000, -1000, 55508, -1000, 197, -1000, 486, 54766, -1000,
+ -1000, -1000, 335, 56250, -1000, 7068, -1000, -1000, -1000, 224,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 56250, 233, -1000,
+ 2047, 1343, -1000, -1000, 2140, -1000, -1000, -1000, -1000, -1000,
+ 213, 201, 1583, 199, 1547, -1000, 199, -1000, 56250, 928,
+ 2183, 56250, -1000, -1000, -1000, 1114, 1114, -1000, -1000, 2449,
+ -1000, 1238, 1538, 25086, 25086, -1000, 900, -1000, -1000, 435,
+ -229, 2041, 2041, -1000, 2041, 2042, -1000, 2041, 171, 2041,
+ 154, 2041, -1000, -1000, 1406, 1406, -1000, 1478, 2286, 1439,
+ 2796, -1000, 1393, 22860, 2715, -1000, -1000, -259, -259, -259,
+ -259, -259, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -69, 2689, 2637, 1538, -1000, 2039, 2036, -1000,
+ 1538, 22860, 1538, 1406, 2278, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 2266, 2257, 2249,
+ 2196, 2175, 2171, 2167, 2163, 2158, 2149, 2145, 2128, 2084,
+ 2080, 2076, 2062, 1538, 1538, 2058, 1538, 2054, 2048, -1000,
+ 1393, 1478, 2628, 1478, 1538, 1538, 2527, 337, 1538, 1651,
+ 1651, 1651, 1651, 1651, 1478, 1478, 1478, 1478, 1538, 54766,
+ -1000, -259, -1000, -1000, -307, -309, -1000, 1406, -259, 1926,
+ 25086, 1538, 25086, 25086, 25086, 1538, 1406, -1000, 2043, 2010,
+ 2270, 1940, 1538, 1832, 1538, 1538, 1538, 1821, -1000, 2535,
+ 1830, 2535, 1830, 2535, 1647, 1168, 56250, -1000, -1000, -1000,
+ -1000, 2642, 2639, -1000, 1914, -1000, 73, 639, -1000, 2311,
+ 2476, -1000, 2610, 2306, 2598, -1000, -1000, -1000, -1000, -1000,
+ 1393, -1000, 2479, 1916, -1000, 963, 1907, -1000, -1000, 21376,
+ 1649, 2281, 817, 1647, 1923, 3576, 2136, 2190, 3359, -1000,
+ -1000, -1000, -1000, 2231, -1000, 2063, -1000, -1000, 2005, -1000,
+ 1790, 350, 30280, 1877, 1877, -1000, 816, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1100, 7068, 2704, -1000, 1544, -1000,
+ 1366, 195, 1240, -1000, -1000, 958, 958, -1000, 1028, 1020,
+ -1000, 56250, 2031, -1000, 351, 1529, 351, 1225, -1000, -1000,
+ 1215, -1000, -1000, -1000, -1000, 1994, 2562, -1000, -1000, -1000,
+ -1000, 56250, -1000, 56250, 56250, 56250, 2029, 2595, -1000, 22860,
+ 2015, 962, 2253, 54766, 54766, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, 427, 958, -503, 297,
+ 294, 958, 958, 958, -541, -1000, -1000, 1639, 1637, -1000,
+ -205, -1000, 22860, -1000, -1000, -1000, -1000, -1000, 1249, 1249,
+ 1513, 1500, 1498, -1000, 2005, -1000, -1000, -1000, 1722, -1000,
+ -1000, -186, 54766, 54766, 54766, 54766, -1000, -1000, -1000, 1187,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3958, 1538, 1958,
- 1538, 2351, 3939, 1053, -1000, 22511, 1538, 3935, -1000, -1000,
- 1538, 1538, 22511, -1000, -1000, 22511, 22511, 22511, 22511, 1193,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 22511,
- 1193, 2009, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, 900, 1406, 375, -188, 1406, -1000, -1000, 351,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- 2001, 2693, 1816, 1193, 1193, 1193, 1193, 3914, 1193, 1193,
- 22511, 1839, -1000, -1000, -1000, 1460, 3905, 1586, 3606, 1193,
- 1193, -1000, 1193, 3578, 3538, 1538, 2890, 2884, 1193, 1193,
- 1193, 1193, 1193, 2869, 2859, 1193, 1193, 2823, 1193, 3523,
- 1193, 2734, 2712, 2694, 2690, 2645, 2621, 2595, 2591, 2559,
- 2527, 2488, 2483, 2478, 2456, 2452, 2447, 2412, 2343, 1193,
- 1193, 1193, 3504, 1193, 3492, 1193, 3488, 1193, 1193, 3484,
- 2338, 2333, 1538, 1999, -1000, 3480, 1193, 3476, 3472, 3465,
- 2328, 3458, 3453, 3414, 1193, 1193, 1193, 2322, 3410, 3404,
- 3395, 3390, 3385, 3378, 3367, 3348, 3281, 1193, 1544, 1544,
- 1544, 1544, 1544, 3269, -280, 1193, 1538, -1000, -1000, -1000,
- -1000, -1000, 3093, 2316, 3071, 3063, 3059, 3049, 1538, 2048,
- 809, -1000, -1000, 1544, 1538, 1538, 1544, 1544, 3043, 3025,
- 3009, 2993, 2956, 2948, 1193, 1193, -1000, 1193, 2939, 2927,
- 2312, 2297, 1538, -1000, 1544, 55856, -1000, -453, -1000, -16,
- 889, 2048, -1000, 38072, 1538, -1000, 5684, -1000, 1371, -1000,
- -1000, -1000, -1000, -1000, 35108, 1911, -1000, -1000, -1000, -1000,
- 2048, 1930, -1000, -1000, -1000, -1000, 318, 58, 34367, 876,
- 876, 109, 1395, 1395, 22511, -1000, -1000, -1000, -1000, -1000,
- -1000, 807, 2676, 371, 2048, -1000, 2011, 2757, -1000, -1000,
- -1000, 2565, 27698, -1000, -1000, 2048, 2048, 55856, 1972, 1937,
- -1000, 803, -1000, 1300, 1996, -4, -8, -1000, -1000, -1000,
- -1000, 1395, -1000, 1376, 357, 359, -1000, 443, -1000, -1000,
- -1000, -1000, 2387, 70, -1000, -1000, -1000, 332, 318, -1000,
- -1000, -1000, -1000, -1000, -1000, 1587, -1000, 1587, -1000, -1000,
- -1000, -1000, -1000, 1305, -1000, -1000, -1000, -1000, 1304, -1000,
- -1000, 1303, -1000, -1000, 2379, 2227, 435, -1000, -1000, 974,
- 1585, -1000, -1000, 2391, 974, 974, 54374, -1000, -1000, 1896,
- 2546, 228, 55856, 2239, -1000, 2183, 2183, 2183, -1000, 2537,
- -1000, -1000, -1000, -1000, -1000, -1000, -524, 175, 361, -1000,
- -1000, -1000, 2041, 54374, 1900, -1000, 214, -1000, 1878, -1000,
- 54374, -1000, 1877, 2128, 54374, 54374, -1000, -1000, -1000, 54374,
- 2048, -1000, -1000, -1000, -1000, 523, 2516, 314, -1000, -1000,
- -300, -1000, -1000, 205, 214, 55115, 54374, 882, -1000, -1000,
- -1000, -1000, -1000, -525, 1862, 502, 225, 574, 55856, 55856,
- 55856, 55856, 55856, 55856, 778, -1000, -1000, 23, -1000, -1000,
- 191, -1000, -1000, -1000, -1000, -1000, -1000, 191, -1000, -1000,
- -1000, -1000, -1000, 283, 478, -1000, 55856, 55856, 945, -1000,
- -1000, -1000, -1000, -1000, 1096, -1000, -1000, 1096, -1000, -1000,
+ 22860, -1000, 22860, -1000, 22860, 1393, 22860, -1000, -1000, -1000,
+ -1000, -1000, 2569, 1489, 22860, 22860, -1000, 1211, 1209, -259,
+ 1538, -1000, -1000, -1000, 22860, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000,
+ -1000, 22860, -1000, -1000, -1000, 22860, -1000, 22860, -1000, 22860,
+ -1000, -1000, -1000, 22860, 264, 1076, -1000, -1000, -1000, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1406, 347, -1000,
+ -1000, -1000, 2650, -1000, 1406, 22860, 2007, -1000, 2007, 2007,
+ 2007, -1000, -1000, -1000, 22860, -1000, 22860, 22860, -1000, 22860,
+ -1000, 22860, -1000, -1000, -1000, -1000, 22860, 1830, 2374, 39184,
+ 1830, 39184, 1830, 32506, -1000, -1000, 2639, 2596, 2593, 2300,
+ 2312, 2312, 2311, -1000, 2589, 2587, -1000, 1472, 2585, 1458,
+ 1006, -1000, 55508, 22860, -1000, 223, 38442, -1000, 403, 54766,
+ 223, 54766, -1000, 2634, -1000, -1000, 22860, 2014, -1000, 22860,
+ -1000, -1000, -1000, -1000, 6271, 2642, 1877, -1000, -1000, 922,
+ -1000, 22860, -1000, 11485, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, -1000, 1453, 1446, -1000, -1000, 2006, 22860, -1000, -1000,
+ -1000, 1663, 1652, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
+ -1000, 2005, -1000, -1000, -1000, -1000, 335, -527, 2224, 54766,
+ 1206, -1000, 1632, 1913, 288, 223, 1432, 958, 958, 958,
+ 1161, 1152, 38442, 1605, -1000, 54766, 364, -1000, 335, -1000,
+ -222, -223, 1538, -1000, -1000, 2530, -1000, -1000, 16912, -1000,
+ -1000, 2003, 2141, -1000, -1000, -1000, -1000, 2264, -179, -200,
+ -1000, -1000, 1538, 1538, 1538, 1405, 1406, -1000, 1538, 1538,
+ 1633, 1543, -1000, -1000, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1478, 1778, -1000, 264, 1406, 2184,
+ -1000, -1000, 6271, -1000, -1000, 2634, 2579, 47, -1000, -1000,
+ 222, 47, 1393, 1032, 1406, 1406, 1032, 1760, 1538, 1660,
+ 1642, 1538, 1538, 33248, -1000, 2572, 2571, 1542, -1000, -1000,
+ 39184, 1542, 39184, 954, 2596, -270, 22860, 22860, 2297, 1164,
+ -1000, -1000, -1000, -1000, 1402, 1390, -1000, 1377, -1000, 2699,
+ -1000, 1393, -1000, 1830, 223, -1000, 808, 1907, -1000, 2569,
+ 1393, 54766, 1393, 75, 2634, -1000, 1538, -1000, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
+ 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, -1000,
+ -1000, 54766, 2180, -1000, -1000, 2529, 1554, 166, -1000, 1475,
+ 1913, -1000, -1000, 221, -1000, 22860, -1000, 38442, 1374, 1360,
+ -1000, -1000, -1000, -1000, -541, -1000, -1000, -1000, -1000, -1000,
+ -1000, 392, 1888, -1000, 957, 54766, 56250, -1000, 2188, -1000,
+ -1000, -1000, -1000, 22860, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- 2484, 55856, 4, -491, -1000, -488, 22511, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 1307, 482, 1347, 24734, 24734, 1138,
- 1138, 24734, -1000, -1000, -1000, 1149, 1149, 33626, -1000, 24734,
- 22511, -1000, -1000, 22511, 22511, 22511, 1010, -1000, 22511, 1295,
- -1000, 22511, -1000, -280, 1544, 1193, 1193, 1193, 1193, -280,
- -280, -280, -280, -280, -280, -280, -280, -280, -280, 1976,
- -1000, 22511, 22511, 22511, 1538, 295, -1000, -1000, -1000, -280,
- 22511, -1000, -1000, 2692, -1000, 22511, -1000, 33626, 22511, 22511,
- 22511, -1000, -1000, -1000, 22511, 22511, -1000, -1000, 22511, -1000,
- 22511, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511,
- -1000, -1000, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000,
- 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
- 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
- 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000,
- 22511, -1000, 22511, -1000, -1000, -1000, 22511, -1000, 22511, -1000,
- 22511, -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
- 22511, -1000, 22511, 22511, 22511, -1000, 22511, 22511, 22511, 22511,
- -1000, -1000, -1000, -1000, 22511, 22511, 22511, 22511, 22511, 22511,
- 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000,
- 22511, -1000, 39554, 0, -280, 1351, 0, 1351, 23993, 823,
- 784, 23252, -1000, 22511, 16571, -1000, -1000, -1000, -1000, -1000,
- 22511, 22511, 22511, 22511, 22511, 22511, -1000, -1000, -1000, 22511,
- 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000, -1000, -1000,
- 889, -1000, 458, 456, 847, 54374, -1000, -1000, -1000, -1000,
- 1989, -1000, 2609, -1000, 2317, 2313, 2684, 2676, 21770, -1000,
- 29921, -1000, -1000, 54374, -442, -1000, 2354, 2401, 876, 876,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13583, 2590, 22511,
- 2221, 55115, 223, -1000, 29180, 54374, 55115, 29921, 29921, 29921,
- 29921, 29921, -1000, 2255, 2252, -1000, 2264, 2263, 2582, 55856,
- -1000, 1638, 1845, -1000, 22511, 32144, 1936, 29921, -1000, -1000,
- 29921, 55856, 12836, -1000, -1000, 2, -21, -1000, -1000, -1000,
- -1000, 1021, -1000, -1000, 1225, 2562, 2375, -1000, -1000, -1000,
- -1000, -1000, 1813, -1000, 1777, 1986, 1769, 1753, 286, -1000,
- 2172, 2479, 974, 974, -1000, 1301, -1000, 1253, 1584, 1567,
- -1000, -1000, -1000, 499, -1000, 55856, 2220, 2217, 2213, -1000,
- -539, 1299, 2124, 2171, 22511, 2120, 2652, 1968, 54374, -1000,
- -1000, 55115, -1000, 272, -1000, 435, 54374, -1000, -1000, -1000,
- 328, 55856, -1000, 5160, -1000, -1000, -1000, 214, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 55856, 242, -1000, 2115, 1374,
- -1000, -1000, 2179, -1000, -1000, -1000, -1000, -1000, 188, 187,
- 1563, 184, 1557, 184, -1000, 55856, 873, 2227, 55856, -1000,
- -1000, -1000, 1154, 1154, -1000, -1000, 2422, -1000, 1253, 1193,
- 24734, 24734, -1000, 904, -1000, -1000, 409, -258, 2102, 2102,
- -1000, 2102, 2106, -1000, 2102, 144, 2102, 138, 2102, -1000,
- -1000, 1538, 1538, -1000, 1544, 2293, 1555, 2923, -1000, 1395,
- 22511, 2819, -1000, -1000, -280, -280, -280, -280, -280, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -82,
- 2719, 2699, 1193, -1000, 2101, 2100, -1000, 1193, 22511, 1193,
- 1538, 2249, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1193, 1193, 1193, 2232, 2226, 2222, 2218, 2203, 2180,
- 2155, 2138, 2117, 2085, 2053, 2037, 2030, 2017, 2002, 1964,
- 1193, 1193, 1953, 1193, 1928, 1918, -1000, 1395, 1544, 2551,
- 1544, 1193, 1193, 2521, 306, 1193, 1749, 1749, 1749, 1749,
- 1749, 1544, 1544, 1544, 1544, 1193, 54374, -1000, -280, -1000,
- -1000, -332, -383, -1000, 1538, -280, 1970, 24734, 1193, 24734,
- 24734, 24734, 1193, 1538, -1000, 1796, 1775, 2508, 1771, 1193,
- 2460, 1193, 1193, 1193, 1759, -1000, 2561, 2048, 2561, 2048,
- 2561, 1741, 1371, 55856, -1000, -1000, -1000, -1000, 2676, 2673,
- -1000, 1969, -1000, 58, 622, -1000, 2331, 2401, -1000, 2647,
- 2346, 2646, -1000, -1000, -1000, -1000, -1000, 1395, -1000, 2509,
- 1915, -1000, 979, 1949, -1000, -1000, 21029, 1745, 2307, 800,
- 1741, 1998, 2757, 2181, 2211, 3075, -1000, -1000, -1000, -1000,
- 2237, -1000, 2228, -1000, -1000, 2052, -1000, 2417, 354, 29921,
- 1944, 1944, -1000, 799, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, 1207, 5160, 2736, -1000, 1552, -1000, 1373, 194, 1293,
- -1000, -1000, 974, 974, -1000, 1085, 1083, -1000, 55856, 2099,
- -1000, 318, 1545, 318, 1290, -1000, -1000, 1276, -1000, -1000,
- -1000, -1000, 2045, 2451, -1000, -1000, -1000, -1000, 55856, -1000,
- 55856, 55856, 55856, 2069, 2644, -1000, 22511, 2068, 976, 2347,
- 54374, 54374, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, 442, 974, -503, 289, 287, 974, 974,
- 974, -543, -1000, -1000, 1728, 1726, -1000, -219, -1000, 22511,
- -1000, -1000, -1000, -1000, -1000, 1272, 1272, 1540, 1534, 1525,
- -1000, 2052, -1000, -1000, -1000, 1873, -1000, -1000, -198, 54374,
- 54374, 54374, 54374, -1000, -1000, -1000, 1252, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 904,
- 1538, 344, -203, 1538, -1000, -1000, 318, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511,
- -1000, 22511, 1395, 22511, -1000, -1000, -1000, -1000, -1000, 2590,
- 1522, 22511, 22511, -1000, 1275, 1268, -280, 1193, -1000, -1000,
- -1000, 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511, -1000, 22511,
- -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
- -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511,
- -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000,
- -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000,
- 22511, 203, 1149, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 1538, 346, -1000, -1000, -1000, 2679,
- -1000, 1538, 22511, 1138, -1000, 1138, 1138, 1138, -1000, -1000,
- -1000, 22511, -1000, 22511, 22511, -1000, 22511, -1000, 22511, -1000,
- -1000, -1000, -1000, 22511, 2048, 2332, 38813, 2048, 38813, 2048,
- 32144, -1000, -1000, 2673, 2669, 2643, 2337, 2340, 2340, 2331,
- -1000, 2635, 2627, -1000, 1520, 2623, 1497, 1076, -1000, 55115,
- 22511, -1000, 223, 38072, -1000, 384, 54374, 223, 54374, -1000,
- 2610, -1000, -1000, 22511, 2061, -1000, 22511, -1000, -1000, -1000,
- -1000, 6276, 2676, 1944, -1000, -1000, 928, -1000, 22511, -1000,
- 10932, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1495,
- 1485, -1000, -1000, 2057, 22511, -1000, -1000, -1000, 1742, 1729,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2052, -1000,
- -1000, -1000, -1000, 328, -535, 2212, 54374, 1260, -1000, 1706,
- 1968, 310, 223, 1467, 974, 974, 974, 1257, 1255, 38072,
- 1699, -1000, 54374, 425, -1000, 328, -1000, -242, -244, 1193,
- -1000, -1000, 2560, -1000, -1000, 16571, -1000, -1000, 2051, 2182,
- -1000, -1000, -1000, -1000, 2292, -190, -227, -1000, -1000, 1193,
- 1193, 1193, 1751, 1538, -1000, 1193, 1193, 1681, 1610, -1000,
- -1000, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1544, 1708, -1000, 203, 1538, 2202, -1000, -1000, 6276,
- -1000, -1000, 2610, 2622, 0, -1000, -1000, 221, 0, 1395,
- 1019, 1538, 1538, 1019, 1680, 1193, 1635, 1560, 1193, 1193,
- 32885, -1000, 2619, 2603, 1686, -1000, -1000, 38813, 1686, 38813,
- 889, 2669, -290, 22511, 22511, 2335, 1269, -1000, -1000, -1000,
- -1000, 1455, 1451, -1000, 1447, -1000, 2727, -1000, 1395, -1000,
- 2048, 223, -1000, 794, 1949, -1000, 2590, 1395, 54374, 1395,
- 54, 2610, -1000, 1193, -1000, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048,
- 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, 54374, 1570,
- -1000, -1000, 2554, 1696, 166, -1000, 1549, 1968, -1000, -1000,
- 216, -1000, 22511, -1000, 38072, 1426, 1385, -1000, -1000, -1000,
- -1000, -543, -1000, -1000, -1000, -1000, -1000, -1000, 380, 1966,
- -1000, 959, 54374, 55856, -1000, 2282, -1000, -1000, -1000, -1000,
- 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000,
- 1538, 2200, -1000, -377, -1000, -504, 22511, -280, -1000, -1000,
- -280, -1000, -1000, -1000, -1000, -1000, 22511, -1000, -1000, 22511,
- -1000, 22511, -1000, -1000, 1686, -1000, -1000, -1000, 37331, -1000,
- 1686, -1000, 1686, -1000, -290, -1000, 1963, -1000, 54374, 1395,
- 375, -1000, 1267, -1000, -1000, -1000, -1000, -1000, 55115, 54374,
- 1949, 54374, -1000, -1000, 1684, 1538, 2048, 2590, -1000, 1660,
- -1000, 380, -1000, 2050, 2171, -1000, -1000, -1000, 20288, -1000,
- -1000, -1000, -1000, -1000, 262, -197, 16571, 12089, 1609, -1000,
- -196, 1193, 1544, -1000, -477, -1000, -1000, -1000, -1000, 279,
- -1000, -1000, 1958, -1000, -1000, 1548, 1537, 1475, -1000, -1000,
- -1000, -1000, -1000, -1000, -290, -1000, -1000, 2553, -1000, -254,
- -1000, -1000, 1952, 1529, -1000, -1000, -1000, 32144, 53633, -1000,
- -184, 382, -197, 22511, 2049, 1538, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, -39, -1000, -1000, 772, -1000, -1000,
- -1000, 2179, -216, -1000, -1000, -1000, 307, -494, -288, -296,
- 24734, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 54374, 2048,
- -1000, -1000, -1000, 1483, -1000, 4202, -401, 2195, -1000, -145,
- -1000, -1000, -1000, 1203, 1364, -1000, -1000, -1000, -1000, -1000,
- -1000, 1414, 54374, -1000, 436, -1000, -1000, 15824, -198, -233,
- 1020, -1000, -1000, -1000, -1000, -1000, 1138, 1466, 1357, 1193,
- -1000, 54374, -1000, 53633, -395, 882, 6276, -1000, 2193, 2190,
- 2704, -1000, -1000, -1000, -1000, -1000, -1000, -549, 1464, 244,
- -1000, -1000, -1000, 307, -314, -1000, 22511, -1000, 22511, -1000,
- 1538, -1000, -1000, 2535, 54, -1000, 2724, -1000, 2691, 1031,
- 1031, -1000, 1242, -549, -1000, -1000, -1000, -1000, 1193, 1193,
- -1000, -403, -1000, -1000, -1000, -1000, -1000, 433, 1281, -1000,
- -1000, -1000, -1000, -1000, 6276, -1000, -1000, -1000, 204, 204,
- -1000, -1000,
+ -1000, 22860, -1000, 1406, 2181, -1000, -375, -1000, -504, 22860,
+ -259, -1000, -1000, -259, -1000, -1000, -1000, -1000, -1000, 22860,
+ -1000, -1000, 22860, -1000, 22860, -1000, -1000, 1542, -1000, -1000,
+ -1000, 37700, -1000, 1542, -1000, 1542, -1000, -270, -1000, 1882,
+ -1000, 54766, 1393, 345, -1000, 1162, -1000, -1000, -1000, -1000,
+ -1000, 55508, 54766, 1907, 54766, -1000, -1000, 1508, 1406, 1830,
+ 2569, -1000, 1482, -1000, 392, -1000, 2002, 2012, -1000, -1000,
+ -1000, 20634, -1000, -1000, -1000, -1000, -1000, 249, -185, 16912,
+ 12424, 1480, -1000, -184, 1538, 1478, -1000, -479, -1000, -1000,
+ -1000, -1000, 279, -1000, -1000, 1851, -1000, -1000, 1621, 1527,
+ 1444, -1000, -1000, -1000, -1000, -1000, -1000, -270, -1000, -1000,
+ 2525, -1000, -226, -1000, -1000, 1367, 1442, -1000, -1000, -1000,
+ 32506, 54024, -1000, -171, 293, -185, 22860, 1995, 1406, -1000,
+ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -52, -1000, -1000,
+ 799, -1000, -1000, -1000, 2140, -189, -1000, -1000, -1000, 284,
+ -494, -291, -292, 25086, -1000, 22860, -1000, 22860, -1000, 22860,
+ -1000, 54766, 1830, -1000, -1000, -1000, 1426, -1000, 4978, -334,
+ 2177, -1000, -126, -1000, -1000, -1000, 1042, 1359, -1000, -1000,
+ -1000, -1000, -1000, -1000, 1936, 54766, -1000, 446, -1000, -1000,
+ 16164, -186, -201, 1000, -1000, -1000, -1000, -1000, -1000, 2007,
+ 1365, 1353, 1538, -1000, 54766, -1000, 54024, -314, 899, 6271,
+ -1000, 2164, 2159, 2656, -1000, -1000, -1000, -1000, -1000, -1000,
+ -544, 1356, 243, -1000, -1000, -1000, 284, -338, -1000, 22860,
+ -1000, 22860, -1000, 1406, -1000, -1000, 2494, 75, -1000, 2658,
+ -1000, 2643, 1016, 1016, -1000, 1136, -544, -1000, -1000, -1000,
+ -1000, 1538, 1538, -1000, -354, -1000, -1000, -1000, -1000, -1000,
+ 440, 1275, -1000, -1000, -1000, -1000, -1000, 6271, -1000, -1000,
+ -1000, 263, 263, -1000, -1000,
}
var yyPgo = [...]int{
- 0, 3435, 3430, 31, 7, 40, 39, 3428, 3426, 3423,
- 171, 3421, 3420, 3419, 3411, 3410, 3407, 2789, 2782, 2755,
- 3406, 3404, 3400, 3393, 3392, 3391, 3390, 3383, 3381, 27,
- 114, 100, 101, 212, 192, 3380, 169, 161, 198, 3378,
- 3373, 3372, 125, 182, 82, 81, 187, 3370, 3369, 68,
- 3368, 3353, 3284, 180, 179, 177, 1100, 3282, 176, 111,
- 47, 3279, 3277, 3275, 3274, 3268, 3261, 3260, 3258, 3257,
- 3256, 3254, 3252, 3251, 3247, 3244, 3242, 3240, 3229, 308,
- 3228, 3225, 16, 3223, 73, 3220, 3213, 3210, 3208, 3206,
- 9, 3203, 3201, 32, 41, 55, 3197, 3195, 44, 3194,
- 3193, 3192, 3191, 3187, 79, 3185, 14, 3184, 35, 3183,
- 3179, 124, 3177, 3176, 3174, 42, 3173, 3171, 3170, 11,
- 162, 3169, 3166, 138, 3163, 3158, 3147, 164, 221, 3144,
- 2357, 3143, 93, 3142, 3141, 3140, 160, 191, 3138, 120,
- 3137, 3136, 3135, 148, 3128, 3300, 3126, 3124, 67, 62,
- 168, 3123, 3117, 201, 80, 8, 3116, 22, 23, 3115,
- 3114, 72, 61, 3113, 98, 3110, 3108, 94, 99, 3107,
- 109, 90, 3106, 3099, 10, 5, 3098, 1, 4, 2,
- 115, 3091, 3088, 108, 3087, 3086, 3084, 97, 3081, 3077,
- 4382, 3071, 83, 129, 96, 64, 3070, 170, 165, 3069,
- 3068, 3065, 3064, 3059, 3058, 49, 3054, 3051, 3050, 136,
- 1270, 116, 3049, 145, 352, 51, 146, 3048, 193, 75,
- 3042, 163, 3041, 3038, 133, 132, 3031, 3030, 53, 166,
- 197, 3028, 92, 128, 117, 183, 91, 130, 3027, 3026,
- 59, 58, 3011, 3008, 2993, 2985, 167, 2983, 2982, 63,
- 2977, 56, 2973, 195, 2967, 340, 77, 2964, 185, 158,
- 2963, 66, 2949, 2948, 85, 95, 57, 29, 2946, 153,
- 159, 126, 178, 2945, 2944, 52, 2941, 2939, 2938, 190,
- 319, 2930, 2928, 323, 174, 140, 144, 87, 2925, 266,
- 2923, 2917, 2913, 19, 5078, 7104, 181, 17, 155, 2912,
- 2904, 8002, 48, 43, 13, 2897, 211, 2896, 194, 2892,
- 2891, 2881, 203, 208, 105, 156, 54, 2880, 2879, 2878,
- 2876, 71, 2870, 2869, 2866, 2862, 2860, 2859, 38, 37,
- 36, 70, 196, 60, 25, 89, 154, 149, 65, 2858,
- 2857, 2851, 121, 78, 2848, 152, 151, 123, 104, 2844,
- 175, 141, 118, 2841, 102, 34, 2837, 2829, 2828, 2826,
- 84, 2825, 2824, 2822, 2821, 150, 142, 119, 74, 2820,
- 76, 113, 147, 143, 50, 2817, 45, 2814, 2812, 33,
- 184, 28, 2811, 21, 106, 110, 2807, 6623, 2805, 12,
- 265, 157, 2804, 2802, 15, 18, 6, 2799, 2797, 2794,
- 2793, 131, 2788, 2784, 2783, 2775, 26, 46, 24, 20,
- 112, 137, 69, 2773, 2761, 139, 2760, 2759, 2754, 0,
- 1040, 127, 2722, 204,
+ 0, 3243, 3242, 31, 6, 37, 36, 3240, 3239, 3238,
+ 174, 3237, 3235, 3224, 3223, 3222, 3221, 2754, 2745, 2728,
+ 3220, 3219, 3218, 3215, 3213, 3211, 3210, 3209, 3208, 38,
+ 116, 91, 104, 201, 213, 3205, 170, 161, 197, 3203,
+ 3202, 3201, 115, 187, 84, 92, 195, 3200, 3199, 71,
+ 3196, 3194, 3192, 190, 189, 188, 1092, 3190, 184, 114,
+ 48, 3189, 3187, 3184, 3182, 3179, 3178, 3176, 3174, 3173,
+ 3172, 3170, 3169, 3168, 3165, 3163, 3162, 3161, 3160, 285,
+ 3157, 3155, 12, 3154, 73, 3153, 3152, 3149, 3147, 3146,
+ 8, 3140, 3139, 26, 45, 63, 3136, 3134, 44, 3132,
+ 3131, 3129, 3125, 3124, 72, 3123, 27, 3121, 40, 3120,
+ 3117, 124, 3115, 3111, 3105, 42, 3104, 3100, 3098, 28,
+ 169, 3097, 3094, 140, 3093, 3092, 3087, 167, 205, 3085,
+ 2265, 3082, 99, 3080, 3079, 3077, 166, 193, 3076, 125,
+ 3074, 3073, 3072, 152, 3068, 3263, 3066, 3065, 59, 80,
+ 164, 3064, 3062, 199, 79, 54, 3061, 17, 19, 3060,
+ 3058, 67, 70, 3057, 108, 3056, 3054, 103, 77, 3052,
+ 105, 102, 3051, 3050, 5, 7, 3048, 1, 4, 2,
+ 83, 3047, 3044, 119, 3041, 3040, 3039, 101, 3037, 3035,
+ 4407, 3031, 93, 130, 106, 76, 3028, 171, 132, 3027,
+ 3026, 3022, 3021, 3016, 2985, 49, 2984, 2983, 2982, 136,
+ 22, 110, 2981, 146, 346, 51, 147, 2978, 196, 78,
+ 2977, 172, 2971, 2969, 134, 133, 2968, 2962, 58, 168,
+ 194, 2960, 96, 129, 120, 176, 95, 135, 2954, 2946,
+ 56, 62, 2944, 2943, 2940, 2939, 181, 2935, 2929, 61,
+ 2927, 53, 2925, 182, 2924, 306, 69, 2922, 180, 162,
+ 2921, 60, 2919, 2918, 68, 100, 55, 39, 2914, 157,
+ 160, 127, 165, 2913, 2912, 52, 2905, 2899, 2894, 200,
+ 301, 2891, 2890, 329, 183, 143, 149, 85, 2887, 323,
+ 2886, 2885, 2884, 16, 5094, 7550, 186, 25, 159, 2883,
+ 2882, 8334, 20, 43, 24, 2872, 210, 2869, 185, 2867,
+ 2866, 2865, 211, 207, 112, 158, 57, 2864, 2859, 2857,
+ 2856, 64, 2855, 2850, 2849, 2848, 2847, 2846, 35, 34,
+ 33, 75, 218, 65, 21, 98, 156, 151, 66, 2843,
+ 2841, 2839, 123, 90, 2835, 155, 153, 126, 163, 2829,
+ 175, 142, 117, 2823, 87, 32, 2822, 2821, 2819, 2818,
+ 89, 2813, 2810, 2806, 2805, 150, 144, 121, 81, 2803,
+ 82, 118, 148, 145, 50, 2799, 46, 2798, 2797, 30,
+ 191, 29, 2787, 13, 111, 109, 2780, 6691, 2779, 9,
+ 305, 154, 2776, 2775, 10, 11, 14, 2772, 2771, 2770,
+ 2769, 131, 2768, 2765, 2763, 2761, 23, 47, 18, 15,
+ 113, 137, 74, 2760, 2746, 141, 2732, 2727, 2722, 0,
+ 1034, 128, 2721, 202,
}
-//line sql.y:8755
+//line sql.y:8764
type yySymType struct {
union any
empty struct{}
@@ -8594,63 +8636,63 @@ var yyR1 = [...]int{
43, 43, 43, 43, 43, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
- 23, 23, 23, 23, 23, 23, 23, 23, 111, 111,
- 112, 112, 112, 112, 114, 114, 114, 375, 375, 60,
- 60, 3, 3, 173, 175, 176, 176, 174, 174, 174,
- 174, 174, 174, 62, 62, 61, 61, 178, 177, 179,
- 179, 179, 1, 1, 2, 2, 4, 4, 380, 380,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 111,
+ 111, 112, 112, 112, 112, 114, 114, 114, 375, 375,
+ 60, 60, 3, 3, 173, 175, 176, 176, 174, 174,
+ 174, 174, 174, 174, 62, 62, 61, 61, 178, 177,
+ 179, 179, 179, 1, 1, 2, 2, 4, 4, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 341, 341, 341, 374, 374, 376, 113, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 117, 116, 116, 115,
- 118, 118, 118, 118, 118, 118, 118, 118, 378, 378,
- 378, 63, 63, 379, 328, 329, 330, 5, 6, 355,
- 377, 125, 125, 24, 39, 39, 25, 25, 25, 25,
- 26, 26, 64, 67, 67, 65, 65, 65, 65, 65,
+ 380, 341, 341, 341, 374, 374, 376, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 117, 116, 116,
+ 115, 118, 118, 118, 118, 118, 118, 118, 118, 378,
+ 378, 378, 63, 63, 379, 328, 329, 330, 5, 6,
+ 355, 377, 125, 125, 24, 39, 39, 25, 25, 25,
+ 25, 26, 26, 64, 67, 67, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 292, 292, 281, 281, 290, 290, 280, 280, 306,
- 306, 306, 283, 283, 283, 284, 284, 403, 403, 403,
- 277, 277, 66, 66, 66, 307, 307, 307, 307, 69,
- 69, 413, 413, 414, 414, 415, 415, 415, 70, 71,
- 71, 310, 310, 311, 311, 72, 73, 85, 85, 85,
- 85, 85, 86, 86, 86, 86, 86, 86, 110, 110,
- 110, 10, 10, 10, 10, 81, 81, 81, 9, 9,
- 11, 68, 68, 75, 400, 400, 401, 402, 402, 402,
- 402, 76, 78, 27, 27, 27, 27, 27, 27, 135,
- 135, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 130, 130, 130, 124, 124, 422, 79,
- 80, 80, 128, 128, 128, 121, 121, 121, 127, 127,
- 127, 12, 12, 13, 263, 263, 14, 14, 134, 134,
- 133, 133, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 131, 131, 132, 132, 132, 132, 299,
- 299, 299, 298, 298, 167, 167, 169, 168, 168, 170,
- 170, 171, 171, 171, 171, 217, 217, 193, 193, 256,
- 256, 257, 257, 255, 255, 262, 262, 258, 258, 258,
- 258, 265, 265, 172, 172, 172, 172, 180, 180, 181,
- 181, 182, 182, 309, 309, 304, 304, 304, 303, 303,
- 186, 186, 186, 188, 187, 187, 187, 187, 189, 189,
- 191, 191, 190, 190, 192, 197, 197, 196, 196, 194,
- 194, 194, 194, 194, 194, 195, 195, 195, 195, 198,
- 198, 145, 145, 145, 145, 145, 145, 145, 145, 411,
- 411, 159, 159, 159, 159, 159, 159, 159, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 246,
- 246, 150, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 153, 153, 153, 153,
+ 65, 65, 292, 292, 281, 281, 290, 290, 280, 280,
+ 306, 306, 306, 283, 283, 283, 284, 284, 403, 403,
+ 403, 277, 277, 66, 66, 66, 307, 307, 307, 307,
+ 69, 69, 413, 413, 414, 414, 415, 415, 415, 70,
+ 71, 71, 310, 310, 311, 311, 72, 73, 85, 85,
+ 85, 85, 85, 86, 86, 86, 86, 86, 86, 110,
+ 110, 110, 10, 10, 10, 10, 81, 81, 81, 9,
+ 9, 11, 68, 68, 75, 400, 400, 401, 402, 402,
+ 402, 402, 76, 78, 27, 27, 27, 27, 27, 27,
+ 135, 135, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 130, 130, 130, 124, 124, 422,
+ 79, 80, 80, 128, 128, 128, 121, 121, 121, 127,
+ 127, 127, 12, 12, 13, 263, 263, 14, 14, 134,
+ 134, 133, 133, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 131, 131, 132, 132, 132, 132,
+ 299, 299, 299, 298, 298, 167, 167, 169, 168, 168,
+ 170, 170, 171, 171, 171, 171, 217, 217, 193, 193,
+ 256, 256, 257, 257, 255, 255, 262, 262, 258, 258,
+ 258, 258, 265, 265, 172, 172, 172, 172, 180, 180,
+ 181, 181, 182, 182, 309, 309, 304, 304, 304, 303,
+ 303, 186, 186, 186, 188, 187, 187, 187, 187, 189,
+ 189, 191, 191, 190, 190, 192, 197, 197, 196, 196,
+ 194, 194, 194, 194, 194, 194, 195, 195, 195, 195,
+ 198, 198, 145, 145, 145, 145, 145, 145, 145, 145,
+ 411, 411, 159, 159, 159, 159, 159, 159, 159, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 246, 246, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 153, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 222, 222, 221, 221, 87, 87, 87, 88, 88,
- 89, 89, 89, 89, 89, 90, 90, 90, 90, 90,
- 90, 90, 92, 92, 91, 91, 212, 212, 296, 296,
- 93, 94, 94, 95, 95, 98, 98, 97, 96, 96,
- 102, 102, 99, 99, 101, 101, 100, 103, 103, 104,
- 105, 105, 278, 278, 199, 199, 208, 208, 208, 208,
- 200, 200, 201, 201, 201, 201, 201, 201, 209, 209,
- 209, 216, 210, 210, 206, 206, 204, 204, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 205, 205, 205,
+ 153, 153, 222, 222, 221, 221, 87, 87, 87, 88,
+ 88, 89, 89, 89, 89, 89, 90, 90, 90, 90,
+ 90, 90, 90, 92, 92, 91, 91, 212, 212, 296,
+ 296, 93, 94, 94, 95, 95, 98, 98, 97, 96,
+ 96, 102, 102, 99, 99, 101, 101, 100, 103, 103,
+ 104, 105, 105, 278, 278, 199, 199, 208, 208, 208,
+ 208, 200, 200, 201, 201, 201, 201, 201, 201, 209,
+ 209, 209, 216, 210, 210, 206, 206, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 204, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
@@ -8670,36 +8712,36 @@ var yyR1 = [...]int{
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
- 164, 164, 164, 164, 227, 227, 151, 151, 151, 151,
+ 205, 164, 164, 164, 164, 227, 227, 151, 151, 151,
151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 152, 152, 165, 165, 165, 165, 166, 166, 166,
- 166, 166, 166, 166, 317, 317, 119, 119, 119, 119,
+ 151, 151, 152, 152, 165, 165, 165, 165, 166, 166,
+ 166, 166, 166, 166, 166, 317, 317, 119, 119, 119,
119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 120, 120, 120, 120,
+ 119, 119, 119, 119, 119, 119, 119, 120, 120, 120,
120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
- 120, 120, 120, 120, 423, 423, 332, 332, 332, 207,
- 207, 207, 207, 207, 126, 126, 126, 126, 126, 314,
- 314, 314, 318, 318, 318, 316, 316, 316, 316, 316,
+ 120, 120, 120, 120, 120, 423, 423, 332, 332, 332,
+ 207, 207, 207, 207, 207, 126, 126, 126, 126, 126,
+ 314, 314, 314, 318, 318, 318, 316, 316, 316, 316,
316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
- 319, 319, 225, 225, 122, 122, 223, 223, 224, 226,
- 226, 218, 218, 218, 218, 220, 220, 203, 203, 203,
- 228, 228, 320, 320, 229, 229, 106, 107, 107, 108,
- 108, 230, 230, 232, 231, 231, 233, 234, 234, 234,
- 235, 235, 236, 236, 236, 49, 49, 49, 49, 49,
- 44, 44, 44, 44, 45, 45, 45, 45, 137, 137,
- 137, 137, 139, 139, 138, 138, 82, 82, 83, 83,
- 83, 143, 143, 144, 144, 144, 141, 141, 142, 142,
- 253, 253, 253, 253, 253, 253, 253, 237, 237, 237,
- 244, 244, 244, 240, 240, 242, 242, 242, 243, 243,
- 243, 241, 250, 250, 252, 252, 251, 251, 247, 247,
- 248, 248, 249, 249, 249, 245, 245, 202, 202, 202,
- 202, 202, 254, 254, 254, 254, 308, 308, 308, 266,
- 266, 213, 213, 215, 215, 214, 214, 163, 267, 267,
- 275, 272, 272, 273, 273, 300, 300, 300, 276, 276,
- 289, 289, 285, 285, 286, 286, 279, 279, 291, 291,
- 291, 77, 211, 211, 371, 371, 368, 295, 295, 297,
- 297, 301, 301, 305, 305, 302, 302, 8, 416, 416,
- 416, 293, 293, 293, 293, 293, 293, 293, 293, 293,
+ 316, 319, 319, 225, 225, 122, 122, 223, 223, 224,
+ 226, 226, 218, 218, 218, 218, 220, 220, 203, 203,
+ 203, 228, 228, 320, 320, 229, 229, 106, 107, 107,
+ 108, 108, 230, 230, 232, 231, 231, 233, 234, 234,
+ 234, 235, 235, 236, 236, 236, 49, 49, 49, 49,
+ 49, 44, 44, 44, 44, 45, 45, 45, 45, 137,
+ 137, 137, 137, 139, 139, 138, 138, 82, 82, 83,
+ 83, 83, 143, 143, 144, 144, 144, 141, 141, 142,
+ 142, 253, 253, 253, 253, 253, 253, 253, 237, 237,
+ 237, 244, 244, 244, 240, 240, 242, 242, 242, 243,
+ 243, 243, 241, 250, 250, 252, 252, 251, 251, 247,
+ 247, 248, 248, 249, 249, 249, 245, 245, 202, 202,
+ 202, 202, 202, 254, 254, 254, 254, 308, 308, 308,
+ 266, 266, 213, 213, 215, 215, 214, 214, 163, 267,
+ 267, 275, 272, 272, 273, 273, 300, 300, 300, 276,
+ 276, 289, 289, 285, 285, 286, 286, 279, 279, 291,
+ 291, 291, 77, 211, 211, 371, 371, 368, 295, 295,
+ 297, 297, 301, 301, 305, 305, 302, 302, 8, 416,
+ 416, 416, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
@@ -8714,7 +8756,7 @@ var yyR1 = [...]int{
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
- 293, 293, 293, 293, 294, 294, 294, 294, 294, 294,
+ 293, 293, 293, 293, 293, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
@@ -8762,7 +8804,7 @@ var yyR1 = [...]int{
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 419, 420, 312, 313, 313, 313,
+ 294, 294, 294, 419, 420, 312, 313, 313, 313,
}
var yyR2 = [...]int{
@@ -8826,111 +8868,111 @@ var yyR2 = [...]int{
3, 3, 3, 2, 2, 3, 4, 4, 2, 11,
3, 6, 8, 6, 6, 6, 13, 8, 6, 6,
10, 7, 5, 5, 5, 5, 7, 5, 5, 5,
- 5, 5, 7, 7, 5, 5, 5, 5, 0, 6,
- 5, 6, 4, 5, 0, 8, 9, 0, 3, 0,
- 1, 0, 3, 8, 4, 1, 3, 3, 6, 7,
- 7, 8, 4, 0, 1, 0, 1, 3, 3, 1,
- 1, 2, 1, 1, 0, 2, 0, 2, 5, 3,
- 7, 4, 4, 4, 4, 3, 3, 3, 7, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
- 0, 2, 2, 1, 3, 2, 0, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 1, 3, 3,
- 0, 2, 2, 2, 2, 2, 2, 2, 4, 4,
- 3, 0, 1, 4, 3, 4, 4, 3, 3, 3,
- 2, 1, 3, 3, 3, 5, 7, 7, 6, 5,
- 3, 2, 4, 5, 5, 3, 3, 7, 3, 3,
- 3, 3, 4, 7, 5, 2, 4, 4, 4, 4,
- 4, 5, 5, 4, 4, 4, 4, 4, 4, 4,
- 4, 2, 2, 4, 4, 4, 4, 4, 2, 3,
- 3, 3, 3, 3, 5, 2, 3, 3, 2, 3,
- 4, 4, 4, 3, 4, 4, 5, 3, 5, 3,
- 5, 0, 1, 0, 1, 0, 1, 1, 1, 0,
- 2, 2, 0, 2, 2, 0, 2, 0, 1, 1,
- 1, 1, 2, 1, 3, 1, 1, 1, 1, 1,
- 3, 0, 1, 1, 3, 3, 2, 2, 1, 1,
- 5, 0, 1, 0, 1, 2, 3, 0, 3, 3,
- 3, 1, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 1, 1, 4, 4,
- 4, 2, 2, 3, 1, 3, 2, 1, 2, 1,
- 2, 2, 4, 3, 3, 6, 4, 7, 6, 1,
- 3, 2, 2, 2, 2, 1, 1, 1, 3, 2,
- 1, 1, 1, 0, 1, 1, 0, 3, 0, 2,
- 0, 2, 1, 2, 2, 0, 1, 1, 0, 1,
- 1, 5, 5, 4, 0, 2, 4, 4, 0, 1,
- 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 1, 2, 3, 5, 0,
- 1, 2, 1, 1, 0, 1, 2, 1, 3, 1,
- 1, 1, 4, 3, 1, 1, 2, 3, 7, 0,
- 3, 0, 1, 1, 3, 1, 3, 1, 1, 3,
- 3, 1, 3, 4, 4, 4, 3, 2, 4, 0,
- 1, 0, 2, 0, 1, 0, 1, 2, 1, 1,
- 1, 2, 2, 1, 2, 3, 2, 3, 2, 2,
- 2, 1, 1, 3, 3, 0, 1, 1, 2, 6,
- 5, 6, 6, 5, 5, 0, 2, 3, 3, 0,
- 2, 3, 3, 3, 2, 3, 1, 3, 6, 1,
- 1, 3, 4, 3, 4, 4, 4, 1, 3, 4,
- 5, 6, 3, 4, 5, 6, 3, 4, 1, 1,
- 1, 3, 3, 3, 3, 3, 3, 5, 5, 3,
- 3, 3, 3, 3, 3, 1, 1, 1, 1, 1,
- 3, 1, 1, 1, 2, 2, 2, 2, 1, 1,
- 2, 7, 7, 6, 6, 2, 2, 5, 6, 3,
- 3, 1, 3, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 2, 2, 4,
- 2, 4, 0, 1, 2, 5, 0, 3, 0, 1,
- 4, 4, 2, 1, 0, 0, 1, 1, 2, 2,
- 1, 1, 2, 2, 0, 1, 1, 1, 1, 5,
- 1, 3, 0, 3, 1, 1, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 4, 6, 4, 4, 8, 8,
- 6, 8, 6, 5, 4, 10, 2, 2, 1, 2,
- 2, 2, 2, 2, 5, 6, 6, 6, 6, 6,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 8, 4, 8, 8, 6, 5, 4, 4, 4, 5,
- 7, 4, 4, 7, 4, 4, 6, 6, 6, 8,
- 6, 6, 4, 4, 3, 4, 6, 6, 4, 4,
- 6, 4, 6, 4, 4, 4, 4, 4, 4, 6,
- 4, 6, 4, 4, 4, 6, 4, 6, 4, 4,
- 6, 4, 6, 4, 6, 8, 4, 6, 8, 4,
+ 5, 5, 7, 7, 5, 5, 5, 5, 6, 0,
+ 6, 5, 6, 4, 5, 0, 8, 9, 0, 3,
+ 0, 1, 0, 3, 8, 4, 1, 3, 3, 6,
+ 7, 7, 8, 4, 0, 1, 0, 1, 3, 3,
+ 1, 1, 2, 1, 1, 0, 2, 0, 2, 5,
+ 3, 7, 4, 4, 4, 4, 3, 3, 3, 7,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 2, 0, 2, 2, 1, 3, 2, 0, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 3, 1, 3,
+ 3, 0, 2, 2, 2, 2, 2, 2, 2, 4,
+ 4, 3, 0, 1, 4, 3, 4, 4, 3, 3,
+ 3, 2, 1, 3, 3, 3, 5, 7, 7, 6,
+ 5, 3, 2, 4, 5, 5, 3, 3, 7, 3,
+ 3, 3, 3, 4, 7, 5, 2, 4, 4, 4,
+ 4, 4, 5, 5, 4, 4, 4, 4, 4, 4,
+ 4, 4, 2, 2, 4, 4, 4, 4, 4, 2,
+ 3, 3, 3, 3, 3, 5, 2, 3, 3, 2,
+ 3, 4, 4, 4, 3, 4, 4, 5, 3, 5,
+ 3, 5, 0, 1, 0, 1, 0, 1, 1, 1,
+ 0, 2, 2, 0, 2, 2, 0, 2, 0, 1,
+ 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
+ 1, 3, 0, 1, 1, 3, 3, 2, 2, 1,
+ 1, 5, 0, 1, 0, 1, 2, 3, 0, 3,
+ 3, 3, 1, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 1, 1, 4,
+ 4, 4, 2, 2, 3, 1, 3, 2, 1, 2,
+ 1, 2, 2, 4, 3, 3, 6, 4, 7, 6,
+ 1, 3, 2, 2, 2, 2, 1, 1, 1, 3,
+ 2, 1, 1, 1, 0, 1, 1, 0, 3, 0,
+ 2, 0, 2, 1, 2, 2, 0, 1, 1, 0,
+ 1, 1, 5, 5, 4, 0, 2, 4, 4, 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 3, 1, 2, 3, 5,
+ 0, 1, 2, 1, 1, 0, 1, 2, 1, 3,
+ 1, 1, 1, 4, 3, 1, 1, 2, 3, 7,
+ 0, 3, 0, 1, 1, 3, 1, 3, 1, 1,
+ 3, 3, 1, 3, 4, 4, 4, 3, 2, 4,
+ 0, 1, 0, 2, 0, 1, 0, 1, 2, 1,
+ 1, 1, 2, 2, 1, 2, 3, 2, 3, 2,
+ 2, 2, 1, 1, 3, 3, 0, 1, 1, 2,
+ 6, 5, 6, 6, 5, 5, 0, 2, 3, 3,
+ 0, 2, 3, 3, 3, 2, 3, 1, 3, 6,
+ 1, 1, 3, 4, 3, 4, 4, 4, 1, 3,
+ 4, 5, 6, 3, 4, 5, 6, 3, 4, 1,
+ 1, 1, 3, 3, 3, 3, 3, 3, 5, 5,
+ 3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
+ 1, 3, 1, 1, 1, 2, 2, 2, 2, 1,
+ 1, 2, 7, 7, 6, 6, 2, 2, 5, 6,
+ 3, 3, 1, 3, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+ 4, 2, 4, 0, 1, 2, 5, 0, 3, 0,
+ 1, 4, 4, 2, 1, 0, 0, 1, 1, 2,
+ 2, 1, 1, 2, 2, 0, 1, 1, 1, 1,
+ 5, 1, 3, 0, 3, 1, 1, 1, 2, 1,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 4, 6, 4, 4, 8,
+ 8, 6, 8, 6, 5, 4, 10, 2, 2, 1,
+ 2, 2, 2, 2, 2, 5, 6, 6, 6, 6,
+ 6, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 8, 4, 8, 8, 6, 5, 4, 4, 4,
+ 5, 7, 4, 4, 7, 4, 4, 6, 6, 6,
+ 8, 6, 6, 4, 4, 3, 4, 6, 6, 4,
+ 4, 6, 4, 6, 4, 4, 4, 4, 4, 4,
+ 6, 4, 6, 4, 4, 4, 6, 4, 6, 4,
+ 4, 6, 4, 6, 4, 6, 8, 4, 6, 8,
+ 4, 6, 8, 4, 6, 8, 4, 6, 8, 4,
6, 8, 4, 6, 8, 4, 6, 8, 4, 6,
8, 4, 6, 8, 4, 6, 8, 4, 6, 8,
4, 6, 8, 4, 6, 8, 4, 6, 8, 4,
- 6, 8, 4, 6, 8, 4, 6, 8, 4, 6,
- 8, 4, 4, 4, 6, 4, 6, 4, 8, 6,
- 4, 4, 6, 4, 6, 8, 4, 6, 8, 4,
- 4, 6, 8, 6, 4, 6, 6, 8, 10, 7,
- 8, 8, 9, 4, 4, 4, 4, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 4, 4, 4,
- 4, 4, 4, 6, 4, 6, 5, 9, 6, 9,
- 8, 6, 8, 8, 8, 6, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 2, 6, 8, 10, 12,
- 14, 6, 8, 8, 10, 12, 14, 6, 8, 10,
- 12, 6, 8, 4, 4, 3, 4, 6, 6, 4,
- 6, 4, 6, 8, 0, 2, 1, 1, 1, 1,
+ 6, 8, 4, 4, 4, 6, 4, 6, 4, 8,
+ 6, 4, 4, 6, 4, 6, 8, 4, 6, 8,
+ 4, 4, 6, 8, 6, 4, 6, 6, 8, 10,
+ 7, 8, 8, 9, 4, 4, 4, 4, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 4, 4,
+ 4, 4, 4, 4, 6, 4, 6, 5, 9, 6,
+ 9, 8, 6, 8, 8, 8, 6, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 2, 6, 8, 10,
+ 12, 14, 6, 8, 8, 10, 12, 14, 6, 8,
+ 10, 12, 6, 8, 4, 4, 3, 4, 6, 6,
+ 4, 6, 4, 6, 8, 0, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 2, 0, 2, 3, 4,
- 4, 4, 4, 4, 0, 3, 4, 7, 3, 1,
- 1, 1, 0, 5, 5, 2, 3, 1, 2, 2,
- 1, 2, 1, 2, 2, 1, 2, 2, 1, 1,
- 0, 1, 0, 1, 0, 2, 1, 2, 4, 0,
- 2, 1, 1, 3, 5, 1, 1, 1, 2, 2,
- 0, 4, 0, 2, 0, 2, 2, 1, 3, 0,
- 1, 0, 1, 3, 1, 3, 2, 0, 1, 1,
- 0, 1, 2, 4, 4, 0, 2, 2, 1, 1,
- 3, 3, 3, 3, 3, 3, 3, 3, 0, 3,
- 3, 3, 0, 3, 1, 1, 0, 4, 0, 1,
- 1, 0, 3, 1, 3, 2, 1, 1, 0, 1,
- 2, 3, 4, 2, 3, 4, 4, 9, 3, 5,
- 0, 3, 3, 0, 1, 0, 2, 2, 0, 2,
- 2, 2, 0, 2, 1, 2, 3, 3, 0, 2,
- 1, 2, 3, 4, 3, 0, 1, 3, 1, 6,
- 5, 4, 1, 3, 3, 5, 0, 2, 5, 0,
- 5, 1, 3, 1, 2, 3, 4, 1, 1, 3,
- 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 0, 1, 0, 2, 0, 3, 0, 1, 0, 1,
- 1, 5, 0, 1, 0, 1, 2, 1, 1, 1,
- 1, 1, 1, 0, 1, 1, 1, 3, 0, 1,
+ 1, 1, 1, 1, 1, 0, 2, 0, 2, 3,
+ 4, 4, 4, 4, 4, 0, 3, 4, 7, 3,
+ 1, 1, 1, 0, 5, 5, 2, 3, 1, 2,
+ 2, 1, 2, 1, 2, 2, 1, 2, 2, 1,
+ 1, 0, 1, 0, 1, 0, 2, 1, 2, 4,
+ 0, 2, 1, 1, 3, 5, 1, 1, 1, 2,
+ 2, 0, 4, 0, 2, 0, 2, 2, 1, 3,
+ 0, 1, 0, 1, 3, 1, 3, 2, 0, 1,
+ 1, 0, 1, 2, 4, 4, 0, 2, 2, 1,
+ 1, 3, 3, 3, 3, 3, 3, 3, 3, 0,
+ 3, 3, 3, 0, 3, 1, 1, 0, 4, 0,
+ 1, 1, 0, 3, 1, 3, 2, 1, 1, 0,
+ 1, 2, 3, 4, 2, 3, 4, 4, 9, 3,
+ 5, 0, 3, 3, 0, 1, 0, 2, 2, 0,
+ 2, 2, 2, 0, 2, 1, 2, 3, 3, 0,
+ 2, 1, 2, 3, 4, 3, 0, 1, 3, 1,
+ 6, 5, 4, 1, 3, 3, 5, 0, 2, 5,
+ 0, 5, 1, 3, 1, 2, 3, 4, 1, 1,
+ 3, 3, 1, 2, 1, 1, 1, 1, 1, 1,
+ 1, 0, 1, 0, 2, 0, 3, 0, 1, 0,
+ 1, 1, 5, 0, 1, 0, 1, 2, 1, 1,
+ 1, 1, 1, 1, 0, 1, 1, 1, 3, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -8994,7 +9036,7 @@ var yyR2 = [...]int{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 0, 1, 1,
+ 1, 1, 1, 1, 1, 0, 0, 1, 1,
}
var yyChk = [...]int{
@@ -9004,157 +9046,156 @@ var yyChk = [...]int{
-27, -28, -74, -75, -76, -77, -78, -12, -13, -14,
-8, -32, -31, -30, 13, 14, -109, -35, 35, -40,
-50, 240, -51, -41, 241, -52, 243, 242, 280, 244,
- 396, 273, 83, 329, 330, 332, 333, 334, 335, -110,
- 703, 278, 279, 246, 39, 51, 36, 37, 40, 250,
- 286, 287, 249, 145, -33, -36, 12, -419, 15, 486,
- 275, 274, 31, -34, 596, 95, -80, -418, 751, -253,
+ 397, 273, 83, 330, 331, 333, 334, 335, 336, -110,
+ 704, 278, 279, 246, 39, 51, 36, 37, 40, 250,
+ 286, 287, 249, 145, -33, -36, 12, -419, 15, 487,
+ 275, 274, 31, -34, 597, 95, -80, -418, 752, -253,
-237, 26, 36, 32, -236, -232, -128, -237, 24, 22,
11, -79, -79, -79, 16, 17, -79, -356, -358, 95,
173, 95, -79, -57, -56, -54, -53, -55, -58, 34,
-47, -48, -380, -46, -43, 245, 242, 290, 135, 136,
280, 281, 282, 244, 264, 279, 283, 278, 299, -42,
- 90, 36, 596, 599, -363, 241, 247, 248, 243, 487,
- 138, 137, 84, -360, 391, 630, 721, -58, 723, 110,
- 113, 722, 50, 254, 724, 725, 726, 637, 727, 263,
- 728, 729, 730, 731, 737, 678, 738, 739, 740, 139,
- 11, -79, -305, -301, 100, -294, 593, 266, 628, 440,
- 629, 315, 90, 47, 42, 532, 603, 387, 391, 630,
- 517, 721, 397, 329, 347, 341, 522, 523, 524, 370,
- 362, 594, 631, 604, 318, 267, 303, 715, 360, 149,
- 723, 322, 632, 281, 398, 399, 633, 400, 110, 332,
- 437, 736, 321, 634, 734, 113, 722, 337, 88, 516,
- 57, 718, 50, 276, 445, 446, 358, 249, 354, 724,
- 304, 635, 606, 297, 138, 135, 743, 39, 350, 56,
- 33, 733, 137, 55, 725, 164, 636, 726, 637, 402,
- 377, 709, 54, 403, 282, 638, 93, 287, 598, 326,
- 717, 404, 537, 351, 405, 314, 732, 246, 639, 325,
- 698, 690, 691, 406, 407, 710, 382, 378, 383, 539,
- 640, 429, 521, 408, 694, 695, 750, 58, 641, 642,
- 711, 136, 643, 87, 727, 89, 345, 346, 644, 312,
- 265, 542, 543, 431, 374, 499, 127, 506, 507, 120,
- 121, 502, 122, 508, 123, 128, 509, 510, 511, 500,
- 124, 117, 501, 512, 513, 375, 376, 125, 514, 119,
- 118, 503, 505, 126, 515, 263, 38, 409, 595, 316,
- 64, 320, 291, 432, 52, 380, 747, 51, 705, 544,
- 645, 708, 373, 369, 496, 59, 646, 647, 648, 649,
- 518, 728, 372, 344, 368, 742, 4, 309, 491, 519,
- 729, 68, 248, 385, 384, 386, 298, 428, 365, 650,
- 651, 652, 270, 91, 653, 355, 25, 654, 655, 410,
- 305, 656, 62, 657, 658, 435, 279, 659, 60, 730,
- 45, 660, 284, 744, 731, 661, 662, 663, 704, 664,
- 286, 665, 412, 666, 692, 693, 411, 379, 381, 545,
- 293, 413, 396, 251, 597, 667, 327, 349, 283, 735,
- 668, 271, 533, 534, 535, 536, 716, 541, 540, 285,
- 290, 278, 436, 272, 669, 670, 671, 672, 673, 319,
- 689, 674, 675, 333, 601, 737, 497, 49, 676, 677,
- 678, 679, 680, 313, 308, 430, 439, 67, 92, 393,
- 681, 682, 714, 343, 338, 43, 306, 99, 477, 479,
- 480, 481, 482, 483, 478, 485, 683, 330, 61, 738,
- 739, 740, 300, 741, 525, 526, 527, 528, 13, 579,
- 562, 590, 563, 580, 564, 573, 565, 581, 589, 591,
- 546, 554, 547, 555, 585, 568, 582, 574, 567, 566,
- 588, 571, 575, 548, 556, 586, 572, 549, 557, 550,
- 558, 551, 559, 584, 583, 576, 587, 552, 560, 578,
- 553, 561, 577, 569, 570, 448, 748, 749, 520, 415,
- 139, 310, 311, 53, 366, 292, 684, 323, 685, 356,
- 357, 493, 494, 371, 342, 367, 146, 701, 331, 340,
- 699, 294, 416, 498, 280, 686, 438, 307, 388, 131,
- 339, 394, 324, 602, 538, 299, 417, 713, 600, 529,
- 530, 364, 361, 301, 531, 687, 389, 703, 418, 255,
- 295, 296, 688, 700, 419, 420, 317, 421, 422, 423,
- 424, 425, 427, 328, 426, 702, 696, 697, 302, 476,
- 599, 336, 359, 395, 458, 459, 460, 461, 462, 463,
+ 90, 36, 597, 600, -363, 241, 247, 248, 243, 488,
+ 138, 137, 84, -360, 392, 631, 722, -58, 724, 110,
+ 113, 723, 50, 254, 725, 726, 727, 638, 728, 263,
+ 729, 730, 731, 732, 738, 679, 739, 740, 741, 139,
+ 11, -79, -305, -301, 100, -294, 594, 266, 629, 441,
+ 630, 315, 90, 47, 42, 533, 604, 388, 392, 631,
+ 518, 722, 398, 330, 348, 342, 523, 524, 525, 371,
+ 363, 595, 632, 605, 318, 267, 303, 716, 361, 149,
+ 724, 322, 633, 281, 399, 400, 634, 401, 110, 333,
+ 438, 737, 321, 635, 735, 113, 723, 338, 88, 517,
+ 57, 719, 326, 50, 276, 446, 447, 359, 249, 355,
+ 725, 304, 636, 607, 297, 138, 135, 744, 39, 351,
+ 56, 33, 734, 137, 55, 726, 164, 637, 727, 638,
+ 403, 378, 710, 54, 404, 282, 639, 93, 287, 599,
+ 327, 718, 405, 538, 352, 406, 314, 733, 246, 640,
+ 325, 699, 691, 692, 407, 408, 711, 383, 379, 384,
+ 540, 641, 430, 522, 409, 695, 696, 751, 58, 642,
+ 643, 712, 136, 644, 87, 728, 89, 346, 347, 645,
+ 312, 265, 543, 544, 432, 375, 500, 127, 507, 508,
+ 120, 121, 503, 122, 509, 123, 128, 510, 511, 512,
+ 501, 124, 117, 502, 513, 514, 376, 377, 125, 515,
+ 119, 118, 504, 506, 126, 516, 263, 38, 410, 596,
+ 316, 64, 320, 291, 433, 52, 381, 748, 51, 706,
+ 545, 646, 709, 374, 370, 497, 59, 647, 648, 649,
+ 650, 519, 729, 373, 345, 369, 743, 4, 309, 492,
+ 520, 730, 68, 248, 386, 385, 387, 298, 429, 366,
+ 651, 652, 653, 270, 91, 654, 356, 25, 655, 656,
+ 411, 305, 657, 62, 658, 659, 436, 279, 660, 60,
+ 731, 45, 661, 284, 745, 732, 662, 663, 664, 705,
+ 665, 286, 666, 413, 667, 693, 694, 412, 380, 382,
+ 546, 293, 414, 397, 251, 598, 668, 328, 350, 283,
+ 736, 669, 271, 534, 535, 536, 537, 717, 542, 541,
+ 285, 290, 278, 437, 272, 670, 671, 672, 673, 674,
+ 319, 690, 675, 676, 334, 602, 738, 498, 49, 677,
+ 678, 679, 680, 681, 313, 308, 431, 440, 67, 92,
+ 394, 682, 683, 715, 344, 339, 43, 306, 99, 478,
+ 480, 481, 482, 483, 484, 479, 486, 684, 331, 61,
+ 739, 740, 741, 300, 742, 526, 527, 528, 529, 13,
+ 580, 563, 591, 564, 581, 565, 574, 566, 582, 590,
+ 592, 547, 555, 548, 556, 586, 569, 583, 575, 568,
+ 567, 589, 572, 576, 549, 557, 587, 573, 550, 558,
+ 551, 559, 552, 560, 585, 584, 577, 588, 553, 561,
+ 579, 554, 562, 578, 570, 571, 449, 749, 750, 521,
+ 416, 139, 310, 311, 53, 367, 292, 685, 323, 686,
+ 357, 358, 494, 495, 372, 343, 368, 146, 702, 332,
+ 341, 700, 294, 417, 499, 280, 687, 439, 307, 389,
+ 131, 340, 395, 324, 603, 539, 299, 418, 714, 601,
+ 530, 531, 365, 362, 301, 532, 688, 390, 704, 419,
+ 255, 295, 296, 689, 701, 420, 421, 317, 422, 423,
+ 424, 425, 426, 428, 329, 427, 703, 697, 698, 302,
+ 477, 600, 337, 360, 396, 459, 460, 461, 462, 463,
464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
- 474, 475, 495, 253, -79, 253, -190, -301, -130, 705,
- 707, 192, -272, 399, -290, 401, 414, 409, 419, 407,
- -281, 410, 412, 293, -403, 429, 253, 416, 240, 402,
- 411, 420, 421, 317, 427, 422, 328, 426, 302, 423,
- 424, 425, -387, 192, 726, 741, 331, 339, 149, 363,
- 406, 404, 430, 705, 100, -307, 100, 101, 102, -294,
- 331, -310, 336, -295, -387, -294, 334, -79, -79, -312,
- -312, -130, -210, -145, 157, -159, -261, -162, 101, -150,
- -153, -204, -205, -206, -207, -160, -220, -259, 181, 182,
- 189, 158, -216, -163, 29, 592, 488, 487, 192, 34,
- 235, 77, 78, 490, 491, 160, 63, 15, 453, 454,
- -161, 443, 444, 455, 449, 450, 516, 518, 519, 520,
- 517, 522, 523, 524, 525, 526, 527, 528, 529, 530,
- 531, 521, 532, 493, 494, 129, 495, 117, 119, 118,
- 127, 128, 496, 497, 498, 360, 544, 545, 539, 542,
- 543, 541, 540, 375, 376, 499, 562, 563, 567, 566,
- 564, 565, 568, 571, 572, 573, 574, 575, 576, 578,
- 577, 569, 570, 547, 546, 548, 549, 550, 551, 552,
- 553, 555, 554, 556, 557, 558, 559, 560, 561, 579,
- 580, 581, 582, 583, 585, 584, 589, 588, 586, 587,
- 591, 590, 500, 501, 120, 121, 122, 123, 124, 125,
- 126, 502, 505, 503, 504, 506, 507, 508, 513, 514,
- 509, 510, 511, 512, 515, 386, 384, 385, 381, 380,
- 379, -89, -102, 619, 618, -103, 440, 445, 446, 448,
- -151, -152, -165, -166, -295, -301, 258, 442, 252, 187,
- 486, -154, -148, -218, 116, 102, -31, -214, 441, 451,
- 452, 456, 447, 457, 605, 607, 622, 623, 625, 610,
- 615, 614, 617, 533, 534, 535, 536, 537, 538, 690,
- 691, 692, 693, 694, 695, 696, 697, -387, -294, 100,
- -157, -155, -199, 103, 108, 111, 112, 114, -409, 276,
- 356, 357, 130, -419, 719, -156, 105, 106, 107, 132,
- 133, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
- 232, 233, 234, 98, 104, 50, 415, 415, -190, -79,
- -79, -79, -79, -416, 722, 597, -230, -128, -232, -33,
- -31, -419, 12, -79, -31, -32, -30, -36, -38, 624,
- -37, -301, 109, -237, -253, 16, 67, 176, 48, 56,
- -235, -236, -34, -31, -145, 23, 41, 27, -132, 183,
- -145, -301, -132, -279, 257, -79, -79, -268, -315, 331,
- -270, 430, 705, 429, -260, -273, 100, -259, -272, 428,
- 101, -357, 173, -343, -347, -295, 268, -373, 264, -190,
- -366, -365, -295, -419, -129, -289, 254, 262, 261, 150,
- -390, 153, 310, 442, 252, -53, -54, -55, -272, 191,
- 725, -111, 285, 289, 96, 96, -347, -346, -345, -391,
- 289, 268, -372, -364, 260, 269, -353, 261, 262, -348,
- 254, 151, -391, -348, 259, 269, 264, 268, 289, 289,
- 139, 289, 139, 289, 289, 289, 289, 289, 289, 289,
- 289, 289, 284, -354, 165, -354, 600, 600, -360, -391,
- 264, 254, -391, -391, 260, -291, -348, 256, 28, 256,
- 38, 38, -354, -354, -354, -272, 191, -354, -354, -354,
- -354, 297, 297, -354, -354, -354, -354, -354, -354, -354,
+ 474, 475, 476, 496, 253, -79, 253, -190, -301, -130,
+ 706, 708, 192, -272, 400, -290, 402, 415, 410, 420,
+ 408, -281, 411, 413, 293, -403, 430, 253, 417, 240,
+ 403, 412, 421, 422, 317, 428, 423, 329, 427, 302,
+ 424, 425, 426, -387, 192, 727, 742, 332, 340, 149,
+ 364, 407, 405, 431, 706, 100, -307, 100, 101, 102,
+ -294, 332, -310, 337, -295, -387, -294, 335, -79, -79,
+ -312, -312, -130, -210, -145, 157, -159, -261, -162, 101,
+ -150, -153, -204, -205, -206, -207, -160, -220, -259, 181,
+ 182, 189, 158, -216, -163, 29, 593, 489, 488, 192,
+ 34, 235, 77, 78, 491, 492, 160, 63, 15, 454,
+ 455, -161, 444, 445, 456, 450, 451, 517, 519, 520,
+ 521, 518, 523, 524, 525, 526, 527, 528, 529, 530,
+ 531, 532, 522, 533, 494, 495, 129, 496, 117, 119,
+ 118, 127, 128, 497, 498, 499, 361, 545, 546, 540,
+ 543, 544, 542, 541, 376, 377, 500, 563, 564, 568,
+ 567, 565, 566, 569, 572, 573, 574, 575, 576, 577,
+ 579, 578, 570, 571, 548, 547, 549, 550, 551, 552,
+ 553, 554, 556, 555, 557, 558, 559, 560, 561, 562,
+ 580, 581, 582, 583, 584, 586, 585, 590, 589, 587,
+ 588, 592, 591, 501, 502, 120, 121, 122, 123, 124,
+ 125, 126, 503, 506, 504, 505, 507, 508, 509, 514,
+ 515, 510, 511, 512, 513, 516, 387, 385, 386, 382,
+ 381, 380, -89, -102, 620, 619, -103, 441, 446, 447,
+ 449, -151, -152, -165, -166, -295, -301, 258, 443, 252,
+ 187, 487, -154, -148, -218, 116, 102, -31, -214, 442,
+ 452, 453, 457, 448, 458, 606, 608, 623, 624, 626,
+ 611, 616, 615, 618, 534, 535, 536, 537, 538, 539,
+ 691, 692, 693, 694, 695, 696, 697, 698, -387, -294,
+ 100, -157, -155, -199, 103, 108, 111, 112, 114, -409,
+ 276, 357, 358, 130, -419, 720, -156, 105, 106, 107,
+ 132, 133, 193, 194, 195, 196, 197, 198, 199, 200,
+ 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
+ 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
+ 231, 232, 233, 234, 98, 104, 50, 416, 416, -190,
+ -79, -79, -79, -79, -416, 723, 598, -230, -128, -232,
+ -33, -31, -419, 12, -79, -31, -32, -30, -36, -38,
+ 625, -37, -301, 109, -237, -253, 16, 67, 176, 48,
+ 56, -235, -236, -34, -31, -145, 23, 41, 27, -132,
+ 183, -145, -301, -132, -279, 257, -79, -79, -268, -315,
+ 332, -270, 431, 706, 430, -260, -273, 100, -259, -272,
+ 429, 101, -357, 173, -343, -347, -295, 268, -373, 264,
+ -190, -366, -365, -295, -419, -129, -289, 254, 262, 261,
+ 150, -390, 153, 310, 443, 252, -53, -54, -55, -272,
+ 191, 726, -111, 285, 289, 96, 96, -347, -346, -345,
+ -391, 289, 268, -372, -364, 260, 269, -353, 261, 262,
+ -348, 254, 151, -391, -348, 259, 269, 264, 268, 289,
+ 289, 139, 289, 139, 289, 289, 289, 289, 289, 289,
+ 289, 289, 289, 284, -354, 165, -354, 601, 601, -360,
+ -391, 264, 254, -391, -391, 260, -291, -348, 256, 28,
+ 256, 38, 38, -354, -354, -354, -272, 191, -354, -354,
+ -354, -354, 297, 297, -354, -354, -354, -354, -354, -354,
-354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
- 253, -390, -137, 426, 317, 90, -56, 299, -39, -190,
- -289, 254, 255, -390, 286, -190, 236, 253, 708, -283,
- 173, 19, -283, -280, 415, 413, 400, 405, -283, -283,
- -283, -283, 300, 398, -349, 254, 38, 265, 415, 300,
- 398, 300, 301, 300, 301, 408, 418, 300, -306, 18,
- 176, 442, 403, 407, 293, 253, 294, 255, 417, 301,
- -306, 98, -284, 173, 300, 415, 409, 296, -283, -283,
- -313, -419, -297, -295, -293, 245, 41, 156, 28, 30,
- 159, 192, 142, 23, 160, 40, 247, 363, 264, 191,
- 260, 487, 240, 81, 605, 443, 450, 441, 449, 453,
- 489, 490, 442, 401, 34, 17, 607, 31, 274, 27,
- 44, 185, 242, 163, 608, 277, 29, 275, 129, 133,
- 610, 26, 84, 269, 18, 262, 46, 20, 611, 612,
- 21, 74, 258, 257, 176, 254, 79, 15, 235, 32,
- 172, 75, 613, 151, 145, 614, 615, 616, 617, 143,
- 77, 173, 24, 745, 451, 452, 36, 706, 592, 288,
- 187, 82, 65, 707, 157, 447, 618, 619, 130, 620,
- 134, 85, 712, 153, 22, 80, 48, 621, 289, 622,
- 259, 746, 623, 433, 624, 174, 243, 486, 78, 175,
- 719, 625, 720, 252, 414, 12, 492, 35, 273, 261,
- 73, 72, 141, 76, 457, 626, 253, 162, 256, 144,
- 132, 11, 150, 37, 16, 83, 86, 454, 455, 456,
- 63, 140, 596, 161, 19, 627, 434, 155, -387, 708,
- -313, -313, 300, 340, 35, 101, -413, -414, -415, 596,
- 433, 256, -295, -190, -85, 698, 244, -86, 704, 41,
- 251, 146, 38, -135, 415, -123, 192, 726, 709, 710,
- 711, 708, 412, 716, 714, 712, 300, 713, 96, 153,
- 155, 156, 4, -145, 172, -200, -201, 171, 165, 166,
- 167, 168, 169, 170, 177, 176, 157, 159, 173, -246,
- 154, 178, 179, 180, 181, 182, 183, 184, 186, 185,
- 187, 188, 174, 175, 191, 238, 239, -153, -153, -153,
- -153, -216, -222, -221, -419, -218, -387, -294, -301, -419,
- -419, -153, -278, -419, -150, -419, -419, -419, -419, -419,
- -225, -145, -419, -419, -423, -419, -423, -423, -423, -332,
- -419, -332, -332, -419, -419, -419, -419, -419, -419, -419,
- -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+ -354, 253, -390, -137, 427, 317, 90, -56, 299, -39,
+ -190, -289, 254, 255, -390, 286, -190, 236, 253, 709,
+ -283, 173, 19, -283, -280, 416, 414, 401, 406, -283,
+ -283, -283, -283, 300, 399, -349, 254, 38, 265, 416,
+ 300, 399, 300, 301, 300, 301, 409, 419, 300, -306,
+ 18, 176, 443, 404, 408, 293, 253, 294, 255, 418,
+ 301, -306, 98, -284, 173, 300, 416, 410, 296, -283,
+ -283, -313, -419, -297, -295, -293, 245, 41, 156, 28,
+ 30, 159, 192, 142, 23, 160, 40, 247, 364, 264,
+ 191, 260, 488, 240, 81, 606, 444, 451, 442, 450,
+ 454, 490, 491, 443, 402, 34, 17, 608, 31, 274,
+ 27, 44, 185, 242, 163, 609, 277, 29, 275, 129,
+ 133, 611, 26, 84, 269, 18, 262, 46, 20, 612,
+ 613, 21, 74, 258, 257, 176, 254, 79, 15, 235,
+ 32, 172, 75, 614, 151, 145, 615, 616, 617, 618,
+ 143, 77, 173, 24, 746, 452, 453, 36, 707, 593,
+ 288, 187, 82, 65, 708, 157, 448, 619, 620, 130,
+ 621, 134, 85, 713, 153, 22, 80, 48, 622, 289,
+ 623, 259, 747, 624, 434, 625, 174, 243, 487, 78,
+ 175, 720, 626, 721, 252, 415, 12, 493, 35, 273,
+ 261, 73, 72, 141, 76, 458, 627, 253, 162, 256,
+ 144, 132, 11, 150, 37, 16, 83, 86, 455, 456,
+ 457, 63, 140, 597, 161, 19, 628, 435, 155, -387,
+ 709, -313, -313, 300, 341, 35, 101, -413, -414, -415,
+ 597, 434, 256, -295, -190, -85, 699, 244, -86, 705,
+ 41, 251, 146, 38, -135, 416, -123, 192, 727, 710,
+ 711, 712, 709, 413, 717, 715, 713, 300, 714, 96,
+ 153, 155, 156, 4, -145, 172, -200, -201, 171, 165,
+ 166, 167, 168, 169, 170, 177, 176, 157, 159, 173,
+ -246, 154, 178, 179, 180, 181, 182, 183, 184, 186,
+ 185, 187, 188, 174, 175, 191, 238, 239, -153, -153,
+ -153, -153, -216, -222, -221, -419, -218, -387, -294, -301,
+ -419, -419, -153, -278, -419, -150, -419, -419, -419, -419,
+ -419, -225, -145, -419, -419, -423, -419, -423, -423, -423,
+ -332, -419, -332, -332, -419, -419, -419, -419, -419, -419,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
@@ -9165,396 +9206,397 @@ var yyChk = [...]int{
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
- -419, -419, -419, -419, -419, -419, -419, -419, 236, -419,
- -419, -419, -419, -419, -332, -332, -332, -332, -332, -332,
-419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
- -419, -419, -419, -419, 98, 112, 108, 111, 103, 114,
- 98, 98, 98, 98, -31, -32, -210, -419, -312, -400,
- -401, -193, -190, -419, 317, -295, -295, 286, 105, -235,
- -34, -31, -230, -236, -232, -31, -79, -121, -134, 69,
- 70, -133, -136, 27, 44, 74, 76, 99, 72, 73,
- 71, 41, -420, 97, -420, -253, -420, 96, -38, -256,
- 95, 652, 682, 652, 682, 67, 49, 98, 98, 96,
- 25, -231, -233, -145, 18, -299, 4, -298, 28, -295,
- 98, 236, 18, -191, 32, -190, -279, -279, 96, 100,
- 331, -269, -271, 431, 433, 165, -300, -295, 98, 34,
- 97, 96, -190, -321, -324, -326, -325, -327, -322, -323,
- 360, 361, 192, 364, 366, 367, 368, 369, 370, 371,
- 372, 373, 374, 377, 389, 35, 276, 356, 357, 358,
- 359, 378, 379, 380, 381, 383, 384, 385, 386, 341,
- 362, 594, 342, 343, 344, 345, 346, 347, 349, 350,
- 353, 351, 352, 354, 355, -296, -295, 95, 97, 96,
- -331, 95, -145, -137, 253, -295, 254, 254, 254, -286,
- 258, 486, -354, -354, -354, 284, 23, -46, -43, -380,
- 22, -42, -43, 245, 135, 136, 242, 95, -343, 95,
- -352, -296, -295, 95, 151, 259, 150, -351, -348, -351,
- -352, -295, -218, -295, 151, 151, -295, -295, -265, -295,
- -265, -265, 41, -265, 41, -265, 41, 105, -295, -265,
- 41, -265, 41, -265, 41, -265, 41, -265, 41, 34,
- 87, 88, 89, 34, 91, 92, 93, -218, -295, -295,
- -218, -343, -218, -190, -295, -272, 105, 105, 105, -354,
- -354, 105, 98, 98, 98, -354, -354, 105, 98, -303,
- -301, 98, 98, -392, 270, 314, 316, 105, 105, 105,
- 105, 34, 98, -393, 34, 733, 732, 734, 735, 736,
- 98, 105, 34, 105, 34, 105, -295, 95, -190, -143,
- 304, 240, 242, 245, 85, 98, 322, 320, 321, 318,
- 323, 324, 325, 165, 50, 96, 256, 253, -295, -285,
- 258, -285, -295, -302, -301, -293, -190, 256, 397, 98,
- -145, -350, 18, 176, -306, -306, -283, -190, -350, -306,
- -283, -190, -283, -283, -283, -283, -306, -306, -306, -283,
- -301, -301, -190, -190, -190, -190, -190, -190, -190, -313,
- -284, -283, 708, 98, -277, 18, 85, -313, -313, -292,
- 26, 26, 96, 337, 434, 435, -311, 334, -81, -295,
- 98, -10, -29, -18, -17, -19, 165, -10, 96, 596,
- -183, -190, 708, 708, 708, 708, 708, 708, -145, -145,
- -145, -145, 620, -208, -411, 157, 132, 133, 130, 131,
- -162, 42, 43, 41, -145, -209, -214, -216, 115, 176,
- 159, 173, -246, -150, -153, -150, -150, -150, -150, -150,
- -150, 235, -150, 235, -150, -150, -150, -150, -150, -150,
- -314, -295, 98, 192, -158, -157, 114, -409, -158, 593,
- 96, -221, 236, -145, -145, -387, -119, 459, 460, 461,
- 462, 464, 465, 466, 469, 470, 474, 475, 458, 476,
- 463, 468, 471, 472, 473, 467, 359, -145, -211, -210,
- -211, -145, -145, -223, -224, 161, -218, -145, -420, -420,
- 105, 183, -127, 27, 44, -127, -127, -127, -127, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -145, -127,
- -145, -120, 458, 476, 463, 468, 471, 472, 473, 467,
- 359, 477, 478, 479, 480, 481, 482, 483, 484, 485,
- -120, -119, -145, -145, -145, -145, -145, -145, -145, -145,
- -87, -145, 142, 143, 144, -210, -145, -150, -145, -145,
- -145, -420, -145, -145, -145, -211, -145, -145, -145, -145,
+ -419, -419, -419, -419, -419, -419, -419, -419, -419, 236,
+ -419, -419, -419, -419, -419, -332, -332, -332, -332, -332,
+ -332, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+ -419, -419, -419, -419, -419, 98, 112, 108, 111, 103,
+ 114, 98, 98, 98, 98, -31, -32, -210, -419, -312,
+ -400, -401, -193, -190, -419, 317, -295, -295, 286, 105,
+ -235, -34, -31, -230, -236, -232, -31, -79, -121, -134,
+ 69, 70, -133, -136, 27, 44, 74, 76, 99, 72,
+ 73, 71, 41, -420, 97, -420, -253, -420, 96, -38,
+ -256, 95, 653, 683, 653, 683, 67, 49, 98, 98,
+ 96, 25, -231, -233, -145, 18, -299, 4, -298, 28,
+ -295, 98, 236, 18, -191, 32, -190, -279, -279, 96,
+ 100, 332, -269, -271, 432, 434, 165, -300, -295, 98,
+ 34, 97, 96, -190, -321, -324, -326, -325, -327, -322,
+ -323, 361, 362, 192, 365, 367, 368, 369, 370, 371,
+ 372, 373, 374, 375, 378, 390, 35, 276, 357, 358,
+ 359, 360, 379, 380, 381, 382, 384, 385, 386, 387,
+ 342, 363, 595, 343, 344, 345, 346, 347, 348, 350,
+ 351, 354, 352, 353, 355, 356, -296, -295, 95, 97,
+ 96, -331, 95, -145, -137, 253, -295, 254, 254, 254,
+ -286, 258, 487, -354, -354, -354, 284, 23, -46, -43,
+ -380, 22, -42, -43, 245, 135, 136, 242, 95, -343,
+ 95, -352, -296, -295, 95, 151, 259, 150, -351, -348,
+ -351, -352, -295, -218, -295, 151, 151, -295, -295, -265,
+ -295, -265, -265, 41, -265, 41, -265, 41, 105, -295,
+ -265, 41, -265, 41, -265, 41, -265, 41, -265, 41,
+ 34, 87, 88, 89, 34, 91, 92, 93, -218, -295,
+ -295, -218, -343, -218, -190, -295, -272, 105, 105, 105,
+ -354, -354, 105, 98, 98, 98, -354, -354, 105, 98,
+ -303, -301, 98, 98, -392, 270, 314, 316, 105, 105,
+ 105, 105, 34, 98, -393, 34, 734, 733, 735, 736,
+ 737, 98, 105, 34, 105, 34, 105, -295, 95, -190,
+ -143, 304, 240, 242, 245, 85, 98, 322, 320, 321,
+ 318, 323, 324, 325, 165, 50, 96, 256, 253, -295,
+ -285, 258, -285, -295, -302, -301, -293, -190, 256, 398,
+ 98, -145, -350, 18, 176, -306, -306, -283, -190, -350,
+ -306, -283, -190, -283, -283, -283, -283, -306, -306, -306,
+ -283, -301, -301, -190, -190, -190, -190, -190, -190, -190,
+ -313, -284, -283, 709, 98, -277, 18, 85, -313, -313,
+ -292, 26, 26, 96, 338, 435, 436, -311, 335, -81,
+ -295, 98, -10, -29, -18, -17, -19, 165, -10, 96,
+ 597, -183, -190, 709, 709, 709, 709, 709, 709, -145,
+ -145, -145, -145, 621, -208, -411, 157, 132, 133, 130,
+ 131, -162, 42, 43, 41, -145, -209, -214, -216, 115,
+ 176, 159, 173, -246, -150, -153, -150, -150, -150, -150,
+ -150, -150, 235, -150, 235, -150, -150, -150, -150, -150,
+ -150, -314, -295, 98, 192, -158, -157, 114, -409, -158,
+ 594, 96, -221, 236, -145, -145, -387, -119, 460, 461,
+ 462, 463, 465, 466, 467, 470, 471, 475, 476, 459,
+ 477, 464, 469, 472, 473, 474, 468, 360, -145, -211,
+ -210, -211, -145, -145, -223, -224, 161, -218, -145, -420,
+ -420, 105, 183, -127, 27, 44, -127, -127, -127, -127,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -127, -145, -120, 459, 477, 464, 469, 472, 473, 474,
+ 468, 360, 478, 479, 480, 481, 482, 483, 484, 485,
+ 486, -120, -119, -145, -145, -145, -145, -145, -145, -145,
+ -145, -87, -145, 142, 143, 144, -210, -145, -150, -145,
+ -145, -145, -420, -145, -145, -145, -211, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -386, -385, -384, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -210, -210,
- -210, -210, -210, -145, -420, -145, -164, -148, 105, -261,
- 114, 101, -145, -145, -145, -145, -145, -145, -211, -297,
- -302, -293, -294, -210, -211, -211, -210, -210, -145, -145,
- -145, -145, -145, -145, -145, -145, -420, -145, -145, -145,
- -145, -145, -253, -420, -210, 96, -402, 433, 434, 706,
- -304, 289, -303, 28, -211, 98, 18, -263, 86, -295,
- -235, -235, 69, 70, 65, -131, -132, -136, -420, -37,
- 28, -255, -295, 645, 645, 68, 98, -333, -272, 387,
- 388, 192, -145, -145, 96, -234, 30, 31, -190, -298,
- 183, -302, -190, -264, 289, -190, -168, -170, -171, -172,
- -193, -217, -419, -173, -31, 616, 613, 18, -183, -184,
- -192, -301, -270, -315, -269, 96, 432, 434, 435, 85,
- 134, -145, -334, 191, -362, -361, -360, -343, -345, -346,
- -347, 97, -334, -339, 394, 393, -331, -331, -331, -331,
- -331, -333, -333, -333, -333, 95, -331, 95, -331, -331,
- -331, -331, -336, 95, -336, -336, -337, -336, 95, -337,
- -338, 95, -338, -373, -145, -370, -369, -367, -368, 263,
- 110, 688, 644, 596, 637, 678, 86, -365, -234, 105,
- -420, -143, -286, -371, -368, -295, -295, -295, -301, 157,
- 100, 98, 100, 98, 100, 98, -112, -60, -1, 745,
- 746, 747, 96, 23, -344, -343, -59, 314, -376, -377,
- 289, -372, -366, -352, 151, -351, -352, -352, -295, 96,
- 32, 139, 139, 139, 139, 596, 242, 35, -287, 636,
- 157, 688, 644, -343, -59, 256, 256, -314, -314, -314,
- 98, 98, -282, 741, -183, -139, 306, 165, 295, 295,
- 253, 308, 253, 308, -190, 319, 322, 320, 321, 318,
- 323, 324, 325, 41, 41, 41, 41, 41, 41, 41,
- 307, 309, 311, 297, -190, -190, -285, 85, -185, -190,
- 29, -301, 98, 98, -190, -283, -283, -190, -283, -283,
- -190, 98, -301, -415, 338, -295, 374, 699, 701, -123,
- 433, 96, 596, 26, -124, 26, -419, -411, 132, 133,
- -216, -216, -216, -209, -150, -153, -150, 156, 277, -150,
- -150, -419, -218, -420, -297, 28, 96, 86, -420, 181,
- 96, -420, -420, 96, 18, 96, -226, -224, 163, -145,
- -420, 96, -420, -420, -210, -145, -145, -145, -145, -420,
- -420, -420, -420, -420, -420, -420, -420, -420, -420, -210,
- -420, 96, 96, 18, -318, 28, -420, -420, -420, -420,
- 96, -420, -420, -225, -420, 18, -420, 86, 96, 176,
- 96, -420, -420, -420, 96, 96, -420, -420, 96, -420,
- 96, -420, -420, -420, -420, -420, -420, 96, -420, 96,
- -420, -420, -420, 96, -420, 96, -420, -420, 96, -420,
+ -145, -145, -145, -386, -385, -384, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -210,
+ -210, -210, -210, -210, -145, -420, -145, -164, -148, 105,
+ -261, 114, 101, -145, -145, -145, -145, -145, -145, -211,
+ -297, -302, -293, -294, -210, -211, -211, -210, -210, -145,
+ -145, -145, -145, -145, -145, -145, -145, -420, -145, -145,
+ -145, -145, -145, -253, -420, -210, 96, -402, 434, 435,
+ 707, -304, 289, -303, 28, -211, 98, 18, -263, 86,
+ -295, -235, -235, 69, 70, 65, -131, -132, -136, -420,
+ -37, 28, -255, -295, 646, 646, 68, 98, -333, -272,
+ 388, 389, 192, -145, -145, 96, -234, 30, 31, -190,
+ -298, 183, -302, -190, -264, 289, -190, -168, -170, -171,
+ -172, -193, -217, -419, -173, -31, 617, 614, 18, -183,
+ -184, -192, -301, -270, -315, -269, 96, 433, 435, 436,
+ 85, 134, -145, -334, 191, -362, -361, -360, -343, -345,
+ -346, -347, 97, -334, -339, 395, 394, -331, -331, -331,
+ -331, -331, -333, -333, -333, -333, 95, -331, 95, -331,
+ -331, -331, -331, -336, 95, -336, -336, -337, -336, 95,
+ -337, -338, 95, -338, -373, -145, -370, -369, -367, -368,
+ 263, 110, 689, 645, 597, 638, 679, 86, -365, -234,
+ 105, -420, -143, -286, -371, -368, -295, -295, -295, -301,
+ 157, 100, 98, 100, 98, 100, 98, -112, -60, -1,
+ 746, 747, 748, 96, 23, -344, -343, -59, 314, -376,
+ -377, 289, -372, -366, -352, 151, -351, -352, -352, -295,
+ 96, 32, 139, 139, 139, 139, 597, 242, 35, -287,
+ 637, 157, 689, 645, -343, -59, 256, 256, -314, -314,
+ -314, 98, 98, -282, 742, -183, -139, 306, 165, 295,
+ 295, 253, 308, 253, 308, -190, 319, 322, 320, 321,
+ 318, 323, 324, 325, 326, 41, 41, 41, 41, 41,
+ 41, 41, 307, 309, 311, 297, -190, -190, -285, 85,
+ -185, -190, 29, -301, 98, 98, -190, -283, -283, -190,
+ -283, -283, -190, 98, -301, -415, 339, -295, 375, 700,
+ 702, -123, 434, 96, 597, 26, -124, 26, -419, -411,
+ 132, 133, -216, -216, -216, -209, -150, -153, -150, 156,
+ 277, -150, -150, -419, -218, -420, -297, 28, 96, 86,
+ -420, 181, 96, -420, -420, 96, 18, 96, -226, -224,
+ 163, -145, -420, 96, -420, -420, -210, -145, -145, -145,
+ -145, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+ -420, -210, -420, 96, 96, 18, -318, 28, -420, -420,
+ -420, -420, 96, -420, -420, -225, -420, 18, -420, 86,
+ 96, 176, 96, -420, -420, -420, 96, 96, -420, -420,
+ 96, -420, 96, -420, -420, -420, -420, -420, -420, 96,
+ -420, 96, -420, -420, -420, 96, -420, 96, -420, -420,
96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
- 96, -420, 96, -420, -420, -420, 96, -420, 96, -420,
- 96, -420, -420, 96, -420, 96, -420, 96, -420, 96,
- 96, -420, 96, 96, 96, -420, 96, 96, 96, 96,
- -420, -420, -420, -420, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, -420, -420, -420, -420, -420, -420,
- 96, -94, 621, -420, -420, 96, -420, 96, 96, 96,
- 96, 96, -420, -419, 236, -420, -420, -420, -420, -420,
- 96, 96, 96, 96, 96, 96, -420, -420, -420, 96,
- 96, -420, 96, -420, 96, -420, -401, 705, 434, -197,
- -196, -194, 83, 257, 84, -419, -303, -420, -158, -261,
- -262, -261, -203, -295, 105, 114, -237, -167, 96, -169,
- 18, -216, 97, 96, -333, -241, -247, -280, -295, 98,
- 192, -335, 192, -335, 387, 388, -233, 236, -198, 19,
- -202, 35, 63, -29, -419, -419, 35, 96, -186, -188,
- -187, -189, 75, 79, 81, 76, 77, 78, 82, -309,
- 28, -31, -168, -31, -419, -190, -183, -421, 18, 86,
- -421, 96, 236, -271, -274, 436, 433, 439, -387, 98,
- -111, 96, -360, -347, -238, -140, 46, -340, 395, -333,
- 604, -333, -342, 98, -342, 105, 105, 105, 97, -49,
- -44, -45, 36, 90, -367, -354, 98, 45, -354, -354,
- -295, 97, -234, -139, -190, 85, -371, -371, -371, 29,
- -2, 744, 750, 151, 95, 400, 22, -255, 96, 97,
- -219, 315, 97, -113, -295, 97, 95, -352, -352, -295,
- -419, 253, 34, 34, 688, 644, 636, -59, -219, -218,
- -295, -334, 743, 742, 97, 255, 313, -144, 453, -141,
- 98, 100, -190, -190, -190, -190, -190, -190, 245, 242,
- 423, -410, 326, -410, 298, 256, -183, -190, 96, -84,
- 272, 267, -306, -306, 36, -190, 433, 717, 715, -145,
- 156, 277, -162, -153, -119, -119, -150, -316, 192, 360,
- 276, 358, 354, 374, 365, 393, 356, 394, 351, 350,
- 349, -316, -314, -150, -210, -145, -145, -145, 164, -145,
- 162, -145, -95, -94, -420, -420, -420, -420, -420, -95,
- -95, -95, -95, -95, -95, -95, -95, -95, -95, -230,
- -145, -145, -145, -420, 192, 360, -95, -145, 18, -145,
- -314, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ 96, -420, 96, -420, 96, -420, -420, -420, 96, -420,
+ 96, -420, 96, -420, -420, 96, -420, 96, -420, 96,
+ -420, 96, 96, -420, 96, 96, 96, -420, 96, 96,
+ 96, 96, -420, -420, -420, -420, 96, 96, 96, 96,
+ 96, 96, 96, 96, 96, 96, -420, -420, -420, -420,
+ -420, -420, 96, -94, 622, -420, -420, 96, -420, 96,
+ 96, 96, 96, 96, -420, -419, 236, -420, -420, -420,
+ -420, -420, 96, 96, 96, 96, 96, 96, -420, -420,
+ -420, 96, 96, -420, 96, -420, 96, -420, -401, 706,
+ 435, -197, -196, -194, 83, 257, 84, -419, -303, -420,
+ -158, -261, -262, -261, -203, -295, 105, 114, -237, -167,
+ 96, -169, 18, -216, 97, 96, -333, -241, -247, -280,
+ -295, 98, 192, -335, 192, -335, 388, 389, -233, 236,
+ -198, 19, -202, 35, 63, -29, -419, -419, 35, 96,
+ -186, -188, -187, -189, 75, 79, 81, 76, 77, 78,
+ 82, -309, 28, -31, -168, -31, -419, -190, -183, -421,
+ 18, 86, -421, 96, 236, -271, -274, 437, 434, 440,
+ -387, 98, -111, 96, -360, -347, -238, -140, 46, -340,
+ 396, -333, 605, -333, -342, 98, -342, 105, 105, 105,
+ 97, -49, -44, -45, 36, 90, -367, -354, 98, 45,
+ -354, -354, -295, 97, -234, -139, -190, 85, -371, -371,
+ -371, 29, -2, 745, 751, 151, 95, 401, 22, -255,
+ 96, 97, -219, 315, 97, -113, -295, 97, 95, -352,
+ -352, -295, -419, 253, 34, 34, 689, 645, 637, -59,
+ -219, -218, -295, -334, 744, 743, 97, 255, 313, -144,
+ 454, -141, 98, 100, -190, -190, -190, -190, -190, -190,
+ 245, 242, 424, -410, 327, 98, -410, 298, 256, -183,
+ -190, 96, -84, 272, 267, -306, -306, 36, -190, 434,
+ 718, 716, -145, 156, 277, -162, -153, -119, -119, -150,
+ -316, 192, 361, 276, 359, 355, 375, 366, 394, 357,
+ 395, 352, 351, 350, -316, -314, -150, -210, -145, -145,
+ -145, 164, -145, 162, -145, -95, -94, -420, -420, -420,
+ -420, -420, -95, -95, -95, -95, -95, -95, -95, -95,
+ -95, -95, -230, -145, -145, -145, -420, 192, 361, -95,
+ -145, 18, -145, -314, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -384, -145, -210, -145,
- -210, -145, -145, -145, -145, -145, -385, -385, -385, -385,
- -385, -210, -210, -210, -210, -145, -419, -295, -98, -97,
- -96, 671, 257, -94, -164, -98, -164, 235, -145, 235,
- 235, 235, -145, -211, -297, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -194, -348, 295, -348, 295,
- -348, -265, 96, -276, 26, 18, 63, 63, -167, -198,
- -132, -168, -295, -244, 698, -250, 52, -248, -249, 53,
- -245, 54, 62, -335, -335, 183, -235, -145, -266, 85,
- -267, -275, -218, -213, -215, -214, -419, -254, -420, -295,
- -265, -267, -170, -171, -171, -170, -171, 75, 75, 75,
- 80, 75, 80, 75, -187, -301, -420, -145, -304, 86,
- -168, -168, -192, -301, 183, 433, 437, 438, -360, -408,
- 130, 157, 34, 85, 391, 110, -406, 191, 633, 683,
- 688, 644, 637, 678, -407, 259, 150, 151, 271, 28,
- 47, 97, 96, 97, 96, 97, 97, 96, -288, -287,
- -45, -44, -354, -354, 105, -387, 98, 98, 255, -190,
- 85, 85, 85, -114, 748, 105, 95, -3, 90, -145,
- 95, 23, -343, -218, -378, -328, -379, -329, -330, -5,
- -6, -355, -117, 63, 110, -63, 50, 254, 728, 729,
- 139, -419, 741, -370, -255, -374, -376, -190, -149, -419,
- -161, -147, -146, -148, -154, 181, 182, 276, 356, 357,
- -219, -190, -138, 304, 312, 95, -142, 101, -389, 86,
- 295, 391, 295, 391, 98, -412, 327, 98, -412, -190,
- -84, -49, -190, -283, -283, 36, -387, -420, -162, -153,
- -126, 176, 596, -319, 603, -331, -331, -331, -338, -331,
- 346, -331, 346, -331, -420, -420, -420, 96, -420, 26,
- -420, 96, -145, 96, -95, -95, -95, -95, -95, -122,
- 492, 96, 96, -420, 95, 95, -420, -145, -420, -420,
- -420, 96, -420, -420, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -420, 96, -420, 96, -420, 96,
- -420, 96, -420, 96, -420, 96, -420, 96, -420, 96,
- -420, 96, -420, 96, -420, 96, -420, 96, -420, 96,
- -420, 96, -420, 96, -420, 96, -420, -420, 96, -420,
- -420, -420, 96, -420, 96, -420, 96, -420, -420, -420,
- 96, -317, 689, -420, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -93, -296, -94, 653, 653, -420,
- -94, -227, 96, -150, -420, -150, -150, -150, -420, -420,
- -420, 96, -420, 96, 96, -420, 96, -420, 96, -420,
- -420, -420, -420, 96, -195, 26, -419, -195, -419, -195,
- -420, -261, -190, -198, -228, 20, -241, 57, 366, -252,
- -251, 61, 53, -249, 23, 55, 23, 33, -266, 96,
- 165, -308, 96, 28, -420, -420, 96, 63, 236, -420,
- -198, -181, -180, 85, 86, -182, 85, -180, 75, 75,
- -256, 96, -264, -168, -198, -198, 236, 130, -419, -149,
- 16, 98, 98, -387, -405, 732, 733, 34, 105, -354,
- -354, 151, 151, -190, 95, -333, 98, -333, 105, 105,
- 34, 91, 92, 93, 34, 87, 88, 89, -190, -190,
- -190, -190, -375, 95, 23, -145, 95, 165, 97, -255,
- -255, 291, 176, -354, 726, 297, 297, -354, -354, -354,
- -116, -115, 748, 97, -420, 96, -341, 596, 599, -145,
- -155, -155, -256, 97, -383, 596, -388, -295, -295, -295,
- -295, 105, 107, -420, 594, 82, 597, -420, -333, -145,
- -145, -145, -145, -235, 98, -145, -145, 105, 105, -95,
- -420, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -384,
+ -145, -210, -145, -210, -145, -145, -145, -145, -145, -385,
+ -385, -385, -385, -385, -210, -210, -210, -210, -145, -419,
+ -295, -98, -97, -96, 672, 257, -94, -164, -98, -164,
+ 235, -145, 235, 235, 235, -145, -211, -297, -145, -145,
+ -145, -145, -145, -145, -145, -145, -145, -145, -194, -348,
+ 295, -348, 295, -348, -265, 96, -276, 26, 18, 63,
+ 63, -167, -198, -132, -168, -295, -244, 699, -250, 52,
+ -248, -249, 53, -245, 54, 62, -335, -335, 183, -235,
+ -145, -266, 85, -267, -275, -218, -213, -215, -214, -419,
+ -254, -420, -295, -265, -267, -170, -171, -171, -170, -171,
+ 75, 75, 75, 80, 75, 80, 75, -187, -301, -420,
+ -145, -304, 86, -168, -168, -192, -301, 183, 434, 438,
+ 439, -360, -408, 130, 157, 34, 85, 392, 110, -406,
+ 191, 634, 684, 689, 645, 638, 679, -407, 259, 150,
+ 151, 271, 28, 47, 97, 96, 97, 96, 97, 97,
+ 96, -288, -287, -45, -44, -354, -354, 105, -387, 98,
+ 98, 255, -190, 85, 85, 85, -114, 749, 105, 95,
+ -3, 90, -145, 95, 23, -343, -218, -378, -328, -379,
+ -329, -330, -5, -6, -355, -117, 63, 110, -63, 50,
+ 254, 729, 730, 139, -419, 742, -370, -255, -374, -376,
+ -190, -149, -419, -161, -147, -146, -148, -154, 181, 182,
+ 276, 357, 358, -219, -190, -138, 304, 312, 95, -142,
+ 101, -389, 86, 295, 392, 295, 392, 98, -412, 328,
+ 98, -412, -190, -84, -49, -190, -283, -283, 36, -387,
+ -420, -162, -153, -126, 176, 597, -319, 604, -331, -331,
+ -331, -338, -331, 347, -331, 347, -331, -420, -420, -420,
+ 96, -420, 26, -420, 96, -145, 96, -95, -95, -95,
+ -95, -95, -122, 493, 96, 96, -420, 95, 95, -420,
+ -145, -420, -420, -420, 96, -420, -420, -420, -420, -420,
+ -420, -420, -420, -420, -420, -420, -420, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ 96, -420, 96, -420, 96, -420, 96, -420, 96, -420,
+ -420, 96, -420, -420, -420, 96, -420, 96, -420, 96,
+ -420, -420, -420, 96, -317, 690, -420, -420, -420, -420,
+ -420, -420, -420, -420, -420, -420, -420, -93, -296, -94,
+ 654, 654, -420, -94, -227, 96, -150, -420, -150, -150,
+ -150, -420, -420, -420, 96, -420, 96, 96, -420, 96,
+ -420, 96, -420, -420, -420, -420, 96, -195, 26, -419,
+ -195, -419, -195, -420, -261, -190, -198, -228, 20, -241,
+ 57, 367, -252, -251, 61, 53, -249, 23, 55, 23,
+ 33, -266, 96, 165, -308, 96, 28, -420, -420, 96,
+ 63, 236, -420, -198, -181, -180, 85, 86, -182, 85,
+ -180, 75, 75, -256, 96, -264, -168, -198, -198, 236,
+ 130, -419, -149, 16, 98, 98, -387, -405, 733, 734,
+ 34, 105, -354, -354, 151, 151, -190, 95, -333, 98,
+ -333, 105, 105, 34, 91, 92, 93, 34, 87, 88,
+ 89, -190, -190, -190, -190, -375, 95, 23, -145, 95,
+ 165, 97, -255, -255, 291, 176, -354, 727, 297, 297,
+ -354, -354, -354, -116, -115, 749, 97, -420, 96, -341,
+ 597, 600, -145, -155, -155, -256, 97, -383, 597, -388,
+ -295, -295, -295, -295, 105, 107, -420, 595, 82, 598,
+ -420, -333, -145, -145, -145, -145, -235, 98, -145, -145,
+ 105, 105, -95, -420, -145, -145, -145, -145, -145, -145,
-145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -210, -145, -420, -178, -177, -179, 709, 130, 34,
- -316, -420, -212, 289, -101, -100, -99, 18, -420, -145,
- -119, -119, -119, -119, -145, -145, -145, -145, -145, -145,
- -419, 75, 22, 20, -258, -295, 259, -419, -258, -419,
- -304, -228, -229, 21, 23, -242, 59, -240, 58, -240,
- -251, 23, 23, 98, 23, 98, 151, -275, -145, -215,
- -303, 63, -29, -295, -213, -295, -230, -145, 95, -145,
- -158, -198, -198, -145, -205, 516, 518, 519, 520, 517,
- 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
- 521, 532, 493, 494, 495, 117, 119, 118, 127, 128,
- 496, 497, 498, 360, 544, 545, 539, 542, 543, 541,
- 540, 375, 376, 499, 562, 563, 567, 566, 564, 565,
- 568, 571, 572, 573, 574, 575, 576, 578, 577, 569,
- 570, 547, 546, 548, 549, 550, 551, 552, 553, 555,
- 554, 556, 557, 558, 559, 560, 561, 579, 580, 581,
- 582, 583, 585, 584, 589, 588, 586, 587, 591, 590,
- 500, 501, 120, 121, 122, 123, 124, 125, 126, 502,
- 505, 503, 506, 507, 508, 513, 514, 509, 510, 511,
- 512, 515, 386, 384, 385, 381, 380, 379, 440, 445,
- 446, 448, 533, 534, 535, 536, 537, 538, 690, 691,
- 692, 693, 694, 695, 696, 697, 98, 98, 95, -145,
- 97, 97, -256, -374, -60, 97, -257, -255, 105, 97,
- 292, -214, -419, 98, -354, -354, -354, 105, 105, -303,
- -420, 96, -295, -407, -376, 600, 600, -420, 28, -382,
- -381, -297, 95, 86, 68, 595, 598, -420, -420, -420,
- 96, -420, -420, -420, 97, 97, -420, -420, -420, -420,
+ -145, -145, -145, -145, -210, -145, -420, -178, -177, -179,
+ 710, 130, 34, -316, -420, -212, 289, -101, -100, -99,
+ 18, -420, -145, -119, -119, -119, -119, -145, -145, -145,
+ -145, -145, -145, -419, 75, 22, 20, -258, -295, 259,
+ -419, -258, -419, -304, -228, -229, 21, 23, -242, 59,
+ -240, 58, -240, -251, 23, 23, 98, 23, 98, 151,
+ -275, -145, -215, -303, 63, -29, -295, -213, -295, -230,
+ -145, 95, -145, -158, -198, -198, -145, -205, 517, 519,
+ 520, 521, 518, 523, 524, 525, 526, 527, 528, 529,
+ 530, 531, 532, 522, 533, 494, 495, 496, 117, 119,
+ 118, 127, 128, 497, 498, 499, 361, 545, 546, 540,
+ 543, 544, 542, 541, 376, 377, 500, 563, 564, 568,
+ 567, 565, 566, 569, 572, 573, 574, 575, 576, 577,
+ 579, 578, 570, 571, 548, 547, 549, 550, 551, 552,
+ 553, 554, 556, 555, 557, 558, 559, 560, 561, 562,
+ 580, 581, 582, 583, 584, 586, 585, 590, 589, 587,
+ 588, 592, 591, 501, 502, 120, 121, 122, 123, 124,
+ 125, 126, 503, 506, 504, 507, 508, 509, 514, 515,
+ 510, 511, 512, 513, 516, 387, 385, 386, 382, 381,
+ 380, 441, 446, 447, 449, 534, 535, 536, 537, 538,
+ 539, 691, 692, 693, 694, 695, 696, 697, 698, 98,
+ 98, 95, -145, 97, 97, -256, -374, -60, 97, -257,
+ -255, 105, 97, 292, -214, -419, 98, -354, -354, -354,
+ 105, 105, -303, -420, 96, -295, -407, -376, 601, 601,
+ -420, 28, -382, -381, -297, 95, 86, 68, 596, 599,
+ -420, -420, -420, 96, -420, -420, -420, 97, 97, -420,
-420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
- -420, -420, -420, -420, -420, -420, -420, -420, 96, -420,
- -177, -179, -420, 85, -158, -230, 23, -98, 314, 316,
- -98, -420, -420, -420, -420, -420, 96, -420, -420, 96,
- -420, 96, -420, -420, -258, -420, 23, 23, 96, -420,
- -258, -420, -258, -197, -229, -108, -107, -106, 627, -145,
- -210, -243, 60, 85, 134, 98, 98, 98, 16, -419,
- -213, 236, -308, -235, -255, -175, 400, -230, -420, -255,
- 97, 28, 97, 750, 151, 97, -214, -125, -419, 288,
- -303, 98, 98, -115, -118, -29, 96, 165, -255, -190,
- 68, -145, -210, -420, 85, 608, 709, -92, -91, -88,
- 720, 746, -210, -94, -94, -145, -145, -145, -420, -295,
- 259, -420, -420, -108, 96, -105, -104, -295, -320, 596,
- 85, 134, -267, -255, -308, -295, 97, -420, -419, -235,
- 97, -239, -29, 95, -3, 288, -328, -379, -329, -330,
- -5, -6, -355, -82, 596, -381, -359, -301, -297, 98,
- 105, 97, 596, -420, -420, -90, 159, 718, 686, -155,
- 235, -420, 96, -420, 96, -420, 96, -106, 96, 28,
- 601, -420, -304, -176, -174, -295, 650, -398, -397, 592,
- -408, -404, 130, 157, 110, -406, 688, 644, 140, 141,
- -82, -145, 95, -420, -83, 303, 705, 236, -389, 597,
- -90, 719, 664, 639, 664, 639, -150, -145, -145, -145,
- -104, -419, -420, 96, 26, -321, -62, 661, -395, -396,
- 85, -399, 406, 660, 681, 130, 98, 97, -255, 264,
- -302, -383, 598, 156, -119, -420, 96, -420, 96, -420,
- -93, -174, 657, -334, -158, -396, 85, -395, 85, 17,
- 16, -4, 749, 97, 305, -90, 664, 639, -145, -145,
- -420, -61, 29, -175, -394, 272, 267, 270, 35, -394,
- 105, -4, -420, -420, 661, 266, 34, 130, -158, -178,
- -177, -177,
+ -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+ -420, 96, -420, -177, -179, -420, 85, -158, -230, 23,
+ -98, 314, 316, -98, -420, -420, -420, -420, -420, 96,
+ -420, -420, 96, -420, 96, -420, -420, -258, -420, 23,
+ 23, 96, -420, -258, -420, -258, -197, -229, -108, -107,
+ -106, 628, -145, -210, -243, 60, 85, 134, 98, 98,
+ 98, 16, -419, -213, 236, -308, -235, -255, -175, 401,
+ -230, -420, -255, 97, 28, 97, 751, 151, 97, -214,
+ -125, -419, 288, -303, 98, 98, -115, -118, -29, 96,
+ 165, -255, -190, 68, -145, -210, -420, 85, 609, 710,
+ -92, -91, -88, 721, 747, -210, -94, -94, -145, -145,
+ -145, -420, -295, 259, -420, -420, -108, 96, -105, -104,
+ -295, -320, 597, 85, 134, -267, -255, -308, -295, 97,
+ -420, -419, -235, 97, -239, -29, 95, -3, 288, -328,
+ -379, -329, -330, -5, -6, -355, -82, 597, -381, -359,
+ -301, -297, 98, 105, 97, 597, -420, -420, -90, 159,
+ 719, 687, -155, 235, -420, 96, -420, 96, -420, 96,
+ -106, 96, 28, 602, -420, -304, -176, -174, -295, 651,
+ -398, -397, 593, -408, -404, 130, 157, 110, -406, 689,
+ 645, 140, 141, -82, -145, 95, -420, -83, 303, 706,
+ 236, -389, 598, -90, 720, 665, 640, 665, 640, -150,
+ -145, -145, -145, -104, -419, -420, 96, 26, -321, -62,
+ 662, -395, -396, 85, -399, 407, 661, 682, 130, 98,
+ 97, -255, 264, -302, -383, 599, 156, -119, -420, 96,
+ -420, 96, -420, -93, -174, 658, -334, -158, -396, 85,
+ -395, 85, 17, 16, -4, 750, 97, 305, -90, 665,
+ 640, -145, -145, -420, -61, 29, -175, -394, 272, 267,
+ 270, 35, -394, 105, -4, -420, -420, 662, 266, 34,
+ 130, -158, -178, -177, -177,
}
var yyDef = [...]int{
- 888, -2, -2, 890, 2, 4, 5, 6, 7, 8,
+ 889, -2, -2, 891, 2, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 70, 72, 73, 888, 888, 888, 0, 888, 0,
- 0, 888, -2, -2, 888, 1643, 0, 888, 0, 883,
- 0, -2, 803, 809, 0, 818, -2, 0, 0, 888,
- 888, 2283, 2283, 883, 0, 0, 0, 0, 0, 888,
- 888, 888, 888, 1648, 1501, 50, 888, 0, 85, 86,
- 838, 839, 840, 65, 0, 2281, 889, 1, 3, 71,
- 75, 0, 0, 0, 58, 1510, 0, 78, 0, 0,
- 892, 0, 0, 1626, 888, 888, 0, 126, 127, 0,
+ 39, 70, 72, 73, 889, 889, 889, 0, 889, 0,
+ 0, 889, -2, -2, 889, 1644, 0, 889, 0, 884,
+ 0, -2, 804, 810, 0, 819, -2, 0, 0, 889,
+ 889, 2285, 2285, 884, 0, 0, 0, 0, 0, 889,
+ 889, 889, 889, 1649, 1502, 50, 889, 0, 85, 86,
+ 839, 840, 841, 65, 0, 2283, 890, 1, 3, 71,
+ 75, 0, 0, 0, 58, 1511, 0, 78, 0, 0,
+ 893, 0, 0, 1627, 889, 889, 0, 126, 127, 0,
0, 0, -2, 130, -2, 159, 160, 161, 0, 166,
- 608, 526, 578, 524, 563, -2, 512, 0, 0, 0,
+ 609, 526, 578, 524, 563, -2, 512, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 529,
- 401, 401, 0, 0, -2, 512, 512, 512, 1628, 0,
+ 401, 401, 0, 0, -2, 512, 512, 512, 1629, 0,
0, 0, 560, 463, 401, 401, 401, 0, 401, 401,
401, 401, 0, 0, 401, 401, 401, 401, 401, 401,
401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 1528, 165, 1644, 1641, 1642, 1804, 1805, 1806, 1807,
- 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
- 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
- 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
- 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
- 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
- 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
- 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
- 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
- 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
- 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
- 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
- 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
- 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
- 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
- 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
- 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
- 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
- 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
- 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
- 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027,
- 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
- 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
- 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
- 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
- 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077,
- 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
- 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
- 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
- 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
- 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
- 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
- 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
- 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
- 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
- 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
- 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
- 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197,
- 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
- 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
- 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227,
- 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
- 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247,
- 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257,
- 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267,
- 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277,
- 2278, 2279, 2280, 0, 1620, 0, 721, 992, 0, 884,
- 885, 0, 792, 792, 0, 792, 792, 792, 792, 0,
- 0, 0, 735, 0, 0, 0, 0, 789, 0, 751,
- 752, 0, 789, 0, 758, 795, 0, 0, 765, 792,
- 792, 768, 2284, 0, 2284, 2284, 0, 0, 1611, 0,
- 786, 784, 798, 799, 42, 802, 805, 806, 807, 808,
- 811, 0, 822, 825, 1637, 1638, 0, 827, 832, 851,
- 852, 0, 45, 1152, 0, 1016, 0, 1027, -2, 1038,
- 1055, 1056, 1057, 1058, 1059, 1061, 1062, 1063, 0, 0,
- 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 1132,
- 0, 0, 0, 0, 2006, 1472, 0, 0, 1434, 1434,
- 1168, 1434, 1434, 1436, 1436, 1436, 1857, 1998, 2007, 2186,
- 1818, 1824, 1825, 1826, 2132, 2133, 2134, 2135, 2227, 2228,
- 2232, 1920, 1813, 2199, 2200, 0, 2280, 1959, 1967, 1968,
- 1944, 1953, 1992, 2094, 2211, 1836, 1987, 2057, 1917, 1939,
- 1940, 2075, 2076, 1963, 1964, 1943, 2138, 2140, 2156, 2157,
- 2142, 2144, 2153, 2159, 2164, 2143, 2155, 2160, 2173, 2177,
- 2180, 2181, 2182, 2150, 2148, 2161, 2165, 2167, 2169, 2175,
- 2178, 2151, 2149, 2162, 2166, 2168, 2170, 2176, 2179, 2137,
- 2141, 2145, 2154, 2172, 2152, 2171, 2146, 2158, 2163, 2174,
- 2147, 2139, 1957, 1960, 1947, 1948, 1950, 1952, 1958, 1965,
- 1971, 1949, 1970, 1969, 0, 1945, 1946, 1951, 1962, 1966,
- 1954, 1955, 1956, 1961, 1972, 2013, 2012, 2011, 2056, 1983,
- 2055, 0, 0, 0, 0, 0, 1807, 1862, 1863, 2183,
- 1356, 1357, 1358, 1359, 0, 0, 0, 0, 0, 0,
- 0, 290, 291, 1485, 1486, 44, 1151, 1607, 1436, 1436,
- 1436, 1436, 1436, 1436, 1090, 1091, 1092, 1093, 1094, 1120,
- 1121, 1127, 1128, 2070, 2071, 2072, 2073, 1900, 2222, 1909,
- 1910, 2052, 2053, 1922, 1923, 2254, 2255, -2, -2, -2,
- 232, 233, 234, 235, 236, 237, 238, 239, 0, 1861,
- 2197, 2198, 228, 0, 0, 295, 292, 293, 294, 1134,
- 1135, 248, 249, 250, 251, 252, 253, 254, 255, 256,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 297, 298, 2283, 0, 861, 0, 0,
- 0, 0, 0, 0, 1649, 1650, 1510, 0, 1502, 1501,
- 63, 0, 888, -2, 0, 0, 0, 0, 47, 0,
- 52, 949, 891, 77, 76, 1550, 1553, 0, 0, 0,
- 59, 1511, 67, 69, 1512, 0, 893, 894, 0, 925,
- 929, 0, 0, 0, 1627, 1626, 1626, 102, 0, 0,
- 103, 123, 124, 125, 0, 0, 109, 110, 1613, 1614,
- 43, 0, 0, 177, 178, 0, 1108, 428, 0, 173,
- 0, 421, 360, 0, 1528, 0, 0, 0, 0, 0,
- 1624, 0, 1621, 154, 155, 162, 163, 164, 401, 401,
- 401, 575, 0, 0, 165, 165, 533, 534, 535, 0,
- 0, -2, 426, 0, 513, 0, 0, 415, 415, 419,
- 417, 418, 0, 0, 0, 0, 0, 0, 0, 0,
- 552, 0, 553, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 669, 0, 402, 0, 573, 574, 464, 0,
- 0, 0, 0, 0, 0, 0, 0, 1629, 1630, 0,
- 550, 551, 0, 0, 0, 401, 401, 0, 0, 0,
- 0, 401, 401, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 153, 1541, 0, 0, 0, -2, 0, 713, 0,
- 0, 0, 1622, 1622, 0, 720, 0, 0, 0, 725,
- 0, 0, 726, 0, 789, 789, 787, 788, 728, 729,
- 730, 731, 792, 0, 0, 410, 411, 412, 789, 792,
- 0, 792, 792, 792, 792, 789, 789, 789, 792, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2284, 795,
- 792, 0, 759, 0, 760, 761, 762, 763, 766, 767,
- 769, 2285, 2286, 1639, 1640, 1651, 1652, 1653, 1654, 1655,
+ 401, 1529, 165, 1645, 1642, 1643, 1805, 1806, 1807, 1808,
+ 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
+ 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828,
+ 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838,
+ 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
+ 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858,
+ 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868,
+ 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878,
+ 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888,
+ 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898,
+ 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908,
+ 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
+ 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928,
+ 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938,
+ 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948,
+ 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958,
+ 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968,
+ 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978,
+ 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988,
+ 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+ 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
+ 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
+ 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
+ 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
+ 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
+ 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
+ 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
+ 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
+ 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
+ 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
+ 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118,
+ 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128,
+ 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138,
+ 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
+ 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158,
+ 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168,
+ 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
+ 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188,
+ 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198,
+ 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208,
+ 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218,
+ 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228,
+ 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
+ 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248,
+ 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
+ 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
+ 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
+ 2279, 2280, 2281, 2282, 0, 1621, 0, 722, 993, 0,
+ 885, 886, 0, 793, 793, 0, 793, 793, 793, 793,
+ 0, 0, 0, 736, 0, 0, 0, 0, 790, 0,
+ 752, 753, 0, 790, 0, 759, 796, 0, 0, 766,
+ 793, 793, 769, 2286, 0, 2286, 2286, 0, 0, 1612,
+ 0, 787, 785, 799, 800, 42, 803, 806, 807, 808,
+ 809, 812, 0, 823, 826, 1638, 1639, 0, 828, 833,
+ 852, 853, 0, 45, 1153, 0, 1017, 0, 1028, -2,
+ 1039, 1056, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 0,
+ 0, 0, 0, 1069, 1070, 0, 0, 0, 0, 0,
+ 1133, 0, 0, 0, 0, 2008, 1473, 0, 0, 1435,
+ 1435, 1169, 1435, 1435, 1437, 1437, 1437, 1858, 2000, 2009,
+ 2188, 1819, 1825, 1826, 1827, 2134, 2135, 2136, 2137, 2229,
+ 2230, 2234, 1922, 1814, 2201, 2202, 0, 2282, 1961, 1969,
+ 1970, 1946, 1955, 1994, 2096, 2213, 1837, 1989, 2059, 1919,
+ 1941, 1942, 2077, 2078, 1965, 1966, 1945, 2140, 2142, 2158,
+ 2159, 2144, 2146, 2155, 2161, 2166, 2145, 2157, 2162, 2175,
+ 2179, 2182, 2183, 2184, 2152, 2150, 2163, 2167, 2169, 2171,
+ 2177, 2180, 2153, 2151, 2164, 2168, 2170, 2172, 2178, 2181,
+ 2139, 2143, 2147, 2156, 2174, 2154, 2173, 2148, 2160, 2165,
+ 2176, 2149, 2141, 1959, 1962, 1949, 1950, 1952, 1954, 1960,
+ 1967, 1973, 1951, 1972, 1971, 0, 1947, 1948, 1953, 1964,
+ 1968, 1956, 1957, 1958, 1963, 1974, 2015, 2014, 2013, 2058,
+ 1985, 2057, 0, 0, 0, 0, 0, 1808, 1864, 1865,
+ 2185, 1357, 1358, 1359, 1360, 0, 0, 0, 0, 0,
+ 0, 0, 290, 291, 1486, 1487, 44, 1152, 1608, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1091, 1092, 1093, 1094, 1095,
+ 1121, 1122, 1128, 1129, 2072, 2073, 2074, 2075, 1902, 2224,
+ 1911, 1912, 2054, 2055, 1924, 1925, 2256, 2257, -2, -2,
+ -2, 232, 233, 234, 235, 236, 237, 238, 239, 0,
+ 1863, 2199, 2200, 228, 0, 0, 295, 292, 293, 294,
+ 1135, 1136, 248, 249, 250, 251, 252, 253, 254, 255,
+ 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 297, 298, 2285, 0, 862, 0,
+ 0, 0, 0, 0, 0, 1650, 1651, 1511, 0, 1503,
+ 1502, 63, 0, 889, -2, 0, 0, 0, 0, 47,
+ 0, 52, 950, 892, 77, 76, 1551, 1554, 0, 0,
+ 0, 59, 1512, 67, 69, 1513, 0, 894, 895, 0,
+ 926, 930, 0, 0, 0, 1628, 1627, 1627, 102, 0,
+ 0, 103, 123, 124, 125, 0, 0, 109, 110, 1614,
+ 1615, 43, 0, 0, 177, 178, 0, 1109, 428, 0,
+ 173, 0, 421, 360, 0, 1529, 0, 0, 0, 0,
+ 0, 1625, 0, 1622, 154, 155, 162, 163, 164, 401,
+ 401, 401, 575, 0, 0, 165, 165, 533, 534, 535,
+ 0, 0, -2, 426, 0, 513, 0, 0, 415, 415,
+ 419, 417, 418, 0, 0, 0, 0, 0, 0, 0,
+ 0, 552, 0, 553, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 670, 0, 402, 0, 573, 574, 464,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1630, 1631,
+ 0, 550, 551, 0, 0, 0, 401, 401, 0, 0,
+ 0, 0, 401, 401, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 153, 1542, 0, 0, 0, -2, 0, 714,
+ 0, 0, 0, 1623, 1623, 0, 721, 0, 0, 0,
+ 726, 0, 0, 727, 0, 790, 790, 788, 789, 729,
+ 730, 731, 732, 793, 0, 0, 410, 411, 412, 790,
+ 793, 0, 793, 793, 793, 793, 790, 790, 790, 793,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286,
+ 796, 793, 0, 760, 0, 761, 762, 763, 764, 767,
+ 768, 770, 2287, 2288, 1640, 1641, 1652, 1653, 1654, 1655,
1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
@@ -9569,288 +9611,288 @@ var yyDef = [...]int{
1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
- 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 2284, 2284,
- 773, 777, 781, 779, 1612, 804, 810, 812, 813, 0,
- 0, 823, 826, 845, 49, 1908, 831, 49, 833, 834,
- 835, 836, 837, 863, 864, 869, 0, 0, 0, 0,
- 875, 876, 877, 0, 0, 880, 881, 882, 0, 0,
- 0, 0, 0, 1014, 0, 0, 1140, 1141, 1142, 1143,
- 1144, 1145, 1146, 1147, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1039, 1040, 0, 0, 0, 1064, 1065, 1066,
- 1067, 1070, 0, 1081, 0, 1083, 1481, -2, 0, 0,
- 0, 1075, 1076, 0, 0, 0, 1632, 1632, 0, 0,
- 0, 1473, 0, 0, 1166, 0, 1167, 1169, 1170, 1171,
- 0, 1172, 1173, 898, 898, 898, 898, 898, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 898, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 141,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0,
- 1632, 1632, 0, 0, 220, 221, 222, 223, 224, 225,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 296, 240, 241, 242, 243, 244,
- 299, 245, 246, 247, 1151, 0, 0, 0, 46, 853,
- 854, 0, 975, 1632, 0, 0, 904, 0, 1647, 57,
- 66, 68, 1510, 61, 1510, 0, 908, 0, 0, -2,
- -2, 909, 910, 914, 915, 916, 917, 918, 919, 920,
- 921, 922, 54, 2282, 55, 0, 74, 0, 48, 0,
- 0, 1551, 0, 1554, 0, 0, 0, 374, 1558, 0,
- 0, 1503, 1504, 1507, 0, 926, 2004, 930, 0, 932,
- 933, 0, 0, 100, 0, 991, 0, 0, 0, 111,
- 0, 113, 114, 0, 0, 0, 385, 1615, 1616, 1617,
- -2, 408, 0, 385, 369, 307, 308, 309, 360, 311,
- 360, 360, 360, 360, 374, 374, 374, 374, 342, 343,
- 344, 345, 346, 0, 360, 0, 328, 360, 360, 360,
- 360, 350, 351, 352, 353, 354, 355, 356, 357, 312,
- 313, 314, 315, 316, 317, 318, 319, 320, 362, 362,
- 362, 362, 362, 366, 366, 0, 1109, 0, 389, 0,
- 1507, 0, 0, 1541, 1624, 1634, 0, 0, 0, 0,
- 0, 132, 0, 0, 0, 576, 619, 527, 564, 577,
- 0, 530, 531, -2, 0, 0, 512, 0, 514, 0,
- 409, 0, -2, 0, 419, 0, 415, 419, 416, 419,
- 407, 420, 554, 555, 556, 0, 558, 559, 649, 961,
- 0, 0, 0, 0, 0, 655, 656, 657, 0, 659,
- 660, 661, 662, 663, 664, 665, 666, 667, 668, 565,
- 566, 567, 568, 569, 570, 571, 572, 0, 0, 0,
- 0, 514, 0, 561, 0, 0, 465, 466, 467, 0,
- 0, 470, 471, 472, 473, 0, 0, 476, 477, 478,
- 978, 979, 479, 480, 505, 506, 507, 481, 482, 483,
- 484, 485, 486, 487, 499, 500, 501, 502, 503, 504,
- 488, 489, 490, 491, 492, 493, 496, 0, 147, 1532,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1622, 0, 0,
- 0, 0, 907, 993, 1645, 1646, 722, 0, 0, 793,
- 794, 0, 413, 414, 792, 792, 732, 774, 0, 792,
- 736, 775, 737, 739, 738, 740, 753, 754, 792, 743,
- 790, 791, 744, 745, 746, 747, 748, 749, 750, 770,
- 755, 756, 757, 796, 0, 800, 801, 771, 772, 0,
- 782, 0, 0, 0, 816, 817, 0, 824, 848, 846,
- 847, 849, 841, 842, 843, 844, 0, 850, 0, 0,
- 866, 96, 871, 872, 873, 874, 886, 879, 1153, 1011,
- 1012, 1013, 0, 1015, 1021, 0, 1136, 1138, 1019, 1020,
- 1023, 0, 0, 0, 1017, 1028, 1148, 1149, 1150, 0,
- 0, 0, 0, 0, 1032, 1036, 1041, 1042, 1043, 1044,
- 1045, 0, 1046, 0, 1049, 1050, 1051, 1052, 1053, 1054,
- 1060, 1449, 1450, 1451, 1079, 300, 301, 0, 1080, 0,
- 0, 0, 0, 0, 0, 0, 0, 1396, 1397, 1398,
+ 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 2286,
+ 2286, 774, 778, 782, 780, 1613, 805, 811, 813, 814,
+ 0, 0, 824, 827, 846, 49, 1910, 832, 49, 834,
+ 835, 836, 837, 838, 864, 865, 870, 0, 0, 0,
+ 0, 876, 877, 878, 0, 0, 881, 882, 883, 0,
+ 0, 0, 0, 0, 1015, 0, 0, 1141, 1142, 1143,
+ 1144, 1145, 1146, 1147, 1148, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1040, 1041, 0, 0, 0, 1065, 1066,
+ 1067, 1068, 1071, 0, 1082, 0, 1084, 1482, -2, 0,
+ 0, 0, 1076, 1077, 0, 0, 0, 1633, 1633, 0,
+ 0, 0, 1474, 0, 0, 1167, 0, 1168, 1170, 1171,
+ 1172, 0, 1173, 1174, 899, 899, 899, 899, 899, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 899,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1633, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0,
+ 0, 1633, 1633, 0, 0, 220, 221, 222, 223, 224,
+ 225, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 296, 240, 241, 242, 243,
+ 244, 299, 245, 246, 247, 1152, 0, 0, 0, 46,
+ 854, 855, 0, 976, 1633, 0, 0, 905, 0, 1648,
+ 57, 66, 68, 1511, 61, 1511, 0, 909, 0, 0,
+ -2, -2, 910, 911, 915, 916, 917, 918, 919, 920,
+ 921, 922, 923, 54, 2284, 55, 0, 74, 0, 48,
+ 0, 0, 1552, 0, 1555, 0, 0, 0, 374, 1559,
+ 0, 0, 1504, 1505, 1508, 0, 927, 2006, 931, 0,
+ 933, 934, 0, 0, 100, 0, 992, 0, 0, 0,
+ 111, 0, 113, 114, 0, 0, 0, 385, 1616, 1617,
+ 1618, -2, 408, 0, 385, 369, 307, 308, 309, 360,
+ 311, 360, 360, 360, 360, 374, 374, 374, 374, 342,
+ 343, 344, 345, 346, 0, 360, 0, 328, 360, 360,
+ 360, 360, 350, 351, 352, 353, 354, 355, 356, 357,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 362,
+ 362, 362, 362, 362, 366, 366, 0, 1110, 0, 389,
+ 0, 1508, 0, 0, 1542, 1625, 1635, 0, 0, 0,
+ 0, 0, 132, 0, 0, 0, 576, 620, 527, 564,
+ 577, 0, 530, 531, -2, 0, 0, 512, 0, 514,
+ 0, 409, 0, -2, 0, 419, 0, 415, 419, 416,
+ 419, 407, 420, 554, 555, 556, 0, 558, 559, 650,
+ 962, 0, 0, 0, 0, 0, 656, 657, 658, 0,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 565, 566, 567, 568, 569, 570, 571, 572, 0, 0,
+ 0, 0, 514, 0, 561, 0, 0, 465, 466, 467,
+ 0, 0, 470, 471, 472, 473, 0, 0, 476, 477,
+ 478, 979, 980, 479, 480, 505, 506, 507, 481, 482,
+ 483, 484, 485, 486, 487, 499, 500, 501, 502, 503,
+ 504, 488, 489, 490, 491, 492, 493, 496, 0, 147,
+ 1533, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1623, 0,
+ 0, 0, 0, 908, 994, 1646, 1647, 723, 0, 0,
+ 794, 795, 0, 413, 414, 793, 793, 733, 775, 0,
+ 793, 737, 776, 738, 740, 739, 741, 754, 755, 793,
+ 744, 791, 792, 745, 746, 747, 748, 749, 750, 751,
+ 771, 756, 757, 758, 797, 0, 801, 802, 772, 773,
+ 0, 783, 0, 0, 0, 817, 818, 0, 825, 849,
+ 847, 848, 850, 842, 843, 844, 845, 0, 851, 0,
+ 0, 867, 96, 872, 873, 874, 875, 887, 880, 1154,
+ 1012, 1013, 1014, 0, 1016, 1022, 0, 1137, 1139, 1020,
+ 1021, 1024, 0, 0, 0, 1018, 1029, 1149, 1150, 1151,
+ 0, 0, 0, 0, 0, 1033, 1037, 1042, 1043, 1044,
+ 1045, 1046, 0, 1047, 0, 1050, 1051, 1052, 1053, 1054,
+ 1055, 1061, 1450, 1451, 1452, 1080, 300, 301, 0, 1081,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1397, 1398,
1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
- 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1152, 0, 1633,
- 0, 0, 0, 1479, 1476, 0, 0, 0, 1435, 1437,
- 0, 0, 0, 899, 900, 0, 0, 0, 0, 0,
+ 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1153, 0,
+ 1634, 0, 0, 0, 1480, 1477, 0, 0, 0, 1436,
+ 1438, 0, 0, 0, 900, 901, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
+ 0, 0, 0, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433,
- 0, 0, 1452, 0, 0, 0, 0, 0, 0, 0,
- 1472, 0, 1085, 1086, 1087, 0, 0, 0, 0, 0,
- 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 142, 143, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1360, 1361, 1362,
- 1363, 41, 0, 0, 0, 0, 0, 0, 0, 1483,
- 0, -2, -2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1385, 0, 0, 0,
- 0, 0, 0, 1605, 0, 0, 856, 857, 859, 0,
- 995, 0, 976, 0, 0, 862, 0, 903, 0, 906,
- 60, 62, 912, 913, 0, 934, 923, 911, 56, 51,
- 0, 0, 953, 1552, 1555, 1556, 374, 1578, 0, 383,
- 383, 380, 1513, 1514, 0, 1506, 1508, 1509, 79, 931,
- 927, 0, 1009, 0, 0, 990, 0, 937, 939, 940,
- 941, 973, 0, 944, 945, 0, 0, 0, 0, 0,
- 98, 992, 104, 0, 112, 0, 0, 117, 118, 105,
- 106, 107, 108, 0, 608, -2, 460, 179, 181, 182,
- 183, 174, -2, 372, 370, 371, 310, 374, 374, 336,
- 337, 338, 339, 340, 341, 0, 348, 0, 329, 330,
- 331, 332, 321, 0, 322, 323, 324, 364, 0, 325,
- 326, 0, 327, 427, 0, 1515, 390, 391, 393, 401,
- 0, 396, 397, 0, 401, 401, 0, 422, 423, 0,
- 1507, 1532, 0, 0, 1635, 1634, 1634, 1634, 152, 0,
- 167, 168, 169, 170, 171, 172, 644, 0, 0, 620,
- 642, 643, 165, 0, 0, 175, 516, 515, 0, 676,
- 0, 425, 0, 0, 419, 419, 404, 405, 557, 0,
- 0, 651, 652, 653, 654, 0, 0, 0, 543, 454,
- 0, 544, 545, 514, 516, 0, 0, 385, 468, 469,
- 474, 475, 494, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 592, 593, 595, 598, 600,
- 518, 604, 606, 594, 597, 599, 601, 518, 605, 607,
- 1529, 1530, 1531, 0, 0, 714, 0, 0, 451, 94,
- 1623, 719, 723, 724, 789, 742, 776, 789, 734, 741,
- 764, 778, 780, 814, 815, 820, 828, 829, 830, 870,
- 0, 0, 0, 0, 878, 0, 0, 1022, 1137, 1139,
- 1024, 1025, 1026, 1029, 0, 1033, 1037, 0, 0, 0,
- 0, 0, 1084, 1082, 1483, 0, 0, 0, 1133, 0,
- 0, 1156, 1157, 0, 0, 0, 0, 1477, 0, 0,
- 1164, 0, 1438, 1114, 0, 0, 0, 0, 0, 1114,
- 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1501,
- 1191, 0, 0, 0, 0, 0, 1196, 1197, 1198, 1114,
- 0, 1201, 1202, 0, 1204, 0, 1205, 0, 0, 0,
- 0, 1212, 1213, 1215, 0, 0, 1218, 1219, 0, 1221,
- 0, 1223, 1224, 1225, 1226, 1227, 1228, 0, 1230, 0,
- 1232, 1233, 1234, 0, 1236, 0, 1238, 1239, 0, 1241,
- 0, 1243, 0, 1246, 0, 1249, 0, 1252, 0, 1255,
- 0, 1258, 0, 1261, 0, 1264, 0, 1267, 0, 1270,
- 0, 1273, 0, 1276, 0, 1279, 0, 1282, 0, 1285,
- 0, 1288, 0, 1291, 1292, 1293, 0, 1295, 0, 1297,
- 0, 1300, 1301, 0, 1303, 0, 1306, 0, 1309, 0,
- 0, 1310, 0, 0, 0, 1314, 0, 0, 0, 0,
- 1323, 1324, 1325, 1326, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1337, 1338, 1339, 1340, 1341, 1342,
- 0, 1344, 0, 1115, 0, 0, 1115, 0, 0, 0,
- 0, 0, 1154, 1632, 0, 1439, 1440, 1441, 1442, 1443,
- 0, 0, 0, 0, 0, 0, 1383, 1384, 1386, 0,
- 0, 1389, 0, 1391, 0, 1606, 855, 858, 860, 947,
- 996, 997, 0, 0, 0, 0, 977, 1631, 901, 902,
- 905, 955, 0, 1487, 0, 0, 934, 1009, 0, 935,
- 0, 53, 950, 0, 1560, 1559, 1572, 1585, 383, 383,
- 377, 378, 384, 379, 381, 382, 1505, 0, 1510, 0,
- 1599, 0, 0, 1588, 0, 0, 0, 0, 0, 0,
- 0, 0, 980, 0, 0, 983, 0, 0, 0, 0,
- 974, 945, 0, 946, 0, -2, 0, 0, 92, 93,
- 0, 0, 0, 115, 116, 0, 0, 122, 386, 387,
- 156, 165, 462, 180, 435, 0, 0, 306, 373, 333,
- 334, 335, 0, 358, 0, 0, 0, 0, 456, 128,
- 1519, 1518, 401, 401, 392, 0, 395, 0, 0, 0,
- 1636, 361, 424, 0, 146, 0, 0, 0, 0, 1625,
- 614, 0, 0, 621, 0, 0, 0, 525, 0, 536,
- 537, 0, 648, -2, 710, 389, 0, 403, 406, 962,
- 0, 0, 538, 0, 541, 542, 455, 516, 547, 548,
- 562, 549, 497, 498, 495, 0, 0, 1542, 1543, 1548,
- 1546, 1547, 133, 583, 585, 589, 584, 588, 0, 0,
- 0, 520, 0, 520, 581, 0, 451, 1515, 0, 718,
- 452, 453, 792, 792, 865, 97, 0, 868, 0, 0,
- 0, 0, 1030, 1034, 1047, 1048, 1444, 1470, 360, 360,
- 1457, 360, 366, 1460, 360, 1462, 360, 1465, 360, 1468,
- 1469, 0, 0, 1077, 0, 0, 0, 0, 1163, 1480,
- 0, 0, 1174, 1113, 1114, 1114, 1114, 1114, 1114, 1180,
- 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1474,
- 0, 0, 0, 1195, 0, 0, 1199, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 144, 145, 0, 0,
- 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1108, 1112, 0, 1116,
- 1117, 0, 0, 1346, 0, 0, 1364, 0, 0, 0,
- 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 998, 1005, 0, 1005, 0,
- 1005, 0, 0, 0, 1618, 1619, 1488, 1489, 1009, 1490,
- 924, 936, 954, 1578, 0, 1571, 0, -2, 1580, 0,
- 0, 0, 1586, 375, 376, 928, 80, 1010, 83, 0,
- 1599, 1608, 0, 1596, 1601, 1603, 0, 0, 0, 1592,
- 0, 1009, 938, 969, 971, 0, 966, 981, 982, 984,
- 0, 986, 0, 988, 989, 949, 943, 0, 100, 0,
- 1009, 1009, 99, 0, 994, 119, 120, 121, 461, 184,
- 189, 0, 0, 0, 194, 0, 196, 0, 0, 0,
- 201, 202, 401, 401, 436, 0, 303, 305, 0, 0,
- 187, 374, 0, 374, 0, 365, 367, 0, 437, 457,
- 1516, 1517, 0, 0, 394, 398, 399, 400, 0, 148,
- 0, 0, 0, 617, 0, 645, 0, 0, 0, 0,
- 0, 0, 176, 517, 677, 678, 679, 680, 681, 682,
- 683, 684, 685, 0, 401, 0, 0, 0, 401, 401,
- 401, 0, 702, 388, 0, 0, 673, 670, 539, 0,
- 218, 219, 226, 227, 229, 0, 0, 0, 0, 0,
- 546, 949, 1533, 1534, 1535, 0, 1545, 1549, 136, 0,
- 0, 0, 0, 591, 596, 602, 0, 519, 603, 715,
- 716, 717, 95, 727, 733, 867, 887, 1018, 1031, 1035,
- 0, 0, 0, 0, 1471, 1455, 374, 1458, 1459, 1461,
- 1463, 1464, 1466, 1467, 1073, 1074, 1078, 0, 1160, 0,
- 1162, 0, 1478, 0, 1175, 1176, 1177, 1178, 1179, 1510,
- 0, 0, 0, 1194, 0, 0, 1114, 0, 1207, 1206,
- 1208, 0, 1210, 1211, 1216, 1217, 1220, 1222, 1229, 1231,
- 1235, 1237, 1240, 1242, 1244, 0, 1247, 0, 1250, 0,
- 1253, 0, 1256, 0, 1259, 0, 1262, 0, 1265, 0,
- 1268, 0, 1271, 0, 1274, 0, 1277, 0, 1280, 0,
- 1283, 0, 1286, 0, 1289, 0, 1294, 1296, 0, 1299,
- 1302, 1304, 0, 1307, 0, 1311, 0, 1313, 1315, 1316,
- 0, 0, 0, 1327, 1328, 1329, 1330, 1331, 1332, 1333,
- 1334, 1335, 1336, 1343, 0, 1106, 1345, 1118, 1119, 1124,
- 1348, 0, 0, 0, 1351, 0, 0, 0, 1355, 1155,
- 1366, 0, 1371, 0, 0, 1377, 0, 1381, 0, 1387,
- 1388, 1390, 1392, 0, 0, 0, 0, 0, 0, 0,
- 975, 956, 64, 1490, 1494, 0, 1565, 1563, 1563, 1573,
- 1574, 0, 0, 1581, 0, 0, 0, 0, 84, 0,
- 0, 1587, 0, 0, 1604, 0, 0, 0, 0, 101,
- 1501, 963, 970, 0, 0, 964, 0, 965, 985, 987,
- 942, 0, 1009, 1009, 90, 91, 0, 190, 0, 192,
- 0, 195, 197, 198, 199, 205, 206, 207, 200, 0,
- 0, 302, 304, 0, 0, 347, 359, 349, 0, 0,
- 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 949, 149,
- 150, 151, 609, 0, 619, 0, 951, 0, 612, 0,
- 528, 0, 0, 0, 401, 401, 401, 0, 0, 0,
- 0, 687, 0, 0, 650, 0, 658, 0, 0, 0,
- 230, 231, 0, 1544, 582, 0, 134, 135, 0, 0,
- 587, 521, 522, 1071, 0, 0, 0, 1072, 1456, 0,
- 0, 0, 0, 0, 1475, 0, 0, 0, 0, 1200,
- 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1319, 0, 0, 0, 639, 640, 0,
- 1395, 1111, 1501, 0, 1115, 1125, 1126, 0, 1115, 1365,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1006, 0, 0, 0, 957, 958, 0, 0, 0,
- 995, 1494, 1499, 0, 0, 1568, 0, 1561, 1564, 1562,
- 1575, 0, 0, 1582, 0, 1584, 0, 1609, 1610, 1602,
- 1597, 0, 1591, 1594, 1596, 1593, 1510, 967, 0, 972,
- 0, 1501, 89, 0, 193, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 203, 204, 0, 0,
- 363, 368, 0, 0, 0, 610, 0, 952, 622, 613,
- 0, 700, 0, 704, 0, 0, 0, 707, 708, 709,
- 686, 0, 690, 429, 674, 671, 672, 540, 0, 137,
- 138, 0, 0, 0, 1445, 0, 1448, 1158, 1161, 1159,
- 0, 1190, 1192, 1193, 1453, 1454, 1209, 1245, 1248, 1251,
- 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278, 1281,
- 1284, 1287, 1290, 1298, 1305, 1308, 1312, 1317, 0, 1320,
- 0, 0, 1321, 0, 641, 1102, 0, 0, 1122, 1123,
- 0, 1350, 1352, 1353, 1354, 1367, 0, 1372, 1373, 0,
- 1378, 0, 1382, 1393, 0, 1000, 1007, 1008, 0, 1003,
- 0, 1004, 0, 948, 1499, 82, 1500, 1497, 0, 1495,
- 1492, 1557, 0, 1566, 1567, 1576, 1577, 1583, 0, 0,
- 1596, 0, 1590, 87, 0, 0, 0, 1510, 191, 0,
- 210, 0, 618, 0, 621, 611, 698, 699, 0, 711,
- 703, 705, 706, 688, -2, 1536, 0, 0, 0, 590,
- 1446, 0, 0, 1322, 0, 637, 638, 1110, 1103, 0,
- 1088, 1089, 1107, 1347, 1349, 0, 0, 0, 999, 959,
- 960, 1001, 1002, 81, 0, 1496, 1130, 0, 1491, 0,
- 1569, 1570, 1600, 0, 1589, 1595, 968, 975, 0, 88,
- 442, 435, 1536, 0, 0, 0, 691, 692, 693, 694,
- 695, 696, 697, 579, 1538, 139, 140, 0, 509, 510,
- 511, 133, 0, 1165, 1318, 1104, 0, 0, 0, 0,
- 0, 1368, 0, 1374, 0, 1379, 0, 1498, 0, 0,
- 1493, 1598, 623, 0, 625, 0, -2, 430, 443, 0,
- 185, 211, 212, 0, 0, 215, 216, 217, 208, 209,
- 129, 0, 0, 712, 0, 1539, 1540, 0, 136, 0,
- 0, 1095, 1096, 1097, 1098, 1100, 0, 0, 0, 0,
- 1131, 1108, 624, 0, 0, 385, 0, 634, 431, 432,
- 0, 438, 439, 440, 441, 213, 214, 646, 0, 0,
- 508, 586, 1447, 0, 0, 1369, 0, 1375, 0, 1380,
- 0, 626, 627, 635, 0, 433, 0, 434, 0, 0,
- 0, 615, 0, 646, 1537, 1105, 1099, 1101, 0, 0,
- 1129, 0, 636, 632, 444, 446, 447, 0, 0, 445,
- 647, 616, 1370, 1376, 0, 448, 449, 450, 628, 629,
- 630, 631,
+ 1434, 0, 0, 1453, 0, 0, 0, 0, 0, 0,
+ 0, 1473, 0, 1086, 1087, 1088, 0, 0, 0, 0,
+ 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 142, 143, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1361, 1362,
+ 1363, 1364, 41, 0, 0, 0, 0, 0, 0, 0,
+ 1484, 0, -2, -2, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0,
+ 0, 0, 0, 0, 1606, 0, 0, 857, 858, 860,
+ 0, 996, 0, 977, 0, 0, 863, 0, 904, 0,
+ 907, 60, 62, 913, 914, 0, 935, 924, 912, 56,
+ 51, 0, 0, 954, 1553, 1556, 1557, 374, 1579, 0,
+ 383, 383, 380, 1514, 1515, 0, 1507, 1509, 1510, 79,
+ 932, 928, 0, 1010, 0, 0, 991, 0, 938, 940,
+ 941, 942, 974, 0, 945, 946, 0, 0, 0, 0,
+ 0, 98, 993, 104, 0, 112, 0, 0, 117, 118,
+ 105, 106, 107, 108, 0, 609, -2, 460, 179, 181,
+ 182, 183, 174, -2, 372, 370, 371, 310, 374, 374,
+ 336, 337, 338, 339, 340, 341, 0, 348, 0, 329,
+ 330, 331, 332, 321, 0, 322, 323, 324, 364, 0,
+ 325, 326, 0, 327, 427, 0, 1516, 390, 391, 393,
+ 401, 0, 396, 397, 0, 401, 401, 0, 422, 423,
+ 0, 1508, 1533, 0, 0, 1636, 1635, 1635, 1635, 152,
+ 0, 167, 168, 169, 170, 171, 172, 645, 0, 0,
+ 621, 643, 644, 165, 0, 0, 175, 516, 515, 0,
+ 677, 0, 425, 0, 0, 419, 419, 404, 405, 557,
+ 0, 0, 652, 653, 654, 655, 0, 0, 0, 543,
+ 454, 0, 544, 545, 514, 516, 0, 0, 385, 468,
+ 469, 474, 475, 494, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 592, 593, 595, 598,
+ 600, 518, 604, 606, 0, 594, 597, 599, 601, 518,
+ 605, 607, 1530, 1531, 1532, 0, 0, 715, 0, 0,
+ 451, 94, 1624, 720, 724, 725, 790, 743, 777, 790,
+ 735, 742, 765, 779, 781, 815, 816, 821, 829, 830,
+ 831, 871, 0, 0, 0, 0, 879, 0, 0, 1023,
+ 1138, 1140, 1025, 1026, 1027, 1030, 0, 1034, 1038, 0,
+ 0, 0, 0, 0, 1085, 1083, 1484, 0, 0, 0,
+ 1134, 0, 0, 1157, 1158, 0, 0, 0, 0, 1478,
+ 0, 0, 1165, 0, 1439, 1115, 0, 0, 0, 0,
+ 0, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+ 1115, 1502, 1192, 0, 0, 0, 0, 0, 1197, 1198,
+ 1199, 1115, 0, 1202, 1203, 0, 1205, 0, 1206, 0,
+ 0, 0, 0, 1213, 1214, 1216, 0, 0, 1219, 1220,
+ 0, 1222, 0, 1224, 1225, 1226, 1227, 1228, 1229, 0,
+ 1231, 0, 1233, 1234, 1235, 0, 1237, 0, 1239, 1240,
+ 0, 1242, 0, 1244, 0, 1247, 0, 1250, 0, 1253,
+ 0, 1256, 0, 1259, 0, 1262, 0, 1265, 0, 1268,
+ 0, 1271, 0, 1274, 0, 1277, 0, 1280, 0, 1283,
+ 0, 1286, 0, 1289, 0, 1292, 1293, 1294, 0, 1296,
+ 0, 1298, 0, 1301, 1302, 0, 1304, 0, 1307, 0,
+ 1310, 0, 0, 1311, 0, 0, 0, 1315, 0, 0,
+ 0, 0, 1324, 1325, 1326, 1327, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1338, 1339, 1340, 1341,
+ 1342, 1343, 0, 1345, 0, 1116, 0, 0, 1116, 0,
+ 0, 0, 0, 0, 1155, 1633, 0, 1440, 1441, 1442,
+ 1443, 1444, 0, 0, 0, 0, 0, 0, 1384, 1385,
+ 1387, 0, 0, 1390, 0, 1392, 0, 1607, 856, 859,
+ 861, 948, 997, 998, 0, 0, 0, 0, 978, 1632,
+ 902, 903, 906, 956, 0, 1488, 0, 0, 935, 1010,
+ 0, 936, 0, 53, 951, 0, 1561, 1560, 1573, 1586,
+ 383, 383, 377, 378, 384, 379, 381, 382, 1506, 0,
+ 1511, 0, 1600, 0, 0, 1589, 0, 0, 0, 0,
+ 0, 0, 0, 0, 981, 0, 0, 984, 0, 0,
+ 0, 0, 975, 946, 0, 947, 0, -2, 0, 0,
+ 92, 93, 0, 0, 0, 115, 116, 0, 0, 122,
+ 386, 387, 156, 165, 462, 180, 435, 0, 0, 306,
+ 373, 333, 334, 335, 0, 358, 0, 0, 0, 0,
+ 456, 128, 1520, 1519, 401, 401, 392, 0, 395, 0,
+ 0, 0, 1637, 361, 424, 0, 146, 0, 0, 0,
+ 0, 1626, 615, 0, 0, 622, 0, 0, 0, 525,
+ 0, 536, 537, 0, 649, -2, 711, 389, 0, 403,
+ 406, 963, 0, 0, 538, 0, 541, 542, 455, 516,
+ 547, 548, 562, 549, 497, 498, 495, 0, 0, 1543,
+ 1544, 1549, 1547, 1548, 133, 583, 585, 589, 584, 588,
+ 0, 0, 0, 520, 0, 608, 520, 581, 0, 451,
+ 1516, 0, 719, 452, 453, 793, 793, 866, 97, 0,
+ 869, 0, 0, 0, 0, 1031, 1035, 1048, 1049, 1445,
+ 1471, 360, 360, 1458, 360, 366, 1461, 360, 1463, 360,
+ 1466, 360, 1469, 1470, 0, 0, 1078, 0, 0, 0,
+ 0, 1164, 1481, 0, 0, 1175, 1114, 1115, 1115, 1115,
+ 1115, 1115, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188,
+ 1189, 1190, 1475, 0, 0, 0, 1196, 0, 0, 1200,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 144,
+ 145, 0, 0, 0, 0, 0, 0, 1395, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1109,
+ 1113, 0, 1117, 1118, 0, 0, 1347, 0, 0, 1365,
+ 0, 0, 0, 0, 0, 0, 0, 1485, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 999, 1006,
+ 0, 1006, 0, 1006, 0, 0, 0, 1619, 1620, 1489,
+ 1490, 1010, 1491, 925, 937, 955, 1579, 0, 1572, 0,
+ -2, 1581, 0, 0, 0, 1587, 375, 376, 929, 80,
+ 1011, 83, 0, 1600, 1609, 0, 1597, 1602, 1604, 0,
+ 0, 0, 1593, 0, 1010, 939, 970, 972, 0, 967,
+ 982, 983, 985, 0, 987, 0, 989, 990, 950, 944,
+ 0, 100, 0, 1010, 1010, 99, 0, 995, 119, 120,
+ 121, 461, 184, 189, 0, 0, 0, 194, 0, 196,
+ 0, 0, 0, 201, 202, 401, 401, 436, 0, 303,
+ 305, 0, 0, 187, 374, 0, 374, 0, 365, 367,
+ 0, 437, 457, 1517, 1518, 0, 0, 394, 398, 399,
+ 400, 0, 148, 0, 0, 0, 618, 0, 646, 0,
+ 0, 0, 0, 0, 0, 176, 517, 678, 679, 680,
+ 681, 682, 683, 684, 685, 686, 0, 401, 0, 0,
+ 0, 401, 401, 401, 0, 703, 388, 0, 0, 674,
+ 671, 539, 0, 218, 219, 226, 227, 229, 0, 0,
+ 0, 0, 0, 546, 950, 1534, 1535, 1536, 0, 1546,
+ 1550, 136, 0, 0, 0, 0, 591, 596, 602, 0,
+ 519, 603, 716, 717, 718, 95, 728, 734, 868, 888,
+ 1019, 1032, 1036, 0, 0, 0, 0, 1472, 1456, 374,
+ 1459, 1460, 1462, 1464, 1465, 1467, 1468, 1074, 1075, 1079,
+ 0, 1161, 0, 1163, 0, 1479, 0, 1176, 1177, 1178,
+ 1179, 1180, 1511, 0, 0, 0, 1195, 0, 0, 1115,
+ 0, 1208, 1207, 1209, 0, 1211, 1212, 1217, 1218, 1221,
+ 1223, 1230, 1232, 1236, 1238, 1241, 1243, 1245, 0, 1248,
+ 0, 1251, 0, 1254, 0, 1257, 0, 1260, 0, 1263,
+ 0, 1266, 0, 1269, 0, 1272, 0, 1275, 0, 1278,
+ 0, 1281, 0, 1284, 0, 1287, 0, 1290, 0, 1295,
+ 1297, 0, 1300, 1303, 1305, 0, 1308, 0, 1312, 0,
+ 1314, 1316, 1317, 0, 0, 0, 1328, 1329, 1330, 1331,
+ 1332, 1333, 1334, 1335, 1336, 1337, 1344, 0, 1107, 1346,
+ 1119, 1120, 1125, 1349, 0, 0, 0, 1352, 0, 0,
+ 0, 1356, 1156, 1367, 0, 1372, 0, 0, 1378, 0,
+ 1382, 0, 1388, 1389, 1391, 1393, 0, 0, 0, 0,
+ 0, 0, 0, 976, 957, 64, 1491, 1495, 0, 1566,
+ 1564, 1564, 1574, 1575, 0, 0, 1582, 0, 0, 0,
+ 0, 84, 0, 0, 1588, 0, 0, 1605, 0, 0,
+ 0, 0, 101, 1502, 964, 971, 0, 0, 965, 0,
+ 966, 986, 988, 943, 0, 1010, 1010, 90, 91, 0,
+ 190, 0, 192, 0, 195, 197, 198, 199, 205, 206,
+ 207, 200, 0, 0, 302, 304, 0, 0, 347, 359,
+ 349, 0, 0, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
+ 1528, 950, 149, 150, 151, 610, 0, 620, 0, 952,
+ 0, 613, 0, 528, 0, 0, 0, 401, 401, 401,
+ 0, 0, 0, 0, 688, 0, 0, 651, 0, 659,
+ 0, 0, 0, 230, 231, 0, 1545, 582, 0, 134,
+ 135, 0, 0, 587, 521, 522, 1072, 0, 0, 0,
+ 1073, 1457, 0, 0, 0, 0, 0, 1476, 0, 0,
+ 0, 0, 1201, 1204, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1320, 0, 0, 0,
+ 640, 641, 0, 1396, 1112, 1502, 0, 1116, 1126, 1127,
+ 0, 1116, 1366, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1007, 0, 0, 0, 958, 959,
+ 0, 0, 0, 996, 1495, 1500, 0, 0, 1569, 0,
+ 1562, 1565, 1563, 1576, 0, 0, 1583, 0, 1585, 0,
+ 1610, 1611, 1603, 1598, 0, 1592, 1595, 1597, 1594, 1511,
+ 968, 0, 973, 0, 1502, 89, 0, 193, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 203,
+ 204, 0, 0, 363, 368, 0, 0, 0, 611, 0,
+ 953, 623, 614, 0, 701, 0, 705, 0, 0, 0,
+ 708, 709, 710, 687, 0, 691, 429, 675, 672, 673,
+ 540, 0, 137, 138, 0, 0, 0, 1446, 0, 1449,
+ 1159, 1162, 1160, 0, 1191, 1193, 1194, 1454, 1455, 1210,
+ 1246, 1249, 1252, 1255, 1258, 1261, 1264, 1267, 1270, 1273,
+ 1276, 1279, 1282, 1285, 1288, 1291, 1299, 1306, 1309, 1313,
+ 1318, 0, 1321, 0, 0, 1322, 0, 642, 1103, 0,
+ 0, 1123, 1124, 0, 1351, 1353, 1354, 1355, 1368, 0,
+ 1373, 1374, 0, 1379, 0, 1383, 1394, 0, 1001, 1008,
+ 1009, 0, 1004, 0, 1005, 0, 949, 1500, 82, 1501,
+ 1498, 0, 1496, 1493, 1558, 0, 1567, 1568, 1577, 1578,
+ 1584, 0, 0, 1597, 0, 1591, 87, 0, 0, 0,
+ 1511, 191, 0, 210, 0, 619, 0, 622, 612, 699,
+ 700, 0, 712, 704, 706, 707, 689, -2, 1537, 0,
+ 0, 0, 590, 1447, 0, 0, 1323, 0, 638, 639,
+ 1111, 1104, 0, 1089, 1090, 1108, 1348, 1350, 0, 0,
+ 0, 1000, 960, 961, 1002, 1003, 81, 0, 1497, 1131,
+ 0, 1492, 0, 1570, 1571, 1601, 0, 1590, 1596, 969,
+ 976, 0, 88, 442, 435, 1537, 0, 0, 0, 692,
+ 693, 694, 695, 696, 697, 698, 579, 1539, 139, 140,
+ 0, 509, 510, 511, 133, 0, 1166, 1319, 1105, 0,
+ 0, 0, 0, 0, 1369, 0, 1375, 0, 1380, 0,
+ 1499, 0, 0, 1494, 1599, 624, 0, 626, 0, -2,
+ 430, 443, 0, 185, 211, 212, 0, 0, 215, 216,
+ 217, 208, 209, 129, 0, 0, 713, 0, 1540, 1541,
+ 0, 136, 0, 0, 1096, 1097, 1098, 1099, 1101, 0,
+ 0, 0, 0, 1132, 1109, 625, 0, 0, 385, 0,
+ 635, 431, 432, 0, 438, 439, 440, 441, 213, 214,
+ 647, 0, 0, 508, 586, 1448, 0, 0, 1370, 0,
+ 1376, 0, 1381, 0, 627, 628, 636, 0, 433, 0,
+ 434, 0, 0, 0, 616, 0, 647, 1538, 1106, 1100,
+ 1102, 0, 0, 1130, 0, 637, 633, 444, 446, 447,
+ 0, 0, 445, 648, 617, 1371, 1377, 0, 448, 449,
+ 450, 629, 630, 631, 632,
}
var yyTok1 = [...]int{
@@ -9859,7 +9901,7 @@ var yyTok1 = [...]int{
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 158, 3, 3, 3, 186, 178, 3,
95, 97, 183, 181, 96, 182, 236, 184, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 751,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 752,
166, 165, 167, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
@@ -9994,7 +10036,7 @@ var yyTok3 = [...]int{
58060, 735, 58061, 736, 58062, 737, 58063, 738, 58064, 739,
58065, 740, 58066, 741, 58067, 742, 58068, 743, 58069, 744,
58070, 745, 58071, 746, 58072, 747, 58073, 748, 58074, 749,
- 58075, 750, 0,
+ 58075, 750, 58076, 751, 0,
}
var yyErrorMessages = [...]struct {
@@ -14615,17 +14657,29 @@ yydefault:
}
yyVAL.union = yyLOCAL
case 608:
+ yyDollar = yyS[yypt-6 : yypt+1]
+ var yyLOCAL Statement
+//line sql.y:3411
+ {
+ yyLOCAL = &AlterMigration{
+ Type: SetCutOverThresholdMigrationType,
+ UUID: string(yyDollar[4].str),
+ Threshold: yyDollar[6].str,
+ }
+ }
+ yyVAL.union = yyLOCAL
+ case 609:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3412
+//line sql.y:3420
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 609:
+ case 610:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3416
+//line sql.y:3424
{
yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion()
yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion()
@@ -14633,10 +14687,10 @@ yydefault:
yyLOCAL = yyDollar[3].partitionOptionUnion()
}
yyVAL.union = yyLOCAL
- case 610:
+ case 611:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3425
+//line sql.y:3433
{
yyLOCAL = &PartitionOption{
IsLinear: yyDollar[1].booleanUnion(),
@@ -14645,10 +14699,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 611:
+ case 612:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3433
+//line sql.y:3441
{
yyLOCAL = &PartitionOption{
IsLinear: yyDollar[1].booleanUnion(),
@@ -14658,10 +14712,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 612:
+ case 613:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3442
+//line sql.y:3450
{
yyLOCAL = &PartitionOption{
Type: yyDollar[1].partitionByTypeUnion(),
@@ -14669,10 +14723,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 613:
+ case 614:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionOption
-//line sql.y:3449
+//line sql.y:3457
{
yyLOCAL = &PartitionOption{
Type: yyDollar[1].partitionByTypeUnion(),
@@ -14680,18 +14734,18 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 614:
+ case 615:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3457
+//line sql.y:3465
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 615:
+ case 616:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3461
+//line sql.y:3469
{
yyLOCAL = &SubPartition{
IsLinear: yyDollar[3].booleanUnion(),
@@ -14701,10 +14755,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 616:
+ case 617:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL *SubPartition
-//line sql.y:3470
+//line sql.y:3478
{
yyLOCAL = &SubPartition{
IsLinear: yyDollar[3].booleanUnion(),
@@ -14715,678 +14769,678 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 617:
+ case 618:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3481
+//line sql.y:3489
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 618:
+ case 619:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3485
+//line sql.y:3493
{
yyLOCAL = yyDollar[2].partDefsUnion()
}
yyVAL.union = yyLOCAL
- case 619:
+ case 620:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3490
+//line sql.y:3498
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 620:
+ case 621:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3494
+//line sql.y:3502
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 621:
+ case 622:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3499
+//line sql.y:3507
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 622:
+ case 623:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3503
+//line sql.y:3511
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 623:
+ case 624:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:3509
+//line sql.y:3517
{
yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].identifierCS}
}
yyVAL.union = yyLOCAL
- case 624:
+ case 625:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL []*JtColumnDefinition
-//line sql.y:3515
+//line sql.y:3523
{
yyLOCAL = yyDollar[3].jtColumnListUnion()
}
yyVAL.union = yyLOCAL
- case 625:
+ case 626:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*JtColumnDefinition
-//line sql.y:3521
+//line sql.y:3529
{
yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 626:
+ case 627:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3525
+//line sql.y:3533
{
yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion())
}
- case 627:
+ case 628:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3531
+//line sql.y:3539
{
yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].identifierCI}}
}
yyVAL.union = yyLOCAL
- case 628:
+ case 629:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3535
+//line sql.y:3543
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 629:
+ case 630:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3541
+//line sql.y:3549
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 630:
+ case 631:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3547
+//line sql.y:3555
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 631:
+ case 632:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3553
+//line sql.y:3561
{
yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str}
jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
yyLOCAL = &JtColumnDefinition{JtPath: jtPath}
}
yyVAL.union = yyLOCAL
- case 632:
+ case 633:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *JtColumnDefinition
-//line sql.y:3559
+//line sql.y:3567
{
jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()}
yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath}
}
yyVAL.union = yyLOCAL
- case 633:
+ case 634:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3565
+//line sql.y:3573
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 634:
+ case 635:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3569
+//line sql.y:3577
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 635:
+ case 636:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3573
+//line sql.y:3581
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 636:
+ case 637:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3577
+//line sql.y:3585
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 637:
+ case 638:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3583
+//line sql.y:3591
{
yyLOCAL = yyDollar[1].jtOnResponseUnion()
}
yyVAL.union = yyLOCAL
- case 638:
+ case 639:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3589
+//line sql.y:3597
{
yyLOCAL = yyDollar[1].jtOnResponseUnion()
}
yyVAL.union = yyLOCAL
- case 639:
+ case 640:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3595
+//line sql.y:3603
{
yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType}
}
yyVAL.union = yyLOCAL
- case 640:
+ case 641:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3599
+//line sql.y:3607
{
yyLOCAL = &JtOnResponse{ResponseType: NullJSONType}
}
yyVAL.union = yyLOCAL
- case 641:
+ case 642:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *JtOnResponse
-//line sql.y:3603
+//line sql.y:3611
{
yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 642:
+ case 643:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL PartitionByType
-//line sql.y:3609
+//line sql.y:3617
{
yyLOCAL = RangeType
}
yyVAL.union = yyLOCAL
- case 643:
+ case 644:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL PartitionByType
-//line sql.y:3613
+//line sql.y:3621
{
yyLOCAL = ListType
}
yyVAL.union = yyLOCAL
- case 644:
+ case 645:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3618
+//line sql.y:3626
{
yyLOCAL = -1
}
yyVAL.union = yyLOCAL
- case 645:
+ case 646:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:3622
+//line sql.y:3630
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 646:
+ case 647:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:3627
+//line sql.y:3635
{
yyLOCAL = -1
}
yyVAL.union = yyLOCAL
- case 647:
+ case 648:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:3631
+//line sql.y:3639
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 648:
+ case 649:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3637
+//line sql.y:3645
{
yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}}
}
yyVAL.union = yyLOCAL
- case 649:
+ case 650:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3641
+//line sql.y:3649
{
yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 650:
+ case 651:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3645
+//line sql.y:3653
{
yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()}
}
yyVAL.union = yyLOCAL
- case 651:
+ case 652:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3649
+//line sql.y:3657
{
yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 652:
+ case 653:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3653
+//line sql.y:3661
{
yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 653:
+ case 654:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3657
+//line sql.y:3665
{
yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 654:
+ case 655:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3661
+//line sql.y:3669
{
yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 655:
+ case 656:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3665
+//line sql.y:3673
{
yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 656:
+ case 657:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3669
+//line sql.y:3677
{
yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 657:
+ case 658:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3673
+//line sql.y:3681
{
yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 658:
+ case 659:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3677
+//line sql.y:3685
{
yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 659:
+ case 660:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3681
+//line sql.y:3689
{
yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 660:
+ case 661:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3685
+//line sql.y:3693
{
yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 661:
+ case 662:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3689
+//line sql.y:3697
{
yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 662:
+ case 663:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3693
+//line sql.y:3701
{
yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 663:
+ case 664:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3697
+//line sql.y:3705
{
yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 664:
+ case 665:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3701
+//line sql.y:3709
{
yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 665:
+ case 666:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3705
+//line sql.y:3713
{
yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 666:
+ case 667:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3709
+//line sql.y:3717
{
yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 667:
+ case 668:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3713
+//line sql.y:3721
{
yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 668:
+ case 669:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3717
+//line sql.y:3725
{
yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true}
}
yyVAL.union = yyLOCAL
- case 669:
+ case 670:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionSpec
-//line sql.y:3721
+//line sql.y:3729
{
yyLOCAL = &PartitionSpec{Action: UpgradeAction}
}
yyVAL.union = yyLOCAL
- case 670:
+ case 671:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3726
+//line sql.y:3734
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 671:
+ case 672:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:3730
+//line sql.y:3738
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 672:
+ case 673:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:3734
+//line sql.y:3742
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 673:
+ case 674:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*PartitionDefinition
-//line sql.y:3740
+//line sql.y:3748
{
yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()}
}
yyVAL.union = yyLOCAL
- case 674:
+ case 675:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3744
+//line sql.y:3752
{
yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].partDefUnion())
}
- case 675:
+ case 676:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:3750
+//line sql.y:3758
{
yyVAL.partDefUnion().Options = yyDollar[2].partitionDefinitionOptionsUnion()
}
- case 676:
+ case 677:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3755
+//line sql.y:3763
{
yyLOCAL = &PartitionDefinitionOptions{}
}
yyVAL.union = yyLOCAL
- case 677:
+ case 678:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3759
+//line sql.y:3767
{
yyDollar[1].partitionDefinitionOptionsUnion().ValueRange = yyDollar[2].partitionValueRangeUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 678:
+ case 679:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3764
+//line sql.y:3772
{
yyDollar[1].partitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 679:
+ case 680:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3769
+//line sql.y:3777
{
yyDollar[1].partitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 680:
+ case 681:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3774
+//line sql.y:3782
{
yyDollar[1].partitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 681:
+ case 682:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3779
+//line sql.y:3787
{
yyDollar[1].partitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 682:
+ case 683:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3784
+//line sql.y:3792
{
yyDollar[1].partitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 683:
+ case 684:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3789
+//line sql.y:3797
{
yyDollar[1].partitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 684:
+ case 685:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3794
+//line sql.y:3802
{
yyDollar[1].partitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 685:
+ case 686:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinitionOptions
-//line sql.y:3799
+//line sql.y:3807
{
yyDollar[1].partitionDefinitionOptionsUnion().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitionsUnion()
yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 686:
+ case 687:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL SubPartitionDefinitions
-//line sql.y:3805
+//line sql.y:3813
{
yyLOCAL = yyDollar[2].subPartitionDefinitionsUnion()
}
yyVAL.union = yyLOCAL
- case 687:
+ case 688:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SubPartitionDefinitions
-//line sql.y:3811
+//line sql.y:3819
{
yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 688:
+ case 689:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3815
+//line sql.y:3823
{
yySLICE := (*SubPartitionDefinitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].subPartitionDefinitionUnion())
}
- case 689:
+ case 690:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *SubPartitionDefinition
-//line sql.y:3821
+//line sql.y:3829
{
yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].identifierCI, Options: yyDollar[3].subPartitionDefinitionOptionsUnion()}
}
yyVAL.union = yyLOCAL
- case 690:
+ case 691:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3826
+//line sql.y:3834
{
yyLOCAL = &SubPartitionDefinitionOptions{}
}
yyVAL.union = yyLOCAL
- case 691:
+ case 692:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3830
+//line sql.y:3838
{
yyDollar[1].subPartitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 692:
+ case 693:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3835
+//line sql.y:3843
{
yyDollar[1].subPartitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 693:
+ case 694:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3840
+//line sql.y:3848
{
yyDollar[1].subPartitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 694:
+ case 695:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3845
+//line sql.y:3853
{
yyDollar[1].subPartitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion()
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 695:
+ case 696:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3850
+//line sql.y:3858
{
yyDollar[1].subPartitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 696:
+ case 697:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3855
+//line sql.y:3863
{
yyDollar[1].subPartitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion())
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 697:
+ case 698:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *SubPartitionDefinitionOptions
-//line sql.y:3860
+//line sql.y:3868
{
yyDollar[1].subPartitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str
yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion()
}
yyVAL.union = yyLOCAL
- case 698:
+ case 699:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3867
+//line sql.y:3875
{
yyLOCAL = &PartitionValueRange{
Type: LessThanType,
@@ -15394,10 +15448,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 699:
+ case 700:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3874
+//line sql.y:3882
{
yyLOCAL = &PartitionValueRange{
Type: LessThanType,
@@ -15405,10 +15459,10 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 700:
+ case 701:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *PartitionValueRange
-//line sql.y:3881
+//line sql.y:3889
{
yyLOCAL = &PartitionValueRange{
Type: InType,
@@ -15416,131 +15470,131 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 701:
+ case 702:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:3889
+//line sql.y:3897
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 702:
+ case 703:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:3893
+//line sql.y:3901
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 703:
+ case 704:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *PartitionEngine
-//line sql.y:3899
+//line sql.y:3907
{
yyLOCAL = &PartitionEngine{Storage: yyDollar[1].booleanUnion(), Name: yyDollar[4].identifierCS.String()}
}
yyVAL.union = yyLOCAL
- case 704:
+ case 705:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3905
+//line sql.y:3913
{
yyLOCAL = NewStrLiteral(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 705:
+ case 706:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3911
+//line sql.y:3919
{
yyLOCAL = NewStrLiteral(yyDollar[4].str)
}
yyVAL.union = yyLOCAL
- case 706:
+ case 707:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Literal
-//line sql.y:3917
+//line sql.y:3925
{
yyLOCAL = NewStrLiteral(yyDollar[4].str)
}
yyVAL.union = yyLOCAL
- case 707:
+ case 708:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3923
+//line sql.y:3931
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 708:
+ case 709:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:3929
+//line sql.y:3937
{
yyLOCAL = convertStringToInt(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 709:
+ case 710:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3935
+//line sql.y:3943
{
yyVAL.str = yyDollar[3].identifierCS.String()
}
- case 710:
+ case 711:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *PartitionDefinition
-//line sql.y:3941
+//line sql.y:3949
{
yyLOCAL = &PartitionDefinition{Name: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 711:
+ case 712:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:3947
+//line sql.y:3955
{
yyVAL.str = ""
}
- case 712:
+ case 713:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:3951
+//line sql.y:3959
{
yyVAL.str = ""
}
- case 713:
+ case 714:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3957
+//line sql.y:3965
{
yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()}
}
yyVAL.union = yyLOCAL
- case 714:
+ case 715:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*RenameTablePair
-//line sql.y:3963
+//line sql.y:3971
{
yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}}
}
yyVAL.union = yyLOCAL
- case 715:
+ case 716:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:3967
+//line sql.y:3975
{
yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName})
}
- case 716:
+ case 717:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3973
+//line sql.y:3981
{
yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), Temp: yyDollar[3].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 717:
+ case 718:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3977
+//line sql.y:3985
{
// Change this to an alter statement
if yyDollar[4].identifierCI.Lowered() == "primary" {
@@ -15550,1377 +15604,1377 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 718:
+ case 719:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3986
+//line sql.y:3994
{
yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), IfExists: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 719:
+ case 720:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3990
+//line sql.y:3998
{
yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs).Parsed(), DBName: yyDollar[5].identifierCS, IfExists: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 720:
+ case 721:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:3996
+//line sql.y:4004
{
yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName}
}
yyVAL.union = yyLOCAL
- case 721:
+ case 722:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4000
+//line sql.y:4008
{
yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName}
}
yyVAL.union = yyLOCAL
- case 722:
+ case 723:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4006
+//line sql.y:4014
{
yyLOCAL = &Analyze{IsLocal: yyDollar[2].booleanUnion(), Table: yyDollar[4].tableName}
}
yyVAL.union = yyLOCAL
- case 723:
+ case 724:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4012
+//line sql.y:4020
{
yyLOCAL = &PurgeBinaryLogs{To: string(yyDollar[5].str)}
}
yyVAL.union = yyLOCAL
- case 724:
+ case 725:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4016
+//line sql.y:4024
{
yyLOCAL = &PurgeBinaryLogs{Before: string(yyDollar[5].str)}
}
yyVAL.union = yyLOCAL
- case 725:
+ case 726:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4022
+//line sql.y:4030
{
yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 726:
+ case 727:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4026
+//line sql.y:4034
{
yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 727:
+ case 728:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4030
+//line sql.y:4038
{
yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 728:
+ case 729:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4034
+//line sql.y:4042
{
yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 729:
+ case 730:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4038
+//line sql.y:4046
{
yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 730:
+ case 731:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4042
+//line sql.y:4050
{
yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 731:
+ case 732:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4046
+//line sql.y:4054
{
yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 732:
+ case 733:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4050
+//line sql.y:4058
{
yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 733:
+ case 734:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4054
+//line sql.y:4062
{
yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 734:
+ case 735:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4058
+//line sql.y:4066
{
yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 735:
+ case 736:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4062
+//line sql.y:4070
{
yyLOCAL = &Show{&ShowBasic{Command: Privilege}}
}
yyVAL.union = yyLOCAL
- case 736:
+ case 737:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4066
+//line sql.y:4074
{
yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 737:
+ case 738:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4070
+//line sql.y:4078
{
yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 738:
+ case 739:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4074
+//line sql.y:4082
{
yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 739:
+ case 740:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4078
+//line sql.y:4086
{
yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 740:
+ case 741:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4082
+//line sql.y:4090
{
yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 741:
+ case 742:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4086
+//line sql.y:4094
{
yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 742:
+ case 743:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4090
+//line sql.y:4098
{
yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 743:
+ case 744:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4094
+//line sql.y:4102
{
yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 744:
+ case 745:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4098
+//line sql.y:4106
{
yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 745:
+ case 746:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4102
+//line sql.y:4110
{
yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 746:
+ case 747:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4106
+//line sql.y:4114
{
yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 747:
+ case 748:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4110
+//line sql.y:4118
{
yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 748:
+ case 749:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4114
+//line sql.y:4122
{
yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 749:
+ case 750:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4118
+//line sql.y:4126
{
yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 750:
+ case 751:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4122
+//line sql.y:4130
{
yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}}
}
yyVAL.union = yyLOCAL
- case 751:
+ case 752:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4126
+//line sql.y:4134
{
yyLOCAL = &Show{&ShowBasic{Command: Engines}}
}
yyVAL.union = yyLOCAL
- case 752:
+ case 753:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4130
+//line sql.y:4138
{
yyLOCAL = &Show{&ShowBasic{Command: Plugins}}
}
yyVAL.union = yyLOCAL
- case 753:
+ case 754:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4134
+//line sql.y:4142
{
yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 754:
+ case 755:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4138
+//line sql.y:4146
{
yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 755:
+ case 756:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4142
+//line sql.y:4150
{
yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 756:
+ case 757:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4146
+//line sql.y:4154
{
yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 757:
+ case 758:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4150
+//line sql.y:4158
{
yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 758:
+ case 759:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4154
+//line sql.y:4162
{
yyLOCAL = &ShowThrottledApps{}
}
yyVAL.union = yyLOCAL
- case 759:
+ case 760:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4158
+//line sql.y:4166
{
yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 760:
+ case 761:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4162
+//line sql.y:4170
{
yyLOCAL = &ShowThrottlerStatus{}
}
yyVAL.union = yyLOCAL
- case 761:
+ case 762:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4166
+//line sql.y:4174
{
yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}}
}
yyVAL.union = yyLOCAL
- case 762:
+ case 763:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4170
+//line sql.y:4178
{
yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}}
}
yyVAL.union = yyLOCAL
- case 763:
+ case 764:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4174
+//line sql.y:4182
{
yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}}
}
yyVAL.union = yyLOCAL
- case 764:
+ case 765:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4178
+//line sql.y:4186
{
yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}}
}
yyVAL.union = yyLOCAL
- case 765:
+ case 766:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4182
+//line sql.y:4190
{
yyLOCAL = &Show{&ShowBasic{Command: Warnings}}
}
yyVAL.union = yyLOCAL
- case 766:
+ case 767:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4186
+//line sql.y:4194
{
yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 767:
+ case 768:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4190
+//line sql.y:4198
{
yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}}
}
yyVAL.union = yyLOCAL
- case 768:
+ case 769:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4194
+//line sql.y:4202
{
yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}}
}
yyVAL.union = yyLOCAL
- case 769:
+ case 770:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4201
+//line sql.y:4209
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].identifierCI.String())}}
}
yyVAL.union = yyLOCAL
- case 770:
+ case 771:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4205
+//line sql.y:4213
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
- case 771:
+ case 772:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4209
+//line sql.y:4217
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()}}
}
yyVAL.union = yyLOCAL
- case 772:
+ case 773:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4213
+//line sql.y:4221
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
- case 773:
+ case 774:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4217
+//line sql.y:4225
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}}
}
yyVAL.union = yyLOCAL
- case 774:
+ case 775:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4221
+//line sql.y:4229
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}}
}
yyVAL.union = yyLOCAL
- case 775:
+ case 776:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4225
+//line sql.y:4233
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}}
}
yyVAL.union = yyLOCAL
- case 776:
+ case 777:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4229
+//line sql.y:4237
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[3].str)}}
}
yyVAL.union = yyLOCAL
- case 777:
+ case 778:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4233
+//line sql.y:4241
{
yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}}
}
yyVAL.union = yyLOCAL
- case 778:
+ case 779:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4237
+//line sql.y:4245
{
yyLOCAL = &Show{&ShowTransactionStatus{TransactionID: string(yyDollar[5].str)}}
}
yyVAL.union = yyLOCAL
- case 779:
+ case 780:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4241
+//line sql.y:4249
{
yyLOCAL = &Show{&ShowTransactionStatus{}}
}
yyVAL.union = yyLOCAL
- case 780:
+ case 781:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4245
+//line sql.y:4253
{
yyLOCAL = &Show{&ShowTransactionStatus{Keyspace: yyDollar[5].identifierCS.String()}}
}
yyVAL.union = yyLOCAL
- case 781:
+ case 782:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4250
+//line sql.y:4258
{
}
- case 782:
+ case 783:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4252
+//line sql.y:4260
{
}
- case 783:
+ case 784:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4256
+//line sql.y:4264
{
yyVAL.str = ""
}
- case 784:
+ case 785:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4260
+//line sql.y:4268
{
yyVAL.str = "extended "
}
- case 785:
+ case 786:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4266
+//line sql.y:4274
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 786:
+ case 787:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4270
+//line sql.y:4278
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 787:
+ case 788:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4276
+//line sql.y:4284
{
yyVAL.str = string(yyDollar[1].str)
}
- case 788:
+ case 789:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4280
+//line sql.y:4288
{
yyVAL.str = string(yyDollar[1].str)
}
- case 789:
+ case 790:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4286
+//line sql.y:4294
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 790:
+ case 791:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4290
+//line sql.y:4298
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 791:
+ case 792:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4294
+//line sql.y:4302
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 792:
+ case 793:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4300
+//line sql.y:4308
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 793:
+ case 794:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4304
+//line sql.y:4312
{
yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 794:
+ case 795:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4308
+//line sql.y:4316
{
yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 795:
+ case 796:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4314
+//line sql.y:4322
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 796:
+ case 797:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ShowFilter
-//line sql.y:4318
+//line sql.y:4326
{
yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)}
}
yyVAL.union = yyLOCAL
- case 797:
+ case 798:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4324
+//line sql.y:4332
{
yyVAL.empty = struct{}{}
}
- case 798:
+ case 799:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4328
+//line sql.y:4336
{
yyVAL.empty = struct{}{}
}
- case 799:
+ case 800:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4332
+//line sql.y:4340
{
yyVAL.empty = struct{}{}
}
- case 800:
+ case 801:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4338
+//line sql.y:4346
{
yyVAL.str = string(yyDollar[1].str)
}
- case 801:
+ case 802:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4342
+//line sql.y:4350
{
yyVAL.str = string(yyDollar[1].str)
}
- case 802:
+ case 803:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4348
+//line sql.y:4356
{
yyLOCAL = &Use{DBName: yyDollar[2].identifierCS}
}
yyVAL.union = yyLOCAL
- case 803:
+ case 804:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4352
+//line sql.y:4360
{
yyLOCAL = &Use{DBName: IdentifierCS{v: ""}}
}
yyVAL.union = yyLOCAL
- case 804:
+ case 805:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4356
+//line sql.y:4364
{
yyLOCAL = &Use{DBName: NewIdentifierCS(yyDollar[2].identifierCS.String() + "@" + string(yyDollar[3].str))}
}
yyVAL.union = yyLOCAL
- case 805:
+ case 806:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4363
+//line sql.y:4371
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 806:
+ case 807:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4367
+//line sql.y:4375
{
yyVAL.identifierCS = NewIdentifierCS("@" + string(yyDollar[1].str))
}
- case 807:
+ case 808:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4371
+//line sql.y:4379
{
yyVAL.identifierCS = NewIdentifierCS("@@" + string(yyDollar[1].str))
}
- case 808:
+ case 809:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4375
+//line sql.y:4383
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 809:
+ case 810:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4382
+//line sql.y:4390
{
yyLOCAL = &Begin{}
}
yyVAL.union = yyLOCAL
- case 810:
+ case 811:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4386
+//line sql.y:4394
{
yyLOCAL = &Begin{TxAccessModes: yyDollar[3].txAccessModesUnion()}
}
yyVAL.union = yyLOCAL
- case 811:
+ case 812:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4391
+//line sql.y:4399
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 812:
+ case 813:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4395
+//line sql.y:4403
{
yyLOCAL = yyDollar[1].txAccessModesUnion()
}
yyVAL.union = yyLOCAL
- case 813:
+ case 814:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []TxAccessMode
-//line sql.y:4401
+//line sql.y:4409
{
yyLOCAL = []TxAccessMode{yyDollar[1].txAccessModeUnion()}
}
yyVAL.union = yyLOCAL
- case 814:
+ case 815:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4405
+//line sql.y:4413
{
yySLICE := (*[]TxAccessMode)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].txAccessModeUnion())
}
- case 815:
+ case 816:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4411
+//line sql.y:4419
{
yyLOCAL = WithConsistentSnapshot
}
yyVAL.union = yyLOCAL
- case 816:
+ case 817:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4415
+//line sql.y:4423
{
yyLOCAL = ReadWrite
}
yyVAL.union = yyLOCAL
- case 817:
+ case 818:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TxAccessMode
-//line sql.y:4419
+//line sql.y:4427
{
yyLOCAL = ReadOnly
}
yyVAL.union = yyLOCAL
- case 818:
+ case 819:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4426
+//line sql.y:4434
{
yyLOCAL = &Commit{}
}
yyVAL.union = yyLOCAL
- case 819:
+ case 820:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4432
+//line sql.y:4440
{
yyLOCAL = &Rollback{}
}
yyVAL.union = yyLOCAL
- case 820:
+ case 821:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4436
+//line sql.y:4444
{
yyLOCAL = &SRollback{Name: yyDollar[5].identifierCI}
}
yyVAL.union = yyLOCAL
- case 821:
+ case 822:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4441
+//line sql.y:4449
{
yyVAL.empty = struct{}{}
}
- case 822:
+ case 823:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4443
+//line sql.y:4451
{
yyVAL.empty = struct{}{}
}
- case 823:
+ case 824:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4446
+//line sql.y:4454
{
yyVAL.empty = struct{}{}
}
- case 824:
+ case 825:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4448
+//line sql.y:4456
{
yyVAL.empty = struct{}{}
}
- case 825:
+ case 826:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4452
+//line sql.y:4460
{
yyLOCAL = &Savepoint{Name: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 826:
+ case 827:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4458
+//line sql.y:4466
{
yyLOCAL = &Release{Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 827:
+ case 828:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4463
+//line sql.y:4471
{
yyLOCAL = EmptyType
}
yyVAL.union = yyLOCAL
- case 828:
+ case 829:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4467
+//line sql.y:4475
{
yyLOCAL = JSONType
}
yyVAL.union = yyLOCAL
- case 829:
+ case 830:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4471
+//line sql.y:4479
{
yyLOCAL = TreeType
}
yyVAL.union = yyLOCAL
- case 830:
+ case 831:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4475
+//line sql.y:4483
{
yyLOCAL = TraditionalType
}
yyVAL.union = yyLOCAL
- case 831:
+ case 832:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ExplainType
-//line sql.y:4479
+//line sql.y:4487
{
yyLOCAL = AnalyzeType
}
yyVAL.union = yyLOCAL
- case 832:
+ case 833:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4484
+//line sql.y:4492
{
yyLOCAL = PlanVExplainType
}
yyVAL.union = yyLOCAL
- case 833:
+ case 834:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4488
+//line sql.y:4496
{
yyLOCAL = PlanVExplainType
}
yyVAL.union = yyLOCAL
- case 834:
+ case 835:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4492
+//line sql.y:4500
{
yyLOCAL = AllVExplainType
}
yyVAL.union = yyLOCAL
- case 835:
+ case 836:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4496
+//line sql.y:4504
{
yyLOCAL = QueriesVExplainType
}
yyVAL.union = yyLOCAL
- case 836:
+ case 837:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4500
+//line sql.y:4508
{
yyLOCAL = TraceVExplainType
}
yyVAL.union = yyLOCAL
- case 837:
+ case 838:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL VExplainType
-//line sql.y:4504
+//line sql.y:4512
{
yyLOCAL = KeysVExplainType
}
yyVAL.union = yyLOCAL
- case 838:
+ case 839:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4510
+//line sql.y:4518
{
yyVAL.str = yyDollar[1].str
}
- case 839:
+ case 840:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4514
+//line sql.y:4522
{
yyVAL.str = yyDollar[1].str
}
- case 840:
+ case 841:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4518
+//line sql.y:4526
{
yyVAL.str = yyDollar[1].str
}
- case 841:
+ case 842:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4524
+//line sql.y:4532
{
yyLOCAL = yyDollar[1].selStmtUnion()
}
yyVAL.union = yyLOCAL
- case 842:
+ case 843:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4528
+//line sql.y:4536
{
yyLOCAL = yyDollar[1].statementUnion()
}
yyVAL.union = yyLOCAL
- case 843:
+ case 844:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4532
+//line sql.y:4540
{
yyLOCAL = yyDollar[1].statementUnion()
}
yyVAL.union = yyLOCAL
- case 844:
+ case 845:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4536
+//line sql.y:4544
{
yyLOCAL = yyDollar[1].statementUnion()
}
yyVAL.union = yyLOCAL
- case 845:
+ case 846:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4541
+//line sql.y:4549
{
yyVAL.str = ""
}
- case 846:
+ case 847:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4545
+//line sql.y:4553
{
yyVAL.str = yyDollar[1].identifierCI.val
}
- case 847:
+ case 848:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4549
+//line sql.y:4557
{
yyVAL.str = encodeSQLString(yyDollar[1].str)
}
- case 848:
+ case 849:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4555
+//line sql.y:4563
{
yyLOCAL = &ExplainTab{Table: yyDollar[3].tableName, Wild: yyDollar[4].str}
}
yyVAL.union = yyLOCAL
- case 849:
+ case 850:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4559
+//line sql.y:4567
{
yyLOCAL = &ExplainStmt{Type: yyDollar[3].explainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()}
}
yyVAL.union = yyLOCAL
- case 850:
+ case 851:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4565
+//line sql.y:4573
{
yyLOCAL = &VExplainStmt{Type: yyDollar[3].vexplainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()}
}
yyVAL.union = yyLOCAL
- case 851:
+ case 852:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4571
+//line sql.y:4579
{
yyLOCAL = &OtherAdmin{}
}
yyVAL.union = yyLOCAL
- case 852:
+ case 853:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4575
+//line sql.y:4583
{
yyLOCAL = &OtherAdmin{}
}
yyVAL.union = yyLOCAL
- case 853:
+ case 854:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4581
+//line sql.y:4589
{
yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()}
}
yyVAL.union = yyLOCAL
- case 854:
+ case 855:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableAndLockTypes
-//line sql.y:4587
+//line sql.y:4595
{
yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 855:
+ case 856:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4591
+//line sql.y:4599
{
yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion())
}
- case 856:
+ case 857:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *TableAndLockType
-//line sql.y:4597
+//line sql.y:4605
{
yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 857:
+ case 858:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4603
+//line sql.y:4611
{
yyLOCAL = Read
}
yyVAL.union = yyLOCAL
- case 858:
+ case 859:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4607
+//line sql.y:4615
{
yyLOCAL = ReadLocal
}
yyVAL.union = yyLOCAL
- case 859:
+ case 860:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4611
+//line sql.y:4619
{
yyLOCAL = Write
}
yyVAL.union = yyLOCAL
- case 860:
+ case 861:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL LockType
-//line sql.y:4615
+//line sql.y:4623
{
yyLOCAL = LowPriorityWrite
}
yyVAL.union = yyLOCAL
- case 861:
+ case 862:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4621
+//line sql.y:4629
{
yyLOCAL = &UnlockTables{}
}
yyVAL.union = yyLOCAL
- case 862:
+ case 863:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4627
+//line sql.y:4635
{
yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs).Parsed(), UUID: string(yyDollar[4].str)}
}
yyVAL.union = yyLOCAL
- case 863:
+ case 864:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4633
+//line sql.y:4641
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs}
}
yyVAL.union = yyLOCAL
- case 864:
+ case 865:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4637
+//line sql.y:4645
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 865:
+ case 866:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4641
+//line sql.y:4649
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true}
}
yyVAL.union = yyLOCAL
- case 866:
+ case 867:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4645
+//line sql.y:4653
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()}
}
yyVAL.union = yyLOCAL
- case 867:
+ case 868:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4649
+//line sql.y:4657
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true}
}
yyVAL.union = yyLOCAL
- case 868:
+ case 869:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4653
+//line sql.y:4661
{
yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true}
}
yyVAL.union = yyLOCAL
- case 869:
+ case 870:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4659
+//line sql.y:4667
{
yyVAL.strs = []string{yyDollar[1].str}
}
- case 870:
+ case 871:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4663
+//line sql.y:4671
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str)
}
- case 871:
- yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4669
- {
- yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
- }
case 872:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4673
+//line sql.y:4677
{
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 873:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4677
+//line sql.y:4681
{
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 874:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4681
+//line sql.y:4685
{
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 875:
- yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4685
+ yyDollar = yyS[yypt-2 : yypt+1]
+//line sql.y:4689
{
- yyVAL.str = string(yyDollar[1].str)
+ yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
case 876:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4689
+//line sql.y:4693
{
yyVAL.str = string(yyDollar[1].str)
}
case 877:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4693
+//line sql.y:4697
{
yyVAL.str = string(yyDollar[1].str)
}
case 878:
+ yyDollar = yyS[yypt-1 : yypt+1]
+//line sql.y:4701
+ {
+ yyVAL.str = string(yyDollar[1].str)
+ }
+ case 879:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4697
+//line sql.y:4705
{
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str
}
- case 879:
+ case 880:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4701
+//line sql.y:4709
{
yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str)
}
- case 880:
+ case 881:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4705
+//line sql.y:4713
{
yyVAL.str = string(yyDollar[1].str)
}
- case 881:
+ case 882:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4709
+//line sql.y:4717
{
yyVAL.str = string(yyDollar[1].str)
}
- case 882:
+ case 883:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4713
+//line sql.y:4721
{
yyVAL.str = string(yyDollar[1].str)
}
- case 883:
+ case 884:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4718
+//line sql.y:4726
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 884:
+ case 885:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4722
+//line sql.y:4730
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 885:
+ case 886:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4726
+//line sql.y:4734
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 886:
+ case 887:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4731
+//line sql.y:4739
{
yyVAL.str = ""
}
- case 887:
+ case 888:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4735
+//line sql.y:4743
{
yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()
}
- case 888:
+ case 889:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4740
+//line sql.y:4748
{
setAllowComments(yylex, true)
}
- case 889:
+ case 890:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4744
+//line sql.y:4752
{
yyVAL.strs = yyDollar[2].strs
setAllowComments(yylex, false)
}
- case 890:
+ case 891:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4750
+//line sql.y:4758
{
yyVAL.strs = nil
}
- case 891:
+ case 892:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4754
+//line sql.y:4762
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
}
- case 892:
+ case 893:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4760
+//line sql.y:4768
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 893:
+ case 894:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:4764
+//line sql.y:4772
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 894:
+ case 895:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:4768
+//line sql.y:4776
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 895:
+ case 896:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4773
+//line sql.y:4781
{
yyVAL.str = ""
}
- case 896:
+ case 897:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4777
+//line sql.y:4785
{
yyVAL.str = SQLNoCacheStr
}
- case 897:
+ case 898:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4781
+//line sql.y:4789
{
yyVAL.str = SQLCacheStr
}
- case 898:
+ case 899:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:4786
+//line sql.y:4794
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 899:
+ case 900:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4790
+//line sql.y:4798
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 900:
+ case 901:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:4794
+//line sql.y:4802
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 901:
+ case 902:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4800
+//line sql.y:4808
{
yyLOCAL = &PrepareStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Statement: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 902:
+ case 903:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4804
+//line sql.y:4812
{
yyLOCAL = &PrepareStmt{
Name: yyDollar[3].identifierCI,
@@ -16929,597 +16983,597 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 903:
+ case 904:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4814
+//line sql.y:4822
{
yyLOCAL = &ExecuteStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Arguments: yyDollar[4].variablesUnion()}
}
yyVAL.union = yyLOCAL
- case 904:
+ case 905:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:4819
+//line sql.y:4827
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 905:
+ case 906:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:4823
+//line sql.y:4831
{
yyLOCAL = yyDollar[2].variablesUnion()
}
yyVAL.union = yyLOCAL
- case 906:
+ case 907:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4829
+//line sql.y:4837
{
yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI}
}
yyVAL.union = yyLOCAL
- case 907:
+ case 908:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Statement
-//line sql.y:4833
+//line sql.y:4841
{
yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI}
}
yyVAL.union = yyLOCAL
- case 908:
+ case 909:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4838
+//line sql.y:4846
{
yyVAL.strs = nil
}
- case 909:
+ case 910:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4842
+//line sql.y:4850
{
yyVAL.strs = yyDollar[1].strs
}
- case 910:
+ case 911:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4848
+//line sql.y:4856
{
yyVAL.strs = []string{yyDollar[1].str}
}
- case 911:
+ case 912:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4852
+//line sql.y:4860
{
yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str)
}
- case 912:
+ case 913:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4858
+//line sql.y:4866
{
yyVAL.str = SQLNoCacheStr
}
- case 913:
+ case 914:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4862
+//line sql.y:4870
{
yyVAL.str = SQLCacheStr
}
- case 914:
+ case 915:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4866
+//line sql.y:4874
{
yyVAL.str = DistinctStr
}
- case 915:
+ case 916:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4870
+//line sql.y:4878
{
yyVAL.str = DistinctStr
}
- case 916:
+ case 917:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4874
+//line sql.y:4882
{
yyVAL.str = HighPriorityStr
}
- case 917:
+ case 918:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4878
+//line sql.y:4886
{
yyVAL.str = StraightJoinHint
}
- case 918:
+ case 919:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4882
+//line sql.y:4890
{
yyVAL.str = SQLBufferResultStr
}
- case 919:
+ case 920:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4886
+//line sql.y:4894
{
yyVAL.str = SQLSmallResultStr
}
- case 920:
+ case 921:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4890
+//line sql.y:4898
{
yyVAL.str = SQLBigResultStr
}
- case 921:
+ case 922:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4894
+//line sql.y:4902
{
yyVAL.str = SQLCalcFoundRowsStr
}
- case 922:
+ case 923:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4898
+//line sql.y:4906
{
yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway
}
- case 923:
+ case 924:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SelectExprs
-//line sql.y:4904
+//line sql.y:4912
{
yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()}
}
yyVAL.union = yyLOCAL
- case 924:
+ case 925:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4908
+//line sql.y:4916
{
yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion())
}
- case 925:
+ case 926:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4914
+//line sql.y:4922
{
yyLOCAL = &StarExpr{}
}
yyVAL.union = yyLOCAL
- case 926:
+ case 927:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4918
+//line sql.y:4926
{
yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 927:
+ case 928:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4922
+//line sql.y:4930
{
yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 928:
+ case 929:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL SelectExpr
-//line sql.y:4926
+//line sql.y:4934
{
yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}}
}
yyVAL.union = yyLOCAL
- case 929:
+ case 930:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:4931
+//line sql.y:4939
{
yyVAL.identifierCI = IdentifierCI{}
}
- case 930:
+ case 931:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4935
+//line sql.y:4943
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 931:
+ case 932:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:4939
+//line sql.y:4947
{
yyVAL.identifierCI = yyDollar[2].identifierCI
}
- case 933:
+ case 934:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:4946
+//line sql.y:4954
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 934:
+ case 935:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4951
+//line sql.y:4959
{
yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewIdentifierCS("dual")}}}
}
yyVAL.union = yyLOCAL
- case 935:
+ case 936:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4955
+//line sql.y:4963
{
yyLOCAL = yyDollar[1].tableExprsUnion()
}
yyVAL.union = yyLOCAL
- case 936:
+ case 937:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4961
+//line sql.y:4969
{
yyLOCAL = yyDollar[2].tableExprsUnion()
}
yyVAL.union = yyLOCAL
- case 937:
+ case 938:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExprs
-//line sql.y:4967
+//line sql.y:4975
{
yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()}
}
yyVAL.union = yyLOCAL
- case 938:
+ case 939:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:4971
+//line sql.y:4979
{
yySLICE := (*TableExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion())
}
- case 941:
+ case 942:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4981
+//line sql.y:4989
{
yyLOCAL = yyDollar[1].aliasedTableNameUnion()
}
yyVAL.union = yyLOCAL
- case 942:
+ case 943:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4985
+//line sql.y:4993
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].identifierCS, Columns: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 943:
+ case 944:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4989
+//line sql.y:4997
{
yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()}
}
yyVAL.union = yyLOCAL
- case 944:
+ case 945:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:4993
+//line sql.y:5001
{
yyLOCAL = yyDollar[1].tableExprUnion()
}
yyVAL.union = yyLOCAL
- case 945:
+ case 946:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *DerivedTable
-//line sql.y:4999
+//line sql.y:5007
{
yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 946:
+ case 947:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *DerivedTable
-//line sql.y:5003
+//line sql.y:5011
{
yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[2].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 947:
+ case 948:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *AliasedTableExpr
-//line sql.y:5009
+//line sql.y:5017
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].identifierCS, Hints: yyDollar[3].indexHintsUnion()}
}
yyVAL.union = yyLOCAL
- case 948:
+ case 949:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL *AliasedTableExpr
-//line sql.y:5013
+//line sql.y:5021
{
yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].identifierCS, Hints: yyDollar[7].indexHintsUnion()}
}
yyVAL.union = yyLOCAL
- case 949:
+ case 950:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5018
+//line sql.y:5026
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 950:
+ case 951:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5022
+//line sql.y:5030
{
yyLOCAL = yyDollar[2].columnsUnion()
}
yyVAL.union = yyLOCAL
- case 951:
+ case 952:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5027
+//line sql.y:5035
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 952:
+ case 953:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5031
+//line sql.y:5039
{
yyLOCAL = yyDollar[1].columnsUnion()
}
yyVAL.union = yyLOCAL
- case 953:
+ case 954:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5037
+//line sql.y:5045
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 954:
+ case 955:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5041
+//line sql.y:5049
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 955:
+ case 956:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*Variable
-//line sql.y:5047
+//line sql.y:5055
{
yyLOCAL = []*Variable{yyDollar[1].variableUnion()}
}
yyVAL.union = yyLOCAL
- case 956:
+ case 957:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5051
+//line sql.y:5059
{
yySLICE := (*[]*Variable)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].variableUnion())
}
- case 957:
+ case 958:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5057
+//line sql.y:5065
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 958:
+ case 959:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:5061
+//line sql.y:5069
{
yyLOCAL = Columns{NewIdentifierCI(string(yyDollar[1].str))}
}
yyVAL.union = yyLOCAL
- case 959:
+ case 960:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5065
+//line sql.y:5073
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 960:
+ case 961:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5069
+//line sql.y:5077
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, NewIdentifierCI(string(yyDollar[3].str)))
}
- case 961:
+ case 962:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Partitions
-//line sql.y:5075
+//line sql.y:5083
{
yyLOCAL = Partitions{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 962:
+ case 963:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5079
+//line sql.y:5087
{
yySLICE := (*Partitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 963:
+ case 964:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5092
+//line sql.y:5100
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 964:
+ case 965:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5096
+//line sql.y:5104
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 965:
+ case 966:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5100
+//line sql.y:5108
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition}
}
yyVAL.union = yyLOCAL
- case 966:
+ case 967:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL TableExpr
-//line sql.y:5104
+//line sql.y:5112
{
yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()}
}
yyVAL.union = yyLOCAL
- case 967:
+ case 968:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5110
+//line sql.y:5118
{
yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
}
- case 968:
+ case 969:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:5112
+//line sql.y:5120
{
yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()}
}
- case 969:
+ case 970:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5116
+//line sql.y:5124
{
yyVAL.joinCondition = &JoinCondition{}
}
- case 970:
+ case 971:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5118
+//line sql.y:5126
{
yyVAL.joinCondition = yyDollar[1].joinCondition
}
- case 971:
+ case 972:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5122
+//line sql.y:5130
{
yyVAL.joinCondition = &JoinCondition{}
}
- case 972:
+ case 973:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5124
+//line sql.y:5132
{
yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()}
}
- case 973:
+ case 974:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5127
+//line sql.y:5135
{
yyVAL.empty = struct{}{}
}
- case 974:
+ case 975:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5129
+//line sql.y:5137
{
yyVAL.empty = struct{}{}
}
- case 975:
+ case 976:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5132
+//line sql.y:5140
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 976:
+ case 977:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5136
+//line sql.y:5144
{
yyVAL.identifierCS = yyDollar[1].identifierCS
}
- case 977:
+ case 978:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5140
+//line sql.y:5148
{
yyVAL.identifierCS = yyDollar[2].identifierCS
}
- case 979:
+ case 980:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5147
+//line sql.y:5155
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 980:
+ case 981:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5153
+//line sql.y:5161
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 981:
+ case 982:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5157
+//line sql.y:5165
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 982:
+ case 983:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5161
+//line sql.y:5169
{
yyLOCAL = NormalJoinType
}
yyVAL.union = yyLOCAL
- case 983:
+ case 984:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5167
+//line sql.y:5175
{
yyLOCAL = StraightJoinType
}
yyVAL.union = yyLOCAL
- case 984:
+ case 985:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5173
+//line sql.y:5181
{
yyLOCAL = LeftJoinType
}
yyVAL.union = yyLOCAL
- case 985:
+ case 986:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5177
+//line sql.y:5185
{
yyLOCAL = LeftJoinType
}
yyVAL.union = yyLOCAL
- case 986:
+ case 987:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5181
+//line sql.y:5189
{
yyLOCAL = RightJoinType
}
yyVAL.union = yyLOCAL
- case 987:
+ case 988:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5185
+//line sql.y:5193
{
yyLOCAL = RightJoinType
}
yyVAL.union = yyLOCAL
- case 988:
+ case 989:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5191
+//line sql.y:5199
{
yyLOCAL = NaturalJoinType
}
yyVAL.union = yyLOCAL
- case 989:
+ case 990:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL JoinType
-//line sql.y:5195
+//line sql.y:5203
{
if yyDollar[2].joinTypeUnion() == LeftJoinType {
yyLOCAL = NaturalLeftJoinType
@@ -17528,667 +17582,667 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 990:
+ case 991:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5205
+//line sql.y:5213
{
yyVAL.tableName = yyDollar[2].tableName
}
- case 991:
+ case 992:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5209
+//line sql.y:5217
{
yyVAL.tableName = yyDollar[1].tableName
}
- case 992:
+ case 993:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5215
+//line sql.y:5223
{
yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS}
}
- case 993:
+ case 994:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5219
+//line sql.y:5227
{
yyVAL.tableName = TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}
}
- case 994:
+ case 995:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5225
+//line sql.y:5233
{
yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS}
}
- case 995:
+ case 996:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5230
+//line sql.y:5238
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 996:
+ case 997:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5234
+//line sql.y:5242
{
yyLOCAL = yyDollar[1].indexHintsUnion()
}
yyVAL.union = yyLOCAL
- case 997:
+ case 998:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IndexHints
-//line sql.y:5240
+//line sql.y:5248
{
yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()}
}
yyVAL.union = yyLOCAL
- case 998:
+ case 999:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:5244
+//line sql.y:5252
{
yySLICE := (*IndexHints)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion())
}
- case 999:
+ case 1000:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5250
+//line sql.y:5258
{
yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1000:
+ case 1001:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5254
+//line sql.y:5262
{
yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1001:
+ case 1002:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5258
+//line sql.y:5266
{
yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1002:
+ case 1003:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5262
+//line sql.y:5270
{
yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1003:
+ case 1004:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5266
+//line sql.y:5274
{
yyLOCAL = &IndexHint{Type: UseVindexOp, Indexes: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1004:
+ case 1005:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *IndexHint
-//line sql.y:5270
+//line sql.y:5278
{
yyLOCAL = &IndexHint{Type: IgnoreVindexOp, Indexes: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1005:
+ case 1006:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5275
+//line sql.y:5283
{
yyLOCAL = NoForType
}
yyVAL.union = yyLOCAL
- case 1006:
+ case 1007:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5279
+//line sql.y:5287
{
yyLOCAL = JoinForType
}
yyVAL.union = yyLOCAL
- case 1007:
+ case 1008:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5283
+//line sql.y:5291
{
yyLOCAL = OrderByForType
}
yyVAL.union = yyLOCAL
- case 1008:
+ case 1009:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL IndexHintForType
-//line sql.y:5287
+//line sql.y:5295
{
yyLOCAL = GroupByForType
}
yyVAL.union = yyLOCAL
- case 1009:
+ case 1010:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5293
+//line sql.y:5301
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1010:
+ case 1011:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5297
+//line sql.y:5305
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1011:
+ case 1012:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5304
+//line sql.y:5312
{
yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1012:
+ case 1013:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5308
+//line sql.y:5316
{
yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1013:
+ case 1014:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5312
+//line sql.y:5320
{
yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1014:
+ case 1015:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5316
+//line sql.y:5324
{
yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1015:
+ case 1016:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5320
+//line sql.y:5328
{
yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()}
}
yyVAL.union = yyLOCAL
- case 1016:
+ case 1017:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5324
+//line sql.y:5332
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1017:
+ case 1018:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5328
+//line sql.y:5336
{
yyLOCAL = &AssignmentExpr{Left: yyDollar[1].variableUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1018:
+ case 1019:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5332
+//line sql.y:5340
{
yyLOCAL = &MemberOfExpr{Value: yyDollar[1].exprUnion(), JSONArr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1019:
+ case 1020:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5338
+//line sql.y:5346
{
}
- case 1020:
+ case 1021:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5341
+//line sql.y:5349
{
}
- case 1021:
+ case 1022:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5346
+//line sql.y:5354
{
yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp}
}
yyVAL.union = yyLOCAL
- case 1022:
+ case 1023:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5350
+//line sql.y:5358
{
yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp}
}
yyVAL.union = yyLOCAL
- case 1023:
+ case 1024:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5354
+//line sql.y:5362
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1024:
+ case 1025:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5358
+//line sql.y:5366
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()}
}
yyVAL.union = yyLOCAL
- case 1025:
+ case 1026:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5362
+//line sql.y:5370
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()}
}
yyVAL.union = yyLOCAL
- case 1026:
+ case 1027:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5366
+//line sql.y:5374
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: All, Right: yyDollar[4].subqueryUnion()}
}
yyVAL.union = yyLOCAL
- case 1027:
+ case 1028:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5370
+//line sql.y:5378
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1028:
+ case 1029:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5376
+//line sql.y:5384
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()}
}
yyVAL.union = yyLOCAL
- case 1029:
+ case 1030:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5380
+//line sql.y:5388
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()}
}
yyVAL.union = yyLOCAL
- case 1030:
+ case 1031:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5384
+//line sql.y:5392
{
yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1031:
+ case 1032:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5388
+//line sql.y:5396
{
yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1032:
+ case 1033:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5392
+//line sql.y:5400
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1033:
+ case 1034:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5396
+//line sql.y:5404
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1034:
+ case 1035:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5400
+//line sql.y:5408
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1035:
+ case 1036:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5404
+//line sql.y:5412
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1036:
+ case 1037:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5408
+//line sql.y:5416
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1037:
+ case 1038:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5412
+//line sql.y:5420
{
yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1038:
+ case 1039:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5416
+//line sql.y:5424
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1039:
+ case 1040:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5422
+//line sql.y:5430
{
}
- case 1040:
+ case 1041:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5425
+//line sql.y:5433
{
}
- case 1041:
+ case 1042:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5431
+//line sql.y:5439
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1042:
+ case 1043:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5435
+//line sql.y:5443
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1043:
+ case 1044:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5439
+//line sql.y:5447
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1044:
+ case 1045:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5443
+//line sql.y:5451
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1045:
+ case 1046:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5447
+//line sql.y:5455
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1046:
+ case 1047:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5451
+//line sql.y:5459
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1047:
+ case 1048:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5455
+//line sql.y:5463
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1048:
+ case 1049:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5459
+//line sql.y:5467
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1049:
+ case 1050:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5463
+//line sql.y:5471
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1050:
+ case 1051:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5467
+//line sql.y:5475
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1051:
+ case 1052:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5471
+//line sql.y:5479
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1052:
+ case 1053:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5475
+//line sql.y:5483
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1053:
+ case 1054:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5479
+//line sql.y:5487
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1054:
+ case 1055:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5483
+//line sql.y:5491
{
yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1055:
+ case 1056:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5487
+//line sql.y:5495
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1056:
+ case 1057:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5493
+//line sql.y:5501
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1057:
+ case 1058:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5497
+//line sql.y:5505
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1058:
+ case 1059:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5501
+//line sql.y:5509
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1059:
+ case 1060:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5505
+//line sql.y:5513
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1060:
+ case 1061:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5509
+//line sql.y:5517
{
yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str}
}
yyVAL.union = yyLOCAL
- case 1061:
+ case 1062:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5513
+//line sql.y:5521
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1062:
+ case 1063:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5517
+//line sql.y:5525
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1063:
+ case 1064:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5521
+//line sql.y:5529
{
yyLOCAL = yyDollar[1].variableUnion()
}
yyVAL.union = yyLOCAL
- case 1064:
+ case 1065:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5525
+//line sql.y:5533
{
yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals?
}
yyVAL.union = yyLOCAL
- case 1065:
+ case 1066:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5529
+//line sql.y:5537
{
yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1066:
+ case 1067:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5533
+//line sql.y:5541
{
yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1067:
+ case 1068:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5537
+//line sql.y:5545
{
yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1068:
+ case 1069:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5541
+//line sql.y:5549
{
yyLOCAL = yyDollar[1].subqueryUnion()
}
yyVAL.union = yyLOCAL
- case 1069:
+ case 1070:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5545
+//line sql.y:5553
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1070:
+ case 1071:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5549
+//line sql.y:5557
{
yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()}
}
yyVAL.union = yyLOCAL
- case 1071:
+ case 1072:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5553
+//line sql.y:5561
{
yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNamesUnion(), Expr: yyDollar[5].exprUnion(), Option: yyDollar[6].matchExprOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1072:
+ case 1073:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5557
+//line sql.y:5565
{
yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 1073:
+ case 1074:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5561
+//line sql.y:5569
{
yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1074:
+ case 1075:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5565
+//line sql.y:5573
{
yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str}
}
yyVAL.union = yyLOCAL
- case 1075:
+ case 1076:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5569
+//line sql.y:5577
{
// From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary
// To convert a string expression to a binary string, these constructs are equivalent:
@@ -18197,3218 +18251,3218 @@ yydefault:
yyLOCAL = &ConvertExpr{Expr: yyDollar[2].exprUnion(), Type: &ConvertType{Type: yyDollar[1].str}}
}
yyVAL.union = yyLOCAL
- case 1076:
+ case 1077:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5577
+//line sql.y:5585
{
yyLOCAL = &Default{ColName: yyDollar[2].str}
}
yyVAL.union = yyLOCAL
- case 1077:
+ case 1078:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5581
+//line sql.y:5589
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAddLeft, Date: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion(), Interval: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1078:
+ case 1079:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5585
+//line sql.y:5593
{
yyLOCAL = &IntervalFuncExpr{Expr: yyDollar[3].exprUnion(), Exprs: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1079:
+ case 1080:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5589
+//line sql.y:5597
{
yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}}
}
yyVAL.union = yyLOCAL
- case 1080:
+ case 1081:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5593
+//line sql.y:5601
{
yyLOCAL = &JSONUnquoteExpr{JSONValue: &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}}}
}
yyVAL.union = yyLOCAL
- case 1081:
+ case 1082:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5599
+//line sql.y:5607
{
yyLOCAL = yyDollar[1].colNamesUnion()
}
yyVAL.union = yyLOCAL
- case 1082:
+ case 1083:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5603
+//line sql.y:5611
{
yyLOCAL = yyDollar[2].colNamesUnion()
}
yyVAL.union = yyLOCAL
- case 1083:
+ case 1084:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*ColName
-//line sql.y:5609
+//line sql.y:5617
{
yyLOCAL = []*ColName{yyDollar[1].colNameUnion()}
}
yyVAL.union = yyLOCAL
- case 1084:
+ case 1085:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5613
+//line sql.y:5621
{
yySLICE := (*[]*ColName)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].colNameUnion())
}
- case 1085:
+ case 1086:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TrimType
-//line sql.y:5619
+//line sql.y:5627
{
yyLOCAL = BothTrimType
}
yyVAL.union = yyLOCAL
- case 1086:
+ case 1087:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TrimType
-//line sql.y:5623
+//line sql.y:5631
{
yyLOCAL = LeadingTrimType
}
yyVAL.union = yyLOCAL
- case 1087:
+ case 1088:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL TrimType
-//line sql.y:5627
+//line sql.y:5635
{
yyLOCAL = TrailingTrimType
}
yyVAL.union = yyLOCAL
- case 1088:
+ case 1089:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FrameUnitType
-//line sql.y:5633
+//line sql.y:5641
{
yyLOCAL = FrameRowsType
}
yyVAL.union = yyLOCAL
- case 1089:
+ case 1090:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FrameUnitType
-//line sql.y:5637
+//line sql.y:5645
{
yyLOCAL = FrameRangeType
}
yyVAL.union = yyLOCAL
- case 1090:
+ case 1091:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5644
+//line sql.y:5652
{
yyLOCAL = CumeDistExprType
}
yyVAL.union = yyLOCAL
- case 1091:
+ case 1092:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5648
+//line sql.y:5656
{
yyLOCAL = DenseRankExprType
}
yyVAL.union = yyLOCAL
- case 1092:
+ case 1093:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5652
+//line sql.y:5660
{
yyLOCAL = PercentRankExprType
}
yyVAL.union = yyLOCAL
- case 1093:
+ case 1094:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5656
+//line sql.y:5664
{
yyLOCAL = RankExprType
}
yyVAL.union = yyLOCAL
- case 1094:
+ case 1095:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ArgumentLessWindowExprType
-//line sql.y:5660
+//line sql.y:5668
{
yyLOCAL = RowNumberExprType
}
yyVAL.union = yyLOCAL
- case 1095:
+ case 1096:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5666
+//line sql.y:5674
{
yyLOCAL = &FramePoint{Type: CurrentRowType}
}
yyVAL.union = yyLOCAL
- case 1096:
+ case 1097:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5670
+//line sql.y:5678
{
yyLOCAL = &FramePoint{Type: UnboundedPrecedingType}
}
yyVAL.union = yyLOCAL
- case 1097:
+ case 1098:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5674
+//line sql.y:5682
{
yyLOCAL = &FramePoint{Type: UnboundedFollowingType}
}
yyVAL.union = yyLOCAL
- case 1098:
+ case 1099:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5678
+//line sql.y:5686
{
yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1099:
+ case 1100:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5682
+//line sql.y:5690
{
yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1100:
+ case 1101:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5686
+//line sql.y:5694
{
yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1101:
+ case 1102:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *FramePoint
-//line sql.y:5690
+//line sql.y:5698
{
yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1102:
+ case 1103:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5695
+//line sql.y:5703
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1103:
+ case 1104:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5699
+//line sql.y:5707
{
yyLOCAL = yyDollar[1].frameClauseUnion()
}
yyVAL.union = yyLOCAL
- case 1104:
+ case 1105:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5705
+//line sql.y:5713
{
yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[2].framePointUnion()}
}
yyVAL.union = yyLOCAL
- case 1105:
+ case 1106:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *FrameClause
-//line sql.y:5709
+//line sql.y:5717
{
yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[3].framePointUnion(), End: yyDollar[5].framePointUnion()}
}
yyVAL.union = yyLOCAL
- case 1106:
+ case 1107:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5714
+//line sql.y:5722
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1107:
+ case 1108:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5718
+//line sql.y:5726
{
yyLOCAL = yyDollar[3].exprsUnion()
}
yyVAL.union = yyLOCAL
- case 1108:
+ case 1109:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5723
+//line sql.y:5731
{
yyVAL.identifierCI = IdentifierCI{}
}
- case 1109:
+ case 1110:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:5727
+//line sql.y:5735
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 1110:
+ case 1111:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *WindowSpecification
-//line sql.y:5733
+//line sql.y:5741
{
yyLOCAL = &WindowSpecification{Name: yyDollar[1].identifierCI, PartitionClause: yyDollar[2].exprsUnion(), OrderClause: yyDollar[3].orderByUnion(), FrameClause: yyDollar[4].frameClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1111:
+ case 1112:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5739
+//line sql.y:5747
{
yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecificationUnion()}
}
yyVAL.union = yyLOCAL
- case 1112:
+ case 1113:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5743
+//line sql.y:5751
{
yyLOCAL = &OverClause{WindowName: yyDollar[2].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1113:
+ case 1114:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5749
+//line sql.y:5757
{
yyLOCAL = yyDollar[1].overClauseUnion()
}
yyVAL.union = yyLOCAL
- case 1114:
+ case 1115:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *OverClause
-//line sql.y:5753
+//line sql.y:5761
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1115:
+ case 1116:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *NullTreatmentClause
-//line sql.y:5758
+//line sql.y:5766
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1117:
+ case 1118:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *NullTreatmentClause
-//line sql.y:5765
+//line sql.y:5773
{
yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1118:
+ case 1119:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL NullTreatmentType
-//line sql.y:5771
+//line sql.y:5779
{
yyLOCAL = RespectNullsType
}
yyVAL.union = yyLOCAL
- case 1119:
+ case 1120:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL NullTreatmentType
-//line sql.y:5775
+//line sql.y:5783
{
yyLOCAL = IgnoreNullsType
}
yyVAL.union = yyLOCAL
- case 1120:
+ case 1121:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FirstOrLastValueExprType
-//line sql.y:5781
+//line sql.y:5789
{
yyLOCAL = FirstValueExprType
}
yyVAL.union = yyLOCAL
- case 1121:
+ case 1122:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL FirstOrLastValueExprType
-//line sql.y:5785
+//line sql.y:5793
{
yyLOCAL = LastValueExprType
}
yyVAL.union = yyLOCAL
- case 1122:
+ case 1123:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL FromFirstLastType
-//line sql.y:5791
+//line sql.y:5799
{
yyLOCAL = FromFirstType
}
yyVAL.union = yyLOCAL
- case 1123:
+ case 1124:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL FromFirstLastType
-//line sql.y:5795
+//line sql.y:5803
{
yyLOCAL = FromLastType
}
yyVAL.union = yyLOCAL
- case 1124:
+ case 1125:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *FromFirstLastClause
-//line sql.y:5800
+//line sql.y:5808
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1126:
+ case 1127:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *FromFirstLastClause
-//line sql.y:5807
+//line sql.y:5815
{
yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1127:
+ case 1128:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LagLeadExprType
-//line sql.y:5813
+//line sql.y:5821
{
yyLOCAL = LagExprType
}
yyVAL.union = yyLOCAL
- case 1128:
+ case 1129:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL LagLeadExprType
-//line sql.y:5817
+//line sql.y:5825
{
yyLOCAL = LeadExprType
}
yyVAL.union = yyLOCAL
- case 1129:
+ case 1130:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *WindowDefinition
-//line sql.y:5823
+//line sql.y:5831
{
yyLOCAL = &WindowDefinition{Name: yyDollar[1].identifierCI, WindowSpec: yyDollar[4].windowSpecificationUnion()}
}
yyVAL.union = yyLOCAL
- case 1130:
+ case 1131:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL WindowDefinitions
-//line sql.y:5829
+//line sql.y:5837
{
yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinitionUnion()}
}
yyVAL.union = yyLOCAL
- case 1131:
+ case 1132:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5833
+//line sql.y:5841
{
yySLICE := (*WindowDefinitions)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].windowDefinitionUnion())
}
- case 1132:
+ case 1133:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:5839
+//line sql.y:5847
{
yyVAL.str = ""
}
- case 1133:
+ case 1134:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5843
+//line sql.y:5851
{
yyVAL.str = string(yyDollar[2].identifierCI.String())
}
- case 1134:
+ case 1135:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL BoolVal
-//line sql.y:5849
+//line sql.y:5857
{
yyLOCAL = BoolVal(true)
}
yyVAL.union = yyLOCAL
- case 1135:
+ case 1136:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL BoolVal
-//line sql.y:5853
+//line sql.y:5861
{
yyLOCAL = BoolVal(false)
}
yyVAL.union = yyLOCAL
- case 1136:
+ case 1137:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5860
+//line sql.y:5868
{
yyLOCAL = IsTrueOp
}
yyVAL.union = yyLOCAL
- case 1137:
+ case 1138:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5864
+//line sql.y:5872
{
yyLOCAL = IsNotTrueOp
}
yyVAL.union = yyLOCAL
- case 1138:
+ case 1139:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5868
+//line sql.y:5876
{
yyLOCAL = IsFalseOp
}
yyVAL.union = yyLOCAL
- case 1139:
+ case 1140:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL IsExprOperator
-//line sql.y:5872
+//line sql.y:5880
{
yyLOCAL = IsNotFalseOp
}
yyVAL.union = yyLOCAL
- case 1140:
+ case 1141:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5878
+//line sql.y:5886
{
yyLOCAL = yyDollar[1].comparisonExprOperatorUnion()
}
yyVAL.union = yyLOCAL
- case 1141:
+ case 1142:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5882
+//line sql.y:5890
{
yyLOCAL = NullSafeEqualOp
}
yyVAL.union = yyLOCAL
- case 1142:
+ case 1143:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5888
+//line sql.y:5896
{
yyLOCAL = EqualOp
}
yyVAL.union = yyLOCAL
- case 1143:
+ case 1144:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5892
+//line sql.y:5900
{
yyLOCAL = LessThanOp
}
yyVAL.union = yyLOCAL
- case 1144:
+ case 1145:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5896
+//line sql.y:5904
{
yyLOCAL = GreaterThanOp
}
yyVAL.union = yyLOCAL
- case 1145:
+ case 1146:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5900
+//line sql.y:5908
{
yyLOCAL = LessEqualOp
}
yyVAL.union = yyLOCAL
- case 1146:
+ case 1147:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5904
+//line sql.y:5912
{
yyLOCAL = GreaterEqualOp
}
yyVAL.union = yyLOCAL
- case 1147:
+ case 1148:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ComparisonExprOperator
-//line sql.y:5908
+//line sql.y:5916
{
yyLOCAL = NotEqualOp
}
yyVAL.union = yyLOCAL
- case 1148:
+ case 1149:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColTuple
-//line sql.y:5914
+//line sql.y:5922
{
yyLOCAL = yyDollar[1].valTupleUnion()
}
yyVAL.union = yyLOCAL
- case 1149:
+ case 1150:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColTuple
-//line sql.y:5918
+//line sql.y:5926
{
yyLOCAL = yyDollar[1].subqueryUnion()
}
yyVAL.union = yyLOCAL
- case 1150:
+ case 1151:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ColTuple
-//line sql.y:5922
+//line sql.y:5930
{
yyLOCAL = ListArg(yyDollar[1].str[2:])
markBindVariable(yylex, yyDollar[1].str[2:])
}
yyVAL.union = yyLOCAL
- case 1151:
+ case 1152:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Subquery
-//line sql.y:5929
+//line sql.y:5937
{
yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1152:
+ case 1153:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:5935
+//line sql.y:5943
{
yyLOCAL = Exprs{yyDollar[1].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1153:
+ case 1154:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:5939
+//line sql.y:5947
{
yySLICE := (*Exprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].exprUnion())
}
- case 1154:
+ case 1155:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5949
+//line sql.y:5957
{
yyLOCAL = &FuncExpr{Name: yyDollar[1].identifierCI, Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1155:
+ case 1156:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5953
+//line sql.y:5961
{
yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCI, Exprs: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1156:
+ case 1157:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5963
+//line sql.y:5971
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1157:
+ case 1158:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5967
+//line sql.y:5975
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1158:
+ case 1159:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5971
+//line sql.y:5979
{
yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1159:
+ case 1160:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5975
+//line sql.y:5983
{
yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1160:
+ case 1161:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5979
+//line sql.y:5987
{
yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1161:
+ case 1162:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5983
+//line sql.y:5991
{
yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1162:
+ case 1163:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5987
+//line sql.y:5995
{
yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1163:
+ case 1164:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5991
+//line sql.y:5999
{
yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1164:
+ case 1165:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5995
+//line sql.y:6003
{
yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()}
}
yyVAL.union = yyLOCAL
- case 1165:
+ case 1166:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:5999
+//line sql.y:6007
{
yyLOCAL = &InsertExpr{Str: yyDollar[3].exprUnion(), Pos: yyDollar[5].exprUnion(), Len: yyDollar[7].exprUnion(), NewStr: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1166:
+ case 1167:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6003
+//line sql.y:6011
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1167:
+ case 1168:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6014
+//line sql.y:6022
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")}
}
yyVAL.union = yyLOCAL
- case 1168:
+ case 1169:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6018
+//line sql.y:6026
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1169:
+ case 1170:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6024
+//line sql.y:6032
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")}
}
yyVAL.union = yyLOCAL
- case 1170:
+ case 1171:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6028
+//line sql.y:6036
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")}
}
yyVAL.union = yyLOCAL
- case 1171:
+ case 1172:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6032
+//line sql.y:6040
{
yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
- case 1172:
+ case 1173:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6037
+//line sql.y:6045
{
yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
- case 1173:
+ case 1174:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6042
+//line sql.y:6050
{
yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integerUnion()}
}
yyVAL.union = yyLOCAL
- case 1174:
+ case 1175:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6046
+//line sql.y:6054
{
yyLOCAL = &CountStar{OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1175:
+ case 1176:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6050
+//line sql.y:6058
{
yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1176:
+ case 1177:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6054
+//line sql.y:6062
{
yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1177:
+ case 1178:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6058
+//line sql.y:6066
{
yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1178:
+ case 1179:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6062
+//line sql.y:6070
{
yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1179:
+ case 1180:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6066
+//line sql.y:6074
{
yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1180:
+ case 1181:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6070
+//line sql.y:6078
{
yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1181:
+ case 1182:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6074
+//line sql.y:6082
{
yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1182:
+ case 1183:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6078
+//line sql.y:6086
{
yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1183:
+ case 1184:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6082
+//line sql.y:6090
{
yyLOCAL = &Std{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1184:
+ case 1185:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6086
+//line sql.y:6094
{
yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1185:
+ case 1186:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6090
+//line sql.y:6098
{
yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1186:
+ case 1187:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6094
+//line sql.y:6102
{
yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1187:
+ case 1188:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6098
+//line sql.y:6106
{
yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1188:
+ case 1189:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6102
+//line sql.y:6110
{
yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1189:
+ case 1190:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6106
+//line sql.y:6114
{
yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1190:
+ case 1191:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6110
+//line sql.y:6118
{
yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].exprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()}
}
yyVAL.union = yyLOCAL
- case 1191:
+ case 1192:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6114
+//line sql.y:6122
{
yyLOCAL = &AnyValue{Arg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1192:
+ case 1193:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6118
+//line sql.y:6126
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1193:
+ case 1194:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6122
+//line sql.y:6130
{
yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalTypeUnion(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1194:
+ case 1195:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6126
+//line sql.y:6134
{
yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1195:
+ case 1196:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6130
+//line sql.y:6138
{
yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1196:
+ case 1197:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6134
+//line sql.y:6142
{
yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1197:
+ case 1198:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6138
+//line sql.y:6146
{
yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1198:
+ case 1199:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6142
+//line sql.y:6150
{
yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1199:
+ case 1200:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6146
+//line sql.y:6154
{
yyLOCAL = &JSONArrayAgg{Expr: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1200:
+ case 1201:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6150
+//line sql.y:6158
{
yyLOCAL = &JSONObjectAgg{Key: yyDollar[3].exprUnion(), Value: yyDollar[5].exprUnion(), OverClause: yyDollar[7].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1201:
+ case 1202:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6154
+//line sql.y:6162
{
yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1202:
+ case 1203:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6158
+//line sql.y:6166
{
yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1203:
+ case 1204:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6162
+//line sql.y:6170
{
yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1204:
+ case 1205:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6166
+//line sql.y:6174
{
yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1205:
+ case 1206:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6170
+//line sql.y:6178
{
yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1206:
+ case 1207:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6174
+//line sql.y:6182
{
yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion(), Charset: yyDollar[5].str}
}
yyVAL.union = yyLOCAL
- case 1207:
+ case 1208:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6178
+//line sql.y:6186
{
yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1208:
+ case 1209:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6182
+//line sql.y:6190
{
yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1209:
+ case 1210:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6186
+//line sql.y:6194
{
yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion(), Pos: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1210:
+ case 1211:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6190
+//line sql.y:6198
{
yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1211:
+ case 1212:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6194
+//line sql.y:6202
{
yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1212:
+ case 1213:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6198
+//line sql.y:6206
{
yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1213:
+ case 1214:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6202
+//line sql.y:6210
{
yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1214:
+ case 1215:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6206
+//line sql.y:6214
{
yyLOCAL = &LockingFunc{Type: ReleaseAllLocks}
}
yyVAL.union = yyLOCAL
- case 1215:
+ case 1216:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6210
+//line sql.y:6218
{
yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1216:
+ case 1217:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6214
+//line sql.y:6222
{
yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1217:
+ case 1218:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6218
+//line sql.y:6226
{
yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1218:
+ case 1219:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6222
+//line sql.y:6230
{
yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1219:
+ case 1220:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6226
+//line sql.y:6234
{
yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1220:
+ case 1221:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6230
+//line sql.y:6238
{
yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1221:
+ case 1222:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6234
+//line sql.y:6242
{
yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1222:
+ case 1223:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6238
+//line sql.y:6246
{
yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1223:
+ case 1224:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6242
+//line sql.y:6250
{
yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1224:
+ case 1225:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6246
+//line sql.y:6254
{
yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1225:
+ case 1226:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6250
+//line sql.y:6258
{
yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1226:
+ case 1227:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6254
+//line sql.y:6262
{
yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1227:
+ case 1228:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6258
+//line sql.y:6266
{
yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1228:
+ case 1229:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6262
+//line sql.y:6270
{
yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1229:
+ case 1230:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6266
+//line sql.y:6274
{
yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1230:
+ case 1231:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6270
+//line sql.y:6278
{
yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1231:
+ case 1232:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6274
+//line sql.y:6282
{
yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1232:
+ case 1233:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6278
+//line sql.y:6286
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1233:
+ case 1234:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6282
+//line sql.y:6290
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1234:
+ case 1235:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6286
+//line sql.y:6294
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1235:
+ case 1236:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6290
+//line sql.y:6298
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1236:
+ case 1237:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6294
+//line sql.y:6302
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1237:
+ case 1238:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6298
+//line sql.y:6306
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1238:
+ case 1239:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6302
+//line sql.y:6310
{
yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1239:
+ case 1240:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6306
+//line sql.y:6314
{
yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1240:
+ case 1241:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6310
+//line sql.y:6318
{
yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1241:
+ case 1242:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6314
+//line sql.y:6322
{
yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1242:
+ case 1243:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6318
+//line sql.y:6326
{
yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1243:
+ case 1244:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6322
+//line sql.y:6330
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1244:
+ case 1245:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6326
+//line sql.y:6334
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1245:
+ case 1246:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6330
+//line sql.y:6338
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1246:
+ case 1247:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6334
+//line sql.y:6342
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1247:
+ case 1248:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6338
+//line sql.y:6346
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1248:
+ case 1249:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6342
+//line sql.y:6350
{
yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1249:
+ case 1250:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6346
+//line sql.y:6354
{
yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1250:
+ case 1251:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6350
+//line sql.y:6358
{
yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1251:
+ case 1252:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6354
+//line sql.y:6362
{
yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1252:
+ case 1253:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6358
+//line sql.y:6366
{
yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1253:
+ case 1254:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6362
+//line sql.y:6370
{
yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1254:
+ case 1255:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6366
+//line sql.y:6374
{
yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1255:
+ case 1256:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6370
+//line sql.y:6378
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1256:
+ case 1257:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6374
+//line sql.y:6382
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1257:
+ case 1258:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6378
+//line sql.y:6386
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1258:
+ case 1259:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6382
+//line sql.y:6390
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1259:
+ case 1260:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6386
+//line sql.y:6394
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1260:
+ case 1261:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6390
+//line sql.y:6398
{
yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1261:
+ case 1262:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6394
+//line sql.y:6402
{
yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1262:
+ case 1263:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6398
+//line sql.y:6406
{
yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1263:
+ case 1264:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6402
+//line sql.y:6410
{
yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1264:
+ case 1265:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6406
+//line sql.y:6414
{
yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1265:
+ case 1266:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6410
+//line sql.y:6418
{
yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1266:
+ case 1267:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6414
+//line sql.y:6422
{
yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1267:
+ case 1268:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6418
+//line sql.y:6426
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1268:
+ case 1269:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6422
+//line sql.y:6430
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1269:
+ case 1270:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6426
+//line sql.y:6434
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1270:
+ case 1271:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6430
+//line sql.y:6438
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1271:
+ case 1272:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6434
+//line sql.y:6442
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1272:
+ case 1273:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6438
+//line sql.y:6446
{
yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1273:
+ case 1274:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6442
+//line sql.y:6450
{
yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1274:
+ case 1275:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6446
+//line sql.y:6454
{
yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1275:
+ case 1276:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6450
+//line sql.y:6458
{
yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1276:
+ case 1277:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6454
+//line sql.y:6462
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1277:
+ case 1278:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6458
+//line sql.y:6466
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1278:
+ case 1279:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6462
+//line sql.y:6470
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1279:
+ case 1280:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6466
+//line sql.y:6474
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1280:
+ case 1281:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6470
+//line sql.y:6478
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1281:
+ case 1282:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6474
+//line sql.y:6482
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1282:
+ case 1283:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6478
+//line sql.y:6486
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1283:
+ case 1284:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6482
+//line sql.y:6490
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1284:
+ case 1285:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6486
+//line sql.y:6494
{
yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1285:
+ case 1286:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6490
+//line sql.y:6498
{
yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1286:
+ case 1287:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6494
+//line sql.y:6502
{
yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1287:
+ case 1288:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6498
+//line sql.y:6506
{
yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1288:
+ case 1289:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6502
+//line sql.y:6510
{
yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1289:
+ case 1290:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6506
+//line sql.y:6514
{
yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1290:
+ case 1291:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6510
+//line sql.y:6518
{
yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1291:
+ case 1292:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6514
+//line sql.y:6522
{
yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1292:
+ case 1293:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6518
+//line sql.y:6526
{
yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1293:
+ case 1294:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6522
+//line sql.y:6530
{
yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1294:
+ case 1295:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6526
+//line sql.y:6534
{
yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1295:
+ case 1296:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6530
+//line sql.y:6538
{
yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1296:
+ case 1297:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6534
+//line sql.y:6542
{
yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1297:
+ case 1298:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6538
+//line sql.y:6546
{
yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1298:
+ case 1299:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6542
+//line sql.y:6550
{
yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].exprUnion(), Latitude: yyDollar[5].exprUnion(), MaxLength: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1299:
+ case 1300:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6546
+//line sql.y:6554
{
yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].exprUnion(), MaxLength: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1300:
+ case 1301:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6550
+//line sql.y:6558
{
yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1301:
+ case 1302:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6554
+//line sql.y:6562
{
yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1302:
+ case 1303:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6558
+//line sql.y:6566
{
yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].exprUnion(), SridOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1303:
+ case 1304:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6562
+//line sql.y:6570
{
yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1304:
+ case 1305:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6566
+//line sql.y:6574
{
yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1305:
+ case 1306:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6570
+//line sql.y:6578
{
yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion(), Srid: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1306:
+ case 1307:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6574
+//line sql.y:6582
{
yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1307:
+ case 1308:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6578
+//line sql.y:6586
{
yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1308:
+ case 1309:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6582
+//line sql.y:6590
{
yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion(), Bitmask: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1309:
+ case 1310:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6586
+//line sql.y:6594
{
yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1310:
+ case 1311:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6590
+//line sql.y:6598
{
yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1311:
+ case 1312:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6594
+//line sql.y:6602
{
yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]}
}
yyVAL.union = yyLOCAL
- case 1312:
+ case 1313:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6598
+//line sql.y:6606
{
yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1313:
+ case 1314:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6602
+//line sql.y:6610
{
yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1314:
+ case 1315:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6606
+//line sql.y:6614
{
yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1315:
+ case 1316:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6610
+//line sql.y:6618
{
yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1316:
+ case 1317:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6614
+//line sql.y:6622
{
yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1317:
+ case 1318:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6618
+//line sql.y:6626
{
yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1318:
+ case 1319:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6622
+//line sql.y:6630
{
yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]}
}
yyVAL.union = yyLOCAL
- case 1319:
+ case 1320:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6626
+//line sql.y:6634
{
yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1320:
+ case 1321:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6630
+//line sql.y:6638
{
yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
- case 1321:
+ case 1322:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6634
+//line sql.y:6642
{
yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
- case 1322:
+ case 1323:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6638
+//line sql.y:6646
{
yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()}
}
yyVAL.union = yyLOCAL
- case 1323:
+ case 1324:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6642
+//line sql.y:6650
{
yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1324:
+ case 1325:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6646
+//line sql.y:6654
{
yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1325:
+ case 1326:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6650
+//line sql.y:6658
{
yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1326:
+ case 1327:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6654
+//line sql.y:6662
{
yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1327:
+ case 1328:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6658
+//line sql.y:6666
{
yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1328:
+ case 1329:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6662
+//line sql.y:6670
{
yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1329:
+ case 1330:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6666
+//line sql.y:6674
{
yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1330:
+ case 1331:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6670
+//line sql.y:6678
{
yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1331:
+ case 1332:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6674
+//line sql.y:6682
{
yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1332:
+ case 1333:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6678
+//line sql.y:6686
{
yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()}
}
yyVAL.union = yyLOCAL
- case 1333:
+ case 1334:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6682
+//line sql.y:6690
{
yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1334:
+ case 1335:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6686
+//line sql.y:6694
{
yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1335:
+ case 1336:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6690
+//line sql.y:6698
{
yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1336:
+ case 1337:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6694
+//line sql.y:6702
{
yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1337:
+ case 1338:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6698
+//line sql.y:6706
{
yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1338:
+ case 1339:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6702
+//line sql.y:6710
{
yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1339:
+ case 1340:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6706
+//line sql.y:6714
{
yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1340:
+ case 1341:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6710
+//line sql.y:6718
{
yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1341:
+ case 1342:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6714
+//line sql.y:6722
{
yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1342:
+ case 1343:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6718
+//line sql.y:6726
{
yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1343:
+ case 1344:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6722
+//line sql.y:6730
{
yyLOCAL = &PointExpr{XCordinate: yyDollar[3].exprUnion(), YCordinate: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1344:
+ case 1345:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6726
+//line sql.y:6734
{
yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1345:
+ case 1346:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6730
+//line sql.y:6738
{
yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1346:
+ case 1347:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6734
+//line sql.y:6742
{
yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1347:
+ case 1348:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6738
+//line sql.y:6746
{
yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1348:
+ case 1349:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6742
+//line sql.y:6750
{
yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1349:
+ case 1350:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6746
+//line sql.y:6754
{
yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()}
}
yyVAL.union = yyLOCAL
- case 1350:
+ case 1351:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6750
+//line sql.y:6758
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1351:
+ case 1352:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6754
+//line sql.y:6762
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
}
yyVAL.union = yyLOCAL
- case 1352:
+ case 1353:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6758
+//line sql.y:6766
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1353:
+ case 1354:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6762
+//line sql.y:6770
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1354:
+ case 1355:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6766
+//line sql.y:6774
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()}
}
yyVAL.union = yyLOCAL
- case 1355:
+ case 1356:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6770
+//line sql.y:6778
{
yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone}
}
yyVAL.union = yyLOCAL
- case 1360:
+ case 1361:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6780
+//line sql.y:6788
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1361:
+ case 1362:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6784
+//line sql.y:6792
{
yyLOCAL = NewIntLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
- case 1362:
+ case 1363:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6788
+//line sql.y:6796
{
yyLOCAL = yyDollar[1].variableUnion()
}
yyVAL.union = yyLOCAL
- case 1363:
+ case 1364:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6792
+//line sql.y:6800
{
yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
}
yyVAL.union = yyLOCAL
- case 1364:
+ case 1365:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6797
+//line sql.y:6805
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1365:
+ case 1366:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6801
+//line sql.y:6809
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1366:
+ case 1367:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6807
+//line sql.y:6815
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1367:
+ case 1368:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6811
+//line sql.y:6819
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1368:
+ case 1369:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6815
+//line sql.y:6823
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1369:
+ case 1370:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6819
+//line sql.y:6827
{
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1370:
+ case 1371:
yyDollar = yyS[yypt-14 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6823
+//line sql.y:6831
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1371:
+ case 1372:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6828
+//line sql.y:6836
{
yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1372:
+ case 1373:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6832
+//line sql.y:6840
{
yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), MatchType: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1373:
+ case 1374:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6836
+//line sql.y:6844
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1374:
+ case 1375:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6840
+//line sql.y:6848
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1375:
+ case 1376:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6844
+//line sql.y:6852
{
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1376:
+ case 1377:
yyDollar = yyS[yypt-14 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6848
+//line sql.y:6856
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1377:
+ case 1378:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6853
+//line sql.y:6861
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1378:
+ case 1379:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6857
+//line sql.y:6865
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1379:
+ case 1380:
yyDollar = yyS[yypt-10 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6861
+//line sql.y:6869
{
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1380:
+ case 1381:
yyDollar = yyS[yypt-12 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6865
+//line sql.y:6873
{
// Match type is kept expression as TRIM( ' m ') is accepted
yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), MatchType: yyDollar[11].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1381:
+ case 1382:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6872
+//line sql.y:6880
{
yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1382:
+ case 1383:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6876
+//line sql.y:6884
{
yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion(), NewXML: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1383:
+ case 1384:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6882
+//line sql.y:6890
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatBytesType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1384:
+ case 1385:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6886
+//line sql.y:6894
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatPicoTimeType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1385:
+ case 1386:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6890
+//line sql.y:6898
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsCurrentThreadIDType}
}
yyVAL.union = yyLOCAL
- case 1386:
+ case 1387:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6894
+//line sql.y:6902
{
yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsThreadIDType, Argument: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1387:
+ case 1388:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6900
+//line sql.y:6908
{
yyLOCAL = >IDFuncExpr{Type: GTIDSubsetType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1388:
+ case 1389:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6904
+//line sql.y:6912
{
yyLOCAL = >IDFuncExpr{Type: GTIDSubtractType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1389:
+ case 1390:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6908
+//line sql.y:6916
{
yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1390:
+ case 1391:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6912
+//line sql.y:6920
{
yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1391:
+ case 1392:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6916
+//line sql.y:6924
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1392:
+ case 1393:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6920
+//line sql.y:6928
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1393:
+ case 1394:
yyDollar = yyS[yypt-8 : yypt+1]
var yyLOCAL Expr
-//line sql.y:6924
+//line sql.y:6932
{
yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion(), Channel: yyDollar[7].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1394:
+ case 1395:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:6929
+//line sql.y:6937
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1395:
+ case 1396:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:6933
+//line sql.y:6941
{
yyLOCAL = yyDollar[2].convertTypeUnion()
}
yyVAL.union = yyLOCAL
- case 1396:
+ case 1397:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6939
+//line sql.y:6947
{
yyLOCAL = IntervalDayHour
}
yyVAL.union = yyLOCAL
- case 1397:
+ case 1398:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6943
+//line sql.y:6951
{
yyLOCAL = IntervalDayMicrosecond
}
yyVAL.union = yyLOCAL
- case 1398:
+ case 1399:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6947
+//line sql.y:6955
{
yyLOCAL = IntervalDayMinute
}
yyVAL.union = yyLOCAL
- case 1399:
+ case 1400:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6951
+//line sql.y:6959
{
yyLOCAL = IntervalDaySecond
}
yyVAL.union = yyLOCAL
- case 1400:
+ case 1401:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6955
+//line sql.y:6963
{
yyLOCAL = IntervalHourMicrosecond
}
yyVAL.union = yyLOCAL
- case 1401:
+ case 1402:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6959
+//line sql.y:6967
{
yyLOCAL = IntervalHourMinute
}
yyVAL.union = yyLOCAL
- case 1402:
+ case 1403:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6963
+//line sql.y:6971
{
yyLOCAL = IntervalHourSecond
}
yyVAL.union = yyLOCAL
- case 1403:
+ case 1404:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6967
+//line sql.y:6975
{
yyLOCAL = IntervalMinuteMicrosecond
}
yyVAL.union = yyLOCAL
- case 1404:
+ case 1405:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6971
+//line sql.y:6979
{
yyLOCAL = IntervalMinuteSecond
}
yyVAL.union = yyLOCAL
- case 1405:
+ case 1406:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6975
+//line sql.y:6983
{
yyLOCAL = IntervalSecondMicrosecond
}
yyVAL.union = yyLOCAL
- case 1406:
+ case 1407:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6979
+//line sql.y:6987
{
yyLOCAL = IntervalYearMonth
}
yyVAL.union = yyLOCAL
- case 1407:
+ case 1408:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6983
+//line sql.y:6991
{
yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
- case 1408:
+ case 1409:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6987
+//line sql.y:6995
{
yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
- case 1409:
+ case 1410:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6991
+//line sql.y:6999
{
yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
- case 1410:
+ case 1411:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6995
+//line sql.y:7003
{
yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
- case 1411:
+ case 1412:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:6999
+//line sql.y:7007
{
yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
- case 1412:
+ case 1413:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7003
+//line sql.y:7011
{
yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
- case 1413:
+ case 1414:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7007
+//line sql.y:7015
{
yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
- case 1414:
+ case 1415:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7011
+//line sql.y:7019
{
yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
- case 1415:
+ case 1416:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7015
+//line sql.y:7023
{
yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
- case 1416:
+ case 1417:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7021
+//line sql.y:7029
{
yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
- case 1417:
+ case 1418:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7025
+//line sql.y:7033
{
yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
- case 1418:
+ case 1419:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7029
+//line sql.y:7037
{
yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
- case 1419:
+ case 1420:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7033
+//line sql.y:7041
{
yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
- case 1420:
+ case 1421:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7037
+//line sql.y:7045
{
yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
- case 1421:
+ case 1422:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7041
+//line sql.y:7049
{
yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
- case 1422:
+ case 1423:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7045
+//line sql.y:7053
{
yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
- case 1423:
+ case 1424:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7049
+//line sql.y:7057
{
yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
- case 1424:
+ case 1425:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7053
+//line sql.y:7061
{
yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
- case 1425:
+ case 1426:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7057
+//line sql.y:7065
{
yyLOCAL = IntervalDay
}
yyVAL.union = yyLOCAL
- case 1426:
+ case 1427:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7061
+//line sql.y:7069
{
yyLOCAL = IntervalWeek
}
yyVAL.union = yyLOCAL
- case 1427:
+ case 1428:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7065
+//line sql.y:7073
{
yyLOCAL = IntervalHour
}
yyVAL.union = yyLOCAL
- case 1428:
+ case 1429:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7069
+//line sql.y:7077
{
yyLOCAL = IntervalMinute
}
yyVAL.union = yyLOCAL
- case 1429:
+ case 1430:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7073
+//line sql.y:7081
{
yyLOCAL = IntervalMonth
}
yyVAL.union = yyLOCAL
- case 1430:
+ case 1431:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7077
+//line sql.y:7085
{
yyLOCAL = IntervalQuarter
}
yyVAL.union = yyLOCAL
- case 1431:
+ case 1432:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7081
+//line sql.y:7089
{
yyLOCAL = IntervalSecond
}
yyVAL.union = yyLOCAL
- case 1432:
+ case 1433:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7085
+//line sql.y:7093
{
yyLOCAL = IntervalMicrosecond
}
yyVAL.union = yyLOCAL
- case 1433:
+ case 1434:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL IntervalType
-//line sql.y:7089
+//line sql.y:7097
{
yyLOCAL = IntervalYear
}
yyVAL.union = yyLOCAL
- case 1436:
+ case 1437:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL int
-//line sql.y:7099
+//line sql.y:7107
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 1437:
+ case 1438:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL int
-//line sql.y:7103
+//line sql.y:7111
{
yyLOCAL = 0
}
yyVAL.union = yyLOCAL
- case 1438:
+ case 1439:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL int
-//line sql.y:7107
+//line sql.y:7115
{
yyLOCAL = convertStringToInt(yyDollar[2].str)
}
yyVAL.union = yyLOCAL
- case 1439:
+ case 1440:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7117
+//line sql.y:7125
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("if"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1440:
+ case 1441:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7121
+//line sql.y:7129
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("database"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1441:
+ case 1442:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7125
+//line sql.y:7133
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("schema"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1442:
+ case 1443:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7129
+//line sql.y:7137
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("mod"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1443:
+ case 1444:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7133
+//line sql.y:7141
{
yyLOCAL = &FuncExpr{Name: NewIdentifierCI("replace"), Exprs: yyDollar[3].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1444:
+ case 1445:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7139
+//line sql.y:7147
{
yyLOCAL = NoOption
}
yyVAL.union = yyLOCAL
- case 1445:
+ case 1446:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7143
+//line sql.y:7151
{
yyLOCAL = BooleanModeOpt
}
yyVAL.union = yyLOCAL
- case 1446:
+ case 1447:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7147
+//line sql.y:7155
{
yyLOCAL = NaturalLanguageModeOpt
}
yyVAL.union = yyLOCAL
- case 1447:
+ case 1448:
yyDollar = yyS[yypt-7 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7151
+//line sql.y:7159
{
yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt
}
yyVAL.union = yyLOCAL
- case 1448:
+ case 1449:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL MatchExprOption
-//line sql.y:7155
+//line sql.y:7163
{
yyLOCAL = QueryExpansionOpt
}
yyVAL.union = yyLOCAL
- case 1449:
+ case 1450:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7161
+//line sql.y:7169
{
yyVAL.str = string(yyDollar[1].identifierCI.String())
}
- case 1450:
+ case 1451:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7165
+//line sql.y:7173
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1451:
+ case 1452:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7169
+//line sql.y:7177
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1452:
+ case 1453:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7175
+//line sql.y:7183
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1453:
+ case 1454:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7179
+//line sql.y:7187
{
yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))}
}
yyVAL.union = yyLOCAL
- case 1454:
+ case 1455:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7183
+//line sql.y:7191
{
yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))}
}
yyVAL.union = yyLOCAL
- case 1455:
+ case 1456:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7189
+//line sql.y:7197
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
- case 1456:
+ case 1457:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7193
+//line sql.y:7201
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset}
}
yyVAL.union = yyLOCAL
- case 1457:
+ case 1458:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7197
+//line sql.y:7205
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1458:
+ case 1459:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7201
+//line sql.y:7209
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
- case 1459:
+ case 1460:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7205
+//line sql.y:7213
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length
yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale
}
yyVAL.union = yyLOCAL
- case 1460:
+ case 1461:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7211
+//line sql.y:7219
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1461:
+ case 1462:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7215
+//line sql.y:7223
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
- case 1462:
+ case 1463:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7219
+//line sql.y:7227
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1463:
+ case 1464:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7223
+//line sql.y:7231
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1464:
+ case 1465:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7227
+//line sql.y:7235
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
- case 1465:
+ case 1466:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7231
+//line sql.y:7239
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1466:
+ case 1467:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7235
+//line sql.y:7243
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1467:
+ case 1468:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7239
+//line sql.y:7247
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()}
}
yyVAL.union = yyLOCAL
- case 1468:
+ case 1469:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7243
+//line sql.y:7251
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1469:
+ case 1470:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ConvertType
-//line sql.y:7247
+//line sql.y:7255
{
yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1470:
+ case 1471:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7253
+//line sql.y:7261
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1471:
+ case 1472:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:7257
+//line sql.y:7265
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1472:
+ case 1473:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7262
+//line sql.y:7270
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1473:
+ case 1474:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7266
+//line sql.y:7274
{
yyLOCAL = yyDollar[1].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1474:
+ case 1475:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7271
+//line sql.y:7279
{
yyVAL.str = string("")
}
- case 1475:
+ case 1476:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7275
+//line sql.y:7283
{
yyVAL.str = encodeSQLString(yyDollar[2].str)
}
- case 1476:
+ case 1477:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*When
-//line sql.y:7281
+//line sql.y:7289
{
yyLOCAL = []*When{yyDollar[1].whenUnion()}
}
yyVAL.union = yyLOCAL
- case 1477:
+ case 1478:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7285
+//line sql.y:7293
{
yySLICE := (*[]*When)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[2].whenUnion())
}
- case 1478:
+ case 1479:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *When
-//line sql.y:7291
+//line sql.y:7299
{
yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1479:
+ case 1480:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7296
+//line sql.y:7304
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1480:
+ case 1481:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7300
+//line sql.y:7308
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1481:
+ case 1482:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7306
+//line sql.y:7314
{
yyLOCAL = &ColName{Name: yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1482:
+ case 1483:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7310
+//line sql.y:7318
{
yyLOCAL = &ColName{Name: NewIdentifierCI(string(yyDollar[1].str))}
}
yyVAL.union = yyLOCAL
- case 1483:
+ case 1484:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7314
+//line sql.y:7322
{
yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].identifierCS}, Name: yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1484:
+ case 1485:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *ColName
-//line sql.y:7318
+//line sql.y:7326
{
yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}, Name: yyDollar[5].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1485:
+ case 1486:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7324
+//line sql.y:7332
{
yyLOCAL = yyDollar[1].colNameUnion()
}
yyVAL.union = yyLOCAL
- case 1486:
+ case 1487:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7328
+//line sql.y:7336
{
yyLOCAL = &Offset{V: convertStringToInt(yyDollar[1].str)}
}
yyVAL.union = yyLOCAL
- case 1487:
+ case 1488:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7334
+//line sql.y:7342
{
// TODO(sougou): Deprecate this construct.
if yyDollar[1].identifierCI.Lowered() != "value" {
@@ -21418,442 +21472,442 @@ yydefault:
yyLOCAL = NewIntLiteral("1")
}
yyVAL.union = yyLOCAL
- case 1488:
+ case 1489:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7343
+//line sql.y:7351
{
yyLOCAL = NewIntLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
- case 1489:
+ case 1490:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7347
+//line sql.y:7355
{
yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:])
}
yyVAL.union = yyLOCAL
- case 1490:
+ case 1491:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *GroupBy
-//line sql.y:7352
+//line sql.y:7360
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1491:
+ case 1492:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *GroupBy
-//line sql.y:7356
+//line sql.y:7364
{
yyLOCAL = &GroupBy{Exprs: yyDollar[3].exprsUnion(), WithRollup: yyDollar[4].booleanUnion()}
}
yyVAL.union = yyLOCAL
- case 1492:
+ case 1493:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7361
+//line sql.y:7369
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1493:
+ case 1494:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:7365
+//line sql.y:7373
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1494:
+ case 1495:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7371
+//line sql.y:7379
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1495:
+ case 1496:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7375
+//line sql.y:7383
{
yyLOCAL = yyDollar[2].exprUnion()
}
yyVAL.union = yyLOCAL
- case 1496:
+ case 1497:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *NamedWindow
-//line sql.y:7381
+//line sql.y:7389
{
yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitionsUnion()}
}
yyVAL.union = yyLOCAL
- case 1497:
+ case 1498:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7387
+//line sql.y:7395
{
yyLOCAL = NamedWindows{yyDollar[1].namedWindowUnion()}
}
yyVAL.union = yyLOCAL
- case 1498:
+ case 1499:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7391
+//line sql.y:7399
{
yySLICE := (*NamedWindows)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].namedWindowUnion())
}
- case 1499:
+ case 1500:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7396
+//line sql.y:7404
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1500:
+ case 1501:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL NamedWindows
-//line sql.y:7400
+//line sql.y:7408
{
yyLOCAL = yyDollar[1].namedWindowsUnion()
}
yyVAL.union = yyLOCAL
- case 1501:
+ case 1502:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7405
+//line sql.y:7413
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1502:
+ case 1503:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7409
+//line sql.y:7417
{
yyLOCAL = yyDollar[1].orderByUnion()
}
yyVAL.union = yyLOCAL
- case 1503:
+ case 1504:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7415
+//line sql.y:7423
{
yyLOCAL = yyDollar[3].orderByUnion()
}
yyVAL.union = yyLOCAL
- case 1504:
+ case 1505:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderBy
-//line sql.y:7421
+//line sql.y:7429
{
yyLOCAL = OrderBy{yyDollar[1].orderUnion()}
}
yyVAL.union = yyLOCAL
- case 1505:
+ case 1506:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7425
+//line sql.y:7433
{
yySLICE := (*OrderBy)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].orderUnion())
}
- case 1506:
+ case 1507:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Order
-//line sql.y:7431
+//line sql.y:7439
{
yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()}
}
yyVAL.union = yyLOCAL
- case 1507:
+ case 1508:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7436
+//line sql.y:7444
{
yyLOCAL = AscOrder
}
yyVAL.union = yyLOCAL
- case 1508:
+ case 1509:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7440
+//line sql.y:7448
{
yyLOCAL = AscOrder
}
yyVAL.union = yyLOCAL
- case 1509:
+ case 1510:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL OrderDirection
-//line sql.y:7444
+//line sql.y:7452
{
yyLOCAL = DescOrder
}
yyVAL.union = yyLOCAL
- case 1510:
+ case 1511:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7449
+//line sql.y:7457
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1511:
+ case 1512:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7453
+//line sql.y:7461
{
yyLOCAL = yyDollar[1].limitUnion()
}
yyVAL.union = yyLOCAL
- case 1512:
+ case 1513:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7459
+//line sql.y:7467
{
yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1513:
+ case 1514:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7463
+//line sql.y:7471
{
yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1514:
+ case 1515:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Limit
-//line sql.y:7467
+//line sql.y:7475
{
yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1515:
+ case 1516:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7472
+//line sql.y:7480
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1516:
+ case 1517:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7476
+//line sql.y:7484
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1517:
+ case 1518:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7480
+//line sql.y:7488
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1518:
+ case 1519:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7484
+//line sql.y:7492
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1519:
+ case 1520:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []AlterOption
-//line sql.y:7488
+//line sql.y:7496
{
yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1520:
+ case 1521:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7495
+//line sql.y:7503
{
yyLOCAL = &LockOption{Type: DefaultType}
}
yyVAL.union = yyLOCAL
- case 1521:
+ case 1522:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7499
+//line sql.y:7507
{
yyLOCAL = &LockOption{Type: NoneType}
}
yyVAL.union = yyLOCAL
- case 1522:
+ case 1523:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7503
+//line sql.y:7511
{
yyLOCAL = &LockOption{Type: SharedType}
}
yyVAL.union = yyLOCAL
- case 1523:
+ case 1524:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7507
+//line sql.y:7515
{
yyLOCAL = &LockOption{Type: ExclusiveType}
}
yyVAL.union = yyLOCAL
- case 1524:
+ case 1525:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7513
+//line sql.y:7521
{
yyLOCAL = AlgorithmValue(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 1525:
+ case 1526:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7517
+//line sql.y:7525
{
yyLOCAL = AlgorithmValue(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 1526:
+ case 1527:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7521
+//line sql.y:7529
{
yyLOCAL = AlgorithmValue(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 1527:
+ case 1528:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL AlterOption
-//line sql.y:7525
+//line sql.y:7533
{
yyLOCAL = AlgorithmValue(yyDollar[3].str)
}
yyVAL.union = yyLOCAL
- case 1528:
+ case 1529:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7530
+//line sql.y:7538
{
yyVAL.str = ""
}
- case 1529:
+ case 1530:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7534
+//line sql.y:7542
{
yyVAL.str = string(yyDollar[3].str)
}
- case 1530:
+ case 1531:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7538
+//line sql.y:7546
{
yyVAL.str = string(yyDollar[3].str)
}
- case 1531:
+ case 1532:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7542
+//line sql.y:7550
{
yyVAL.str = string(yyDollar[3].str)
}
- case 1532:
+ case 1533:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7547
+//line sql.y:7555
{
yyVAL.str = ""
}
- case 1533:
+ case 1534:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7551
+//line sql.y:7559
{
yyVAL.str = yyDollar[3].str
}
- case 1534:
+ case 1535:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7557
+//line sql.y:7565
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1535:
+ case 1536:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7561
+//line sql.y:7569
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1536:
+ case 1537:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7566
+//line sql.y:7574
{
yyVAL.str = ""
}
- case 1537:
+ case 1538:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:7570
+//line sql.y:7578
{
yyVAL.str = yyDollar[2].str
}
- case 1538:
+ case 1539:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7575
+//line sql.y:7583
{
yyVAL.str = "cascaded"
}
- case 1539:
+ case 1540:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7579
+//line sql.y:7587
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1540:
+ case 1541:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7583
+//line sql.y:7591
{
yyVAL.str = string(yyDollar[1].str)
}
- case 1541:
+ case 1542:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7588
+//line sql.y:7596
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1542:
+ case 1543:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7592
+//line sql.y:7600
{
yyLOCAL = yyDollar[3].definerUnion()
}
yyVAL.union = yyLOCAL
- case 1543:
+ case 1544:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7598
+//line sql.y:7606
{
yyLOCAL = &Definer{
Name: string(yyDollar[1].str),
}
}
yyVAL.union = yyLOCAL
- case 1544:
+ case 1545:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7604
+//line sql.y:7612
{
yyLOCAL = &Definer{
Name: string(yyDollar[1].str),
}
}
yyVAL.union = yyLOCAL
- case 1545:
+ case 1546:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *Definer
-//line sql.y:7610
+//line sql.y:7618
{
yyLOCAL = &Definer{
Name: yyDollar[1].str,
@@ -21861,433 +21915,433 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 1546:
+ case 1547:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7619
+//line sql.y:7627
{
yyVAL.str = encodeSQLString(yyDollar[1].str)
}
- case 1547:
+ case 1548:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7623
+//line sql.y:7631
{
yyVAL.str = formatIdentifier(yyDollar[1].str)
}
- case 1548:
+ case 1549:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7628
+//line sql.y:7636
{
yyVAL.str = ""
}
- case 1549:
+ case 1550:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7632
+//line sql.y:7640
{
yyVAL.str = formatAddress(yyDollar[1].str)
}
- case 1550:
+ case 1551:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7638
+//line sql.y:7646
{
yyLOCAL = ForUpdateLock
}
yyVAL.union = yyLOCAL
- case 1551:
+ case 1552:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7642
+//line sql.y:7650
{
yyLOCAL = ForUpdateLockNoWait
}
yyVAL.union = yyLOCAL
- case 1552:
+ case 1553:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7646
+//line sql.y:7654
{
yyLOCAL = ForUpdateLockSkipLocked
}
yyVAL.union = yyLOCAL
- case 1553:
+ case 1554:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7650
+//line sql.y:7658
{
yyLOCAL = ForShareLock
}
yyVAL.union = yyLOCAL
- case 1554:
+ case 1555:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7654
+//line sql.y:7662
{
yyLOCAL = ForShareLockNoWait
}
yyVAL.union = yyLOCAL
- case 1555:
+ case 1556:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7658
+//line sql.y:7666
{
yyLOCAL = ForShareLockSkipLocked
}
yyVAL.union = yyLOCAL
- case 1556:
+ case 1557:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL Lock
-//line sql.y:7662
+//line sql.y:7670
{
yyLOCAL = ShareModeLock
}
yyVAL.union = yyLOCAL
- case 1557:
+ case 1558:
yyDollar = yyS[yypt-9 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7668
+//line sql.y:7676
{
yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].columnCharset, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str}
}
yyVAL.union = yyLOCAL
- case 1558:
+ case 1559:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7672
+//line sql.y:7680
{
yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""}
}
yyVAL.union = yyLOCAL
- case 1559:
+ case 1560:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *SelectInto
-//line sql.y:7676
+//line sql.y:7684
{
yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].columnCharset, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""}
}
yyVAL.union = yyLOCAL
- case 1560:
+ case 1561:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7681
+//line sql.y:7689
{
yyVAL.str = ""
}
- case 1561:
+ case 1562:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7685
+//line sql.y:7693
{
yyVAL.str = " format csv" + yyDollar[3].str
}
- case 1562:
+ case 1563:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7689
+//line sql.y:7697
{
yyVAL.str = " format text" + yyDollar[3].str
}
- case 1563:
+ case 1564:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7694
+//line sql.y:7702
{
yyVAL.str = ""
}
- case 1564:
+ case 1565:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7698
+//line sql.y:7706
{
yyVAL.str = " header"
}
- case 1565:
+ case 1566:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7703
+//line sql.y:7711
{
yyVAL.str = ""
}
- case 1566:
+ case 1567:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7707
+//line sql.y:7715
{
yyVAL.str = " manifest on"
}
- case 1567:
+ case 1568:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7711
+//line sql.y:7719
{
yyVAL.str = " manifest off"
}
- case 1568:
+ case 1569:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7716
+//line sql.y:7724
{
yyVAL.str = ""
}
- case 1569:
+ case 1570:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7720
+//line sql.y:7728
{
yyVAL.str = " overwrite on"
}
- case 1570:
+ case 1571:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7724
+//line sql.y:7732
{
yyVAL.str = " overwrite off"
}
- case 1571:
+ case 1572:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7730
+//line sql.y:7738
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1572:
+ case 1573:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7735
+//line sql.y:7743
{
yyVAL.str = ""
}
- case 1573:
+ case 1574:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7739
+//line sql.y:7747
{
yyVAL.str = " lines" + yyDollar[2].str
}
- case 1574:
+ case 1575:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7745
+//line sql.y:7753
{
yyVAL.str = yyDollar[1].str
}
- case 1575:
+ case 1576:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7749
+//line sql.y:7757
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1576:
+ case 1577:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7755
+//line sql.y:7763
{
yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str)
}
- case 1577:
+ case 1578:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7759
+//line sql.y:7767
{
yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
}
- case 1578:
+ case 1579:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7764
+//line sql.y:7772
{
yyVAL.str = ""
}
- case 1579:
+ case 1580:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7768
+//line sql.y:7776
{
yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str
}
- case 1580:
+ case 1581:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7774
+//line sql.y:7782
{
yyVAL.str = yyDollar[1].str
}
- case 1581:
+ case 1582:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7778
+//line sql.y:7786
{
yyVAL.str = yyDollar[1].str + yyDollar[2].str
}
- case 1582:
+ case 1583:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7784
+//line sql.y:7792
{
yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str)
}
- case 1583:
+ case 1584:
yyDollar = yyS[yypt-4 : yypt+1]
-//line sql.y:7788
+//line sql.y:7796
{
yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str)
}
- case 1584:
+ case 1585:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7792
+//line sql.y:7800
{
yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str)
}
- case 1585:
+ case 1586:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7797
+//line sql.y:7805
{
yyVAL.str = ""
}
- case 1586:
+ case 1587:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7801
+//line sql.y:7809
{
yyVAL.str = " optionally"
}
- case 1587:
+ case 1588:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7814
+//line sql.y:7822
{
yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion(), RowAlias: yyDollar[3].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1588:
+ case 1589:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7818
+//line sql.y:7826
{
yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1589:
+ case 1590:
yyDollar = yyS[yypt-6 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7822
+//line sql.y:7830
{
yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion(), RowAlias: yyDollar[6].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1590:
+ case 1591:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7826
+//line sql.y:7834
{
yyLOCAL = &Insert{Columns: []IdentifierCI{}, Rows: yyDollar[4].valuesUnion(), RowAlias: yyDollar[5].rowAliasUnion()}
}
yyVAL.union = yyLOCAL
- case 1591:
+ case 1592:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL *Insert
-//line sql.y:7830
+//line sql.y:7838
{
yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()}
}
yyVAL.union = yyLOCAL
- case 1592:
+ case 1593:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Columns
-//line sql.y:7836
+//line sql.y:7844
{
yyLOCAL = Columns{yyDollar[1].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1593:
+ case 1594:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Columns
-//line sql.y:7840
+//line sql.y:7848
{
yyLOCAL = Columns{yyDollar[3].identifierCI}
}
yyVAL.union = yyLOCAL
- case 1594:
+ case 1595:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7844
+//line sql.y:7852
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].identifierCI)
}
- case 1595:
+ case 1596:
yyDollar = yyS[yypt-5 : yypt+1]
-//line sql.y:7848
+//line sql.y:7856
{
yySLICE := (*Columns)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[5].identifierCI)
}
- case 1596:
+ case 1597:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7853
+//line sql.y:7861
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1597:
+ case 1598:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7857
+//line sql.y:7865
{
yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS}
}
yyVAL.union = yyLOCAL
- case 1598:
+ case 1599:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL *RowAlias
-//line sql.y:7861
+//line sql.y:7869
{
yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS, Columns: yyDollar[4].columnsUnion()}
}
yyVAL.union = yyLOCAL
- case 1599:
+ case 1600:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7866
+//line sql.y:7874
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1600:
+ case 1601:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7870
+//line sql.y:7878
{
yyLOCAL = yyDollar[5].updateExprsUnion()
}
yyVAL.union = yyLOCAL
- case 1601:
+ case 1602:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Values
-//line sql.y:7876
+//line sql.y:7884
{
yyLOCAL = Values{yyDollar[1].valTupleUnion()}
}
yyVAL.union = yyLOCAL
- case 1602:
+ case 1603:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7880
+//line sql.y:7888
{
yySLICE := (*Values)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion())
}
- case 1603:
+ case 1604:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7886
+//line sql.y:7894
{
yyLOCAL = yyDollar[1].valTupleUnion()
}
yyVAL.union = yyLOCAL
- case 1604:
+ case 1605:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7890
+//line sql.y:7898
{
yyLOCAL = ValTuple{}
}
yyVAL.union = yyLOCAL
- case 1605:
+ case 1606:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7896
+//line sql.y:7904
{
yyLOCAL = ValTuple(yyDollar[2].exprsUnion())
}
yyVAL.union = yyLOCAL
- case 1606:
+ case 1607:
yyDollar = yyS[yypt-4 : yypt+1]
var yyLOCAL ValTuple
-//line sql.y:7900
+//line sql.y:7908
{
yyLOCAL = ValTuple(yyDollar[3].exprsUnion())
}
yyVAL.union = yyLOCAL
- case 1607:
+ case 1608:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7905
+//line sql.y:7913
{
if len(yyDollar[1].valTupleUnion()) == 1 {
yyLOCAL = yyDollar[1].valTupleUnion()[0]
@@ -22296,300 +22350,300 @@ yydefault:
}
}
yyVAL.union = yyLOCAL
- case 1608:
+ case 1609:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL UpdateExprs
-//line sql.y:7915
+//line sql.y:7923
{
yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()}
}
yyVAL.union = yyLOCAL
- case 1609:
+ case 1610:
yyDollar = yyS[yypt-3 : yypt+1]
-//line sql.y:7919
+//line sql.y:7927
{
yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union))
*yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion())
}
- case 1610:
+ case 1611:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL *UpdateExpr
-//line sql.y:7925
+//line sql.y:7933
{
yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()}
}
yyVAL.union = yyLOCAL
- case 1612:
+ case 1613:
yyDollar = yyS[yypt-2 : yypt+1]
-//line sql.y:7932
+//line sql.y:7940
{
yyVAL.str = "charset"
}
- case 1615:
+ case 1616:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7942
+//line sql.y:7950
{
yyLOCAL = NewStrLiteral(yyDollar[1].identifierCI.String())
}
yyVAL.union = yyLOCAL
- case 1616:
+ case 1617:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7946
+//line sql.y:7954
{
yyLOCAL = NewStrLiteral(yyDollar[1].str)
}
yyVAL.union = yyLOCAL
- case 1617:
+ case 1618:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Expr
-//line sql.y:7950
+//line sql.y:7958
{
yyLOCAL = &Default{}
}
yyVAL.union = yyLOCAL
- case 1620:
+ case 1621:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7959
+//line sql.y:7967
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1621:
+ case 1622:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL bool
-//line sql.y:7961
+//line sql.y:7969
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1622:
+ case 1623:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7964
+//line sql.y:7972
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1623:
+ case 1624:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL bool
-//line sql.y:7966
+//line sql.y:7974
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1624:
+ case 1625:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL bool
-//line sql.y:7969
+//line sql.y:7977
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1625:
+ case 1626:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL bool
-//line sql.y:7971
+//line sql.y:7979
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1626:
+ case 1627:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Ignore
-//line sql.y:7974
+//line sql.y:7982
{
yyLOCAL = false
}
yyVAL.union = yyLOCAL
- case 1627:
+ case 1628:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Ignore
-//line sql.y:7976
+//line sql.y:7984
{
yyLOCAL = true
}
yyVAL.union = yyLOCAL
- case 1628:
+ case 1629:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:7979
+//line sql.y:7987
{
yyVAL.empty = struct{}{}
}
- case 1629:
+ case 1630:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7981
+//line sql.y:7989
{
yyVAL.empty = struct{}{}
}
- case 1630:
+ case 1631:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:7983
+//line sql.y:7991
{
yyVAL.empty = struct{}{}
}
- case 1631:
+ case 1632:
yyDollar = yyS[yypt-5 : yypt+1]
var yyLOCAL Statement
-//line sql.y:7987
+//line sql.y:7995
{
yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()}
}
yyVAL.union = yyLOCAL
- case 1632:
+ case 1633:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:7992
+//line sql.y:8000
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1633:
+ case 1634:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL Exprs
-//line sql.y:7996
+//line sql.y:8004
{
yyLOCAL = yyDollar[1].exprsUnion()
}
yyVAL.union = yyLOCAL
- case 1634:
+ case 1635:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:8001
+//line sql.y:8009
{
yyLOCAL = nil
}
yyVAL.union = yyLOCAL
- case 1635:
+ case 1636:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL []*IndexOption
-//line sql.y:8003
+//line sql.y:8011
{
yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()}
}
yyVAL.union = yyLOCAL
- case 1636:
+ case 1637:
yyDollar = yyS[yypt-2 : yypt+1]
var yyLOCAL *IndexOption
-//line sql.y:8007
+//line sql.y:8015
{
yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].identifierCI.String())}
}
yyVAL.union = yyLOCAL
- case 1637:
+ case 1638:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8013
+//line sql.y:8021
{
yyVAL.identifierCI = yyDollar[1].identifierCI
}
- case 1638:
+ case 1639:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8017
+//line sql.y:8025
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 1640:
+ case 1641:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8024
+//line sql.y:8032
{
yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str))
}
- case 1641:
+ case 1642:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8030
+//line sql.y:8038
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1642:
+ case 1643:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8034
+//line sql.y:8042
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1643:
+ case 1644:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:8040
+//line sql.y:8048
{
yyVAL.identifierCS = NewIdentifierCS("")
}
- case 1644:
+ case 1645:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8044
+//line sql.y:8052
{
yyVAL.identifierCS = yyDollar[1].identifierCS
}
- case 1646:
+ case 1647:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8051
+//line sql.y:8059
{
yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str))
}
- case 1647:
+ case 1648:
yyDollar = yyS[yypt-3 : yypt+1]
var yyLOCAL Statement
-//line sql.y:8057
+//line sql.y:8065
{
yyLOCAL = &Kill{Type: yyDollar[2].killTypeUnion(), ProcesslistID: convertStringToUInt64(yyDollar[3].str)}
}
yyVAL.union = yyLOCAL
- case 1648:
+ case 1649:
yyDollar = yyS[yypt-0 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8063
+//line sql.y:8071
{
yyLOCAL = ConnectionType
}
yyVAL.union = yyLOCAL
- case 1649:
+ case 1650:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8067
+//line sql.y:8075
{
yyLOCAL = ConnectionType
}
yyVAL.union = yyLOCAL
- case 1650:
+ case 1651:
yyDollar = yyS[yypt-1 : yypt+1]
var yyLOCAL KillType
-//line sql.y:8071
+//line sql.y:8079
{
yyLOCAL = QueryType
}
yyVAL.union = yyLOCAL
- case 2281:
+ case 2283:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8730
+//line sql.y:8739
{
}
- case 2282:
+ case 2284:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8735
+//line sql.y:8744
{
}
- case 2283:
+ case 2285:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:8739
+//line sql.y:8748
{
skipToEnd(yylex)
}
- case 2284:
+ case 2286:
yyDollar = yyS[yypt-0 : yypt+1]
-//line sql.y:8744
+//line sql.y:8753
{
skipToEnd(yylex)
}
- case 2285:
+ case 2287:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8748
+//line sql.y:8757
{
skipToEnd(yylex)
}
- case 2286:
+ case 2288:
yyDollar = yyS[yypt-1 : yypt+1]
-//line sql.y:8752
+//line sql.y:8761
{
skipToEnd(yylex)
}
diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y
index 18db4d2eb08..bf1a793e7e8 100644
--- a/go/vt/sqlparser/sql.y
+++ b/go/vt/sqlparser/sql.y
@@ -329,7 +329,7 @@ func markBindVariable(yylex yyLexer, bvar string) {
%token SEQUENCE MERGE TEMPORARY TEMPTABLE INVOKER SECURITY FIRST AFTER LAST
// Migration tokens
-%token VITESS_MIGRATION CANCEL RETRY LAUNCH COMPLETE CLEANUP THROTTLE UNTHROTTLE FORCE_CUTOVER EXPIRE RATIO
+%token VITESS_MIGRATION CANCEL RETRY LAUNCH COMPLETE CLEANUP THROTTLE UNTHROTTLE FORCE_CUTOVER CUTOVER_THRESHOLD EXPIRE RATIO
// Throttler tokens
%token VITESS_THROTTLER
@@ -3407,6 +3407,14 @@ alter_statement:
Type: ForceCutOverAllMigrationType,
}
}
+| ALTER comment_opt VITESS_MIGRATION STRING CUTOVER_THRESHOLD STRING
+ {
+ $$ = &AlterMigration{
+ Type: SetCutOverThresholdMigrationType,
+ UUID: string($4),
+ Threshold: $6,
+ }
+ }
partitions_options_opt:
{
@@ -8301,6 +8309,7 @@ non_reserved_keyword:
| COUNT %prec FUNCTION_CALL_NON_KEYWORD
| CSV
| CURRENT
+| CUTOVER_THRESHOLD
| DATA
| DATE %prec STRING_TYPE_PREFIX_NON_KEYWORD
| DATE_ADD %prec FUNCTION_CALL_NON_KEYWORD
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index 555cadd53ea..002cd1fb6d0 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -94,13 +94,18 @@ var (
ptOSCBinaryPath = "/usr/bin/pt-online-schema-change"
migrationCheckInterval = 1 * time.Minute
retainOnlineDDLTables = 24 * time.Hour
- defaultCutOverThreshold = 10 * time.Second
maxConcurrentOnlineDDLs = 256
migrationNextCheckIntervals = []time.Duration{1 * time.Second, 5 * time.Second, 10 * time.Second, 20 * time.Second}
cutoverIntervals = []time.Duration{0, 1 * time.Minute, 5 * time.Minute, 10 * time.Minute, 30 * time.Minute}
)
+const (
+ defaultCutOverThreshold = 10 * time.Second
+ minCutOverThreshold = 5 * time.Second
+ maxCutOverThreshold = 30 * time.Second
+)
+
func init() {
servenv.OnParseFor("vtcombo", registerOnlineDDLFlags)
servenv.OnParseFor("vttablet", registerOnlineDDLFlags)
@@ -199,13 +204,19 @@ func newGCTableRetainTime() time.Time {
return time.Now().UTC().Add(retainOnlineDDLTables)
}
-// getMigrationCutOverThreshold returns the cut-over threshold for the given migration. The migration's
-// DDL Strategy may explicitly set the threshold; otherwise, we return the default cut-over threshold.
-func getMigrationCutOverThreshold(onlineDDL *schema.OnlineDDL) time.Duration {
- if threshold, _ := onlineDDL.StrategySetting().CutOverThreshold(); threshold != 0 {
- return threshold
+// safeMigrationCutOverThreshold receives a desired threshold, and returns a cut-over threshold that
+// is reasonable to use
+func safeMigrationCutOverThreshold(threshold time.Duration) (time.Duration, error) {
+ switch {
+ case threshold == 0:
+ return defaultCutOverThreshold, nil
+ case threshold < minCutOverThreshold:
+ return defaultCutOverThreshold, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cut-over min value is %v", minCutOverThreshold)
+ case threshold > maxCutOverThreshold:
+ return defaultCutOverThreshold, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cut-over max value is %v", maxCutOverThreshold)
+ default:
+ return threshold, nil
}
- return defaultCutOverThreshold
}
// NewExecutor creates a new gh-ost executor.
@@ -890,8 +901,6 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
var sentryTableName string
- migrationCutOverThreshold := getMigrationCutOverThreshold(onlineDDL)
-
waitForPos := func(s *VReplStream, pos replication.Position, timeout time.Duration) error {
ctx, cancel := context.WithTimeout(ctx, timeout)
defer cancel()
@@ -951,8 +960,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
defer preparationsConn.Recycle()
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
- // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
- preparationConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, preparationsConn.Conn, 3*migrationCutOverThreshold)
+ // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated.
+ preparationConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, preparationsConn.Conn, 3*onlineDDL.CutOverThreshold)
if err != nil {
return vterrors.Wrap(err, "failed setting lock_wait_timeout on locking connection")
}
@@ -989,7 +998,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// impacts query serving so we wait for a multiple of the cutover threshold here, with
// that variable primarily serving to limit the max time we later spend waiting for
// a position again AFTER we've taken the locks and table access is blocked.
- if err := waitForPos(s, postSentryPos, migrationCutOverThreshold*3); err != nil {
+ if err := waitForPos(s, postSentryPos, onlineDDL.CutOverThreshold*3); err != nil {
return vterrors.Wrapf(err, "failed waiting for pos after sentry creation")
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "post-sentry pos reached")
@@ -1001,8 +1010,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
defer lockConn.Recycle()
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
- // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
- lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*migrationCutOverThreshold)
+ // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated.
+ lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*onlineDDL.CutOverThreshold)
if err != nil {
return vterrors.Wrapf(err, "failed setting lock_wait_timeout on locking connection")
}
@@ -1016,8 +1025,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
return vterrors.Wrapf(err, "failed getting rename connection")
}
// Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation.
- // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated.
- renameConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, renameConn.Conn, 5*migrationCutOverThreshold*4)
+ // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated.
+ renameConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, renameConn.Conn, 5*onlineDDL.CutOverThreshold*4)
if err != nil {
return vterrors.Wrapf(err, "failed setting lock_wait_timeout on rename connection")
}
@@ -1052,7 +1061,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// This function waits until it finds the RENAME TABLE... query running in MySQL's PROCESSLIST, or until timeout
// The function assumes that one of the renamed tables is locked, thus causing the RENAME to block. If nothing
// is locked, then the RENAME will be near-instantaneous and it's unlikely that the function will find it.
- renameWaitCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ renameWaitCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold)
defer cancel()
for {
@@ -1081,7 +1090,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// Preparation is complete. We proceed to cut-over.
toggleBuffering := func(bufferQueries bool) error {
log.Infof("toggling buffering: %t in migration %v", bufferQueries, onlineDDL.UUID)
- timeout := migrationCutOverThreshold + qrBufferExtraTimeout
+ timeout := onlineDDL.CutOverThreshold + qrBufferExtraTimeout
e.toggleBufferTableFunc(bufferingCtx, onlineDDL.Table, timeout, bufferQueries)
if !bufferQueries {
@@ -1147,7 +1156,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
// real production
e.updateMigrationStage(ctx, onlineDDL.UUID, "locking tables")
- lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold)
defer cancel()
lockTableQuery := sqlparser.BuildParsedQuery(sqlLockTwoTablesWrite, sentryTableName, onlineDDL.Table)
if _, err := lockConn.Conn.Exec(lockCtx, lockTableQuery.Query, 1, false); err != nil {
@@ -1187,7 +1196,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-lock pos: %v", replication.EncodePosition(postWritesPos))
- if err := waitForPos(s, postWritesPos, migrationCutOverThreshold); err != nil {
+ if err := waitForPos(s, postWritesPos, onlineDDL.CutOverThreshold); err != nil {
e.updateMigrationStage(ctx, onlineDDL.UUID, "timeout while waiting for post-lock pos: %v", err)
return vterrors.Wrapf(err, "failed waiting for pos after locking")
}
@@ -1220,14 +1229,14 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
{
dropTableQuery := sqlparser.BuildParsedQuery(sqlDropTable, sentryTableName)
- lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold)
defer cancel()
if _, err := lockConn.Conn.Exec(lockCtx, dropTableQuery.Query, 1, false); err != nil {
return vterrors.Wrapf(err, "failed dropping sentry table")
}
}
{
- lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold)
defer cancel()
e.updateMigrationStage(ctx, onlineDDL.UUID, "unlocking tables")
if _, err := lockConn.Conn.Exec(lockCtx, sqlUnlockTables, 1, false); err != nil {
@@ -1235,7 +1244,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh
}
}
{
- lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold)
+ lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold)
defer cancel()
e.updateMigrationStage(lockCtx, onlineDDL.UUID, "waiting for RENAME to complete")
if err := <-renameCompleteChan; err != nil {
@@ -2034,7 +2043,9 @@ func (e *Executor) readMigration(ctx context.Context, uuid string) (onlineDDL *s
WasReadyToComplete: row.AsInt64("was_ready_to_complete", 0),
TabletAlias: row["tablet"].ToString(),
MigrationContext: row["migration_context"].ToString(),
+ CutOverThreshold: time.Second * time.Duration(row.AsInt64("cutover_threshold_seconds", 0)),
}
+ onlineDDL.CutOverThreshold, _ = safeMigrationCutOverThreshold(onlineDDL.CutOverThreshold)
return onlineDDL, row, nil
}
@@ -3585,17 +3596,15 @@ func (e *Executor) isVReplMigrationReadyToCutOver(ctx context.Context, onlineDDL
durationDiff := func(t1, t2 time.Time) time.Duration {
return t1.Sub(t2).Abs()
}
- migrationCutOverThreshold := getMigrationCutOverThreshold(onlineDDL)
-
timeNow := time.Now()
timeUpdated := time.Unix(s.timeUpdated, 0)
- if durationDiff(timeNow, timeUpdated) > migrationCutOverThreshold {
+ if durationDiff(timeNow, timeUpdated) > onlineDDL.CutOverThreshold {
return false, nil
}
// Let's look at transaction timestamp. This gets written by any ongoing
// writes on the server (whether on this table or any other table)
transactionTimestamp := time.Unix(s.transactionTimestamp, 0)
- if durationDiff(timeNow, transactionTimestamp) > migrationCutOverThreshold {
+ if durationDiff(timeNow, transactionTimestamp) > onlineDDL.CutOverThreshold {
return false, nil
}
}
@@ -4747,6 +4756,42 @@ func (e *Executor) ForceCutOverPendingMigrations(ctx context.Context) (result *s
return result, nil
}
+func (e *Executor) SetMigrationCutOverThreshold(ctx context.Context, uuid string, thresholdString string) (result *sqltypes.Result, err error) {
+ if atomic.LoadInt64(&e.isOpen) == 0 {
+ return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error())
+ }
+ if !schema.IsOnlineDDLUUID(uuid) {
+ return nil, vterrors.Errorf(vtrpcpb.Code_UNKNOWN, "Not a valid migration ID in FORCE_CUTOVER: %s", uuid)
+ }
+ threshold, err := time.ParseDuration(thresholdString)
+ if err != nil {
+ return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "invalid cut-over threshold value: %s. Try '5s' to '30s'", thresholdString)
+ }
+
+ log.Infof("SetMigrationCutOverThreshold: request to set cut-over threshold to %v on migration %s", threshold, uuid)
+ e.migrationMutex.Lock()
+ defer e.migrationMutex.Unlock()
+
+ threshold, err = safeMigrationCutOverThreshold(threshold)
+ if err != nil {
+ return nil, err
+ }
+ query, err := sqlparser.ParseAndBind(sqlUpdateCutOverThresholdSeconds,
+ sqltypes.Int64BindVariable(int64(threshold.Seconds())),
+ sqltypes.StringBindVariable(uuid),
+ )
+ if err != nil {
+ return nil, err
+ }
+ rs, err := e.execQuery(ctx, query)
+ if err != nil {
+ return nil, err
+ }
+ e.triggerNextCheckInterval()
+ log.Infof("SetMigrationCutOverThreshold: migration %s cut-over threshold was set to", uuid, threshold)
+ return rs, nil
+}
+
// CompleteMigration clears the postpone_completion flag for a given migration, assuming it was set in the first place
func (e *Executor) CompleteMigration(ctx context.Context, uuid string) (result *sqltypes.Result, err error) {
if atomic.LoadInt64(&e.isOpen) == 0 {
@@ -5032,7 +5077,14 @@ func (e *Executor) SubmitMigration(
// Explicit retention indicated by `--retain-artifact` DDL strategy flag for this migration. Override!
retainArtifactsSeconds = int64((retainArtifacts).Seconds())
}
-
+ cutoverThreshold, err := onlineDDL.StrategySetting().CutOverThreshold()
+ if err != nil {
+ return nil, vterrors.Wrapf(err, "parsing cut-over threshold in migration %v", onlineDDL.UUID)
+ }
+ cutoverThreshold, err = safeMigrationCutOverThreshold(cutoverThreshold)
+ if err != nil {
+ return nil, vterrors.Wrapf(err, "validating cut-over threshold in migration %v", onlineDDL.UUID)
+ }
_, allowConcurrentMigration := e.allowConcurrentMigration(onlineDDL)
submitQuery, err := sqlparser.ParseAndBind(sqlInsertMigration,
sqltypes.StringBindVariable(onlineDDL.UUID),
@@ -5048,6 +5100,7 @@ func (e *Executor) SubmitMigration(
sqltypes.StringBindVariable(string(schema.OnlineDDLStatusQueued)),
sqltypes.StringBindVariable(e.TabletAliasString()),
sqltypes.Int64BindVariable(retainArtifactsSeconds),
+ sqltypes.Int64BindVariable(int64(cutoverThreshold.Seconds())),
sqltypes.BoolBindVariable(onlineDDL.StrategySetting().IsPostponeLaunch()),
sqltypes.BoolBindVariable(onlineDDL.StrategySetting().IsPostponeCompletion()),
sqltypes.BoolBindVariable(allowConcurrentMigration),
diff --git a/go/vt/vttablet/onlineddl/executor_test.go b/go/vt/vttablet/onlineddl/executor_test.go
index 2533f3a4b48..105da7fc1e3 100644
--- a/go/vt/vttablet/onlineddl/executor_test.go
+++ b/go/vt/vttablet/onlineddl/executor_test.go
@@ -25,6 +25,7 @@ import (
"time"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
func TestShouldCutOverAccordingToBackoff(t *testing.T) {
@@ -164,3 +165,59 @@ func TestShouldCutOverAccordingToBackoff(t *testing.T) {
})
}
}
+
+func TestSafeMigrationCutOverThreshold(t *testing.T) {
+ require.NotZero(t, defaultCutOverThreshold)
+ require.GreaterOrEqual(t, defaultCutOverThreshold, minCutOverThreshold)
+ require.LessOrEqual(t, defaultCutOverThreshold, maxCutOverThreshold)
+
+ tcases := []struct {
+ threshold time.Duration
+ expect time.Duration
+ isErr bool
+ }{
+ {
+ threshold: 0,
+ expect: defaultCutOverThreshold,
+ },
+ {
+ threshold: 2 * time.Second,
+ expect: defaultCutOverThreshold,
+ isErr: true,
+ },
+ {
+ threshold: 75 * time.Second,
+ expect: defaultCutOverThreshold,
+ isErr: true,
+ },
+ {
+ threshold: defaultCutOverThreshold,
+ expect: defaultCutOverThreshold,
+ },
+ {
+ threshold: 5 * time.Second,
+ expect: 5 * time.Second,
+ },
+ {
+ threshold: 15 * time.Second,
+ expect: 15 * time.Second,
+ },
+ {
+ threshold: 25 * time.Second,
+ expect: 25 * time.Second,
+ },
+ }
+ for _, tcase := range tcases {
+ t.Run(tcase.threshold.String(), func(t *testing.T) {
+ threshold, err := safeMigrationCutOverThreshold(tcase.threshold)
+ if tcase.isErr {
+ assert.Error(t, err)
+ require.Equal(t, tcase.expect, defaultCutOverThreshold)
+ // And keep testing, because we then also expect the threshold to be the default
+ } else {
+ assert.NoError(t, err)
+ }
+ assert.Equal(t, tcase.expect, threshold)
+ })
+ }
+}
diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go
index 1b120dfa58c..bc3fa4f2bc9 100644
--- a/go/vt/vttablet/onlineddl/schema.go
+++ b/go/vt/vttablet/onlineddl/schema.go
@@ -32,13 +32,14 @@ const (
migration_status,
tablet,
retain_artifacts_seconds,
+ cutover_threshold_seconds,
postpone_launch,
postpone_completion,
allow_concurrent,
reverted_uuid,
is_view
) VALUES (
- %a, %a, %a, %a, %a, %a, %a, %a, %a, NOW(6), %a, %a, %a, %a, %a, %a, %a, %a, %a
+ %a, %a, %a, %a, %a, %a, %a, %a, %a, NOW(6), %a, %a, %a, %a, %a, %a, %a, %a, %a, %a
)`
sqlSelectQueuedMigrations = `SELECT
@@ -181,6 +182,11 @@ const (
WHERE
migration_uuid=%a
`
+ sqlUpdateCutOverThresholdSeconds = `UPDATE _vt.schema_migrations
+ SET cutover_threshold_seconds=%a
+ WHERE
+ migration_uuid=%a
+ `
sqlUpdateLaunchMigration = `UPDATE _vt.schema_migrations
SET postpone_launch=0
WHERE
@@ -429,6 +435,7 @@ const (
removed_unique_keys,
migration_context,
retain_artifacts_seconds,
+ cutover_threshold_seconds,
is_view,
ready_to_complete,
ready_to_complete_timestamp is not null as was_ready_to_complete,
diff --git a/go/vt/vttablet/tabletserver/query_executor.go b/go/vt/vttablet/tabletserver/query_executor.go
index abf296c0583..519b60b79d6 100644
--- a/go/vt/vttablet/tabletserver/query_executor.go
+++ b/go/vt/vttablet/tabletserver/query_executor.go
@@ -991,6 +991,8 @@ func (qre *QueryExecutor) execAlterMigration() (*sqltypes.Result, error) {
return qre.tsv.onlineDDLExecutor.ForceCutOverMigration(qre.ctx, alterMigration.UUID)
case sqlparser.ForceCutOverAllMigrationType:
return qre.tsv.onlineDDLExecutor.ForceCutOverPendingMigrations(qre.ctx)
+ case sqlparser.SetCutOverThresholdMigrationType:
+ return qre.tsv.onlineDDLExecutor.SetMigrationCutOverThreshold(qre.ctx, alterMigration.UUID, alterMigration.Threshold)
}
return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "ALTER VITESS_MIGRATION not implemented")
}
From 9094b55b2a5889271f86b5a4bf51340092b171c6 Mon Sep 17 00:00:00 2001
From: Dirkjan Bussink
Date: Wed, 20 Nov 2024 16:42:02 +0100
Subject: [PATCH 69/78] Remove unused code for old START_GTID logic (#17265)
Signed-off-by: Dirkjan Bussink
---
go/vt/vttablet/tabletserver/tx_pool.go | 15 ++----------
go/vt/vttablet/tabletserver/tx_pool_test.go | 4 ++--
.../tabletserver/vstreamer/snapshot_conn.go | 23 -------------------
3 files changed, 4 insertions(+), 38 deletions(-)
diff --git a/go/vt/vttablet/tabletserver/tx_pool.go b/go/vt/vttablet/tabletserver/tx_pool.go
index ca8a0ea34b2..302a3d41050 100644
--- a/go/vt/vttablet/tabletserver/tx_pool.go
+++ b/go/vt/vttablet/tabletserver/tx_pool.go
@@ -40,9 +40,8 @@ import (
)
const (
- txLogInterval = 1 * time.Minute
- beginWithCSRO = "start transaction with consistent snapshot, read only"
- trackGtidQuery = "set session session_track_gtids = START_GTID"
+ txLogInterval = 1 * time.Minute
+ beginWithCSRO = "start transaction with consistent snapshot, read only"
)
var txIsolations = map[querypb.ExecuteOptions_TransactionIsolation]string{
@@ -394,16 +393,6 @@ func createStartTxStmt(options *querypb.ExecuteOptions, readOnly bool) (string,
}
func handleConsistentSnapshotCase(ctx context.Context, conn *StatefulConnection) (beginSQL string, sessionStateChanges string, err error) {
- _, err = conn.execWithRetry(ctx, trackGtidQuery, 1, false)
- // We allow this to fail since this is a custom MySQL extension, but we return
- // then if this query was executed or not.
- //
- // Callers also can know because the sessionStateChanges will be empty for a snapshot
- // transaction and get GTID information in another (less efficient) way.
- if err == nil {
- beginSQL = trackGtidQuery + "; "
- }
-
isolationLevel := txIsolations[querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY]
execSQL, err := setIsolationLevel(ctx, conn, isolationLevel)
diff --git a/go/vt/vttablet/tabletserver/tx_pool_test.go b/go/vt/vttablet/tabletserver/tx_pool_test.go
index c03cac92878..22810d4c422 100644
--- a/go/vt/vttablet/tabletserver/tx_pool_test.go
+++ b/go/vt/vttablet/tabletserver/tx_pool_test.go
@@ -701,11 +701,11 @@ func TestTxPoolBeginStatements(t *testing.T) {
expBeginSQL: "set transaction isolation level serializable; start transaction read only",
}, {
txIsolationLevel: querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY,
- expBeginSQL: "set session session_track_gtids = START_GTID; set transaction isolation level repeatable read; start transaction with consistent snapshot, read only",
+ expBeginSQL: "set transaction isolation level repeatable read; start transaction with consistent snapshot, read only",
}, {
txIsolationLevel: querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY,
readOnly: true,
- expBeginSQL: "set session session_track_gtids = START_GTID; set transaction isolation level repeatable read; start transaction with consistent snapshot, read only",
+ expBeginSQL: "set transaction isolation level repeatable read; start transaction with consistent snapshot, read only",
}, {
txIsolationLevel: querypb.ExecuteOptions_AUTOCOMMIT,
expBeginSQL: "",
diff --git a/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go b/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go
index ec326cc4159..ee141ce9859 100644
--- a/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go
+++ b/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go
@@ -132,29 +132,6 @@ func (conn *snapshotConn) startSnapshot(ctx context.Context, table string) (gtid
return replication.EncodePosition(mpos), nil
}
-// startSnapshotWithConsistentGTID performs the snapshotting without locking tables. This assumes
-// session_track_gtids = START_GTID, which is a contribution to MySQL and is not in vanilla MySQL at the
-// time of this writing.
-func (conn *snapshotConn) startSnapshotWithConsistentGTID(ctx context.Context) (gtid string, err error) {
- if _, err := conn.ExecuteFetch("set transaction isolation level repeatable read", 1, false); err != nil {
- return "", err
- }
- result, err := conn.ExecuteFetch("start transaction with consistent snapshot, read only", 1, false)
- if err != nil {
- return "", err
- }
- // The "session_track_gtids = START_GTID" patch is only applicable to MySQL56 GTID, which is
- // why we hardcode the position as mysql.Mysql56FlavorID
- mpos, err := replication.ParsePosition(replication.Mysql56FlavorID, result.SessionStateChanges)
- if err != nil {
- return "", err
- }
- if _, err := conn.ExecuteFetch("set @@session.time_zone = '+00:00'", 1, false); err != nil {
- return "", err
- }
- return replication.EncodePosition(mpos), nil
-}
-
// Close rolls back any open transactions and closes the connection.
func (conn *snapshotConn) Close() {
_, _ = conn.ExecuteFetch("rollback", 1, false)
From aa6f2fbd72a36e05a49ec266f06c8751087109a3 Mon Sep 17 00:00:00 2001
From: "Eduardo J. Ortega U." <5791035+ejortegau@users.noreply.github.com>
Date: Thu, 21 Nov 2024 05:56:21 +0100
Subject: [PATCH 70/78] PRS and ERS don't promote replicas taking backups
(#16997)
Signed-off-by: Eduardo J. Ortega U <5791035+ejortegau@users.noreply.github.com>
---
changelog/22.0/22.0.0/changelog.md | 5 +
changelog/22.0/22.0.0/summary.md | 13 +
changelog/22.0/README.md | 1 +
.../replicationdata/replicationdata.pb.go | 225 +--
.../replicationdata_vtproto.pb.go | 70 +
.../tabletmanagerdata/tabletmanagerdata.pb.go | 1610 +++++++++--------
.../tabletmanagerdata_vtproto.pb.go | 68 +
.../testutil/test_tmclient.go | 5 +
.../reparentutil/emergency_reparenter.go | 24 +-
.../reparentutil/emergency_reparenter_test.go | 111 +-
.../reparentutil/reparent_sorter_test.go | 1 -
go/vt/vtctl/reparentutil/replication.go | 17 +-
go/vt/vtctl/reparentutil/util.go | 29 +-
go/vt/vtctl/reparentutil/util_test.go | 208 ++-
go/vt/vttablet/grpctmserver/server.go | 5 +-
go/vt/vttablet/tabletmanager/rpc_agent.go | 2 +
go/vt/vttablet/tabletmanager/rpc_backup.go | 4 +
go/vt/vttablet/tmrpctest/test_tm_rpc.go | 4 +
proto/replicationdata.proto | 2 +
proto/tabletmanagerdata.proto | 2 +
web/vtadmin/src/proto/vtadmin.d.ts | 24 +
web/vtadmin/src/proto/vtadmin.js | 98 +-
22 files changed, 1558 insertions(+), 970 deletions(-)
create mode 100644 changelog/22.0/22.0.0/changelog.md
diff --git a/changelog/22.0/22.0.0/changelog.md b/changelog/22.0/22.0.0/changelog.md
new file mode 100644
index 00000000000..03f2f714b7f
--- /dev/null
+++ b/changelog/22.0/22.0.0/changelog.md
@@ -0,0 +1,5 @@
+# Changelog of Vitess v22.0.0
+
+### Enhancement
+#### Cluster management
+ * Prefer not promoting replicas that are taking backups [#16997](https://github.com/vitessio/vitess/pull/16997)
diff --git a/changelog/22.0/22.0.0/summary.md b/changelog/22.0/22.0.0/summary.md
index 6846913bed5..7c7257bfae3 100644
--- a/changelog/22.0/22.0.0/summary.md
+++ b/changelog/22.0/22.0.0/summary.md
@@ -4,6 +4,7 @@
- **[Major Changes](#major-changes)**
- **[RPC Changes](#rpc-changes)**
+ - **[Prefer not promoting a replica that is currently taking a backup](#reparents-prefer-not-backing-up)**
## Major Changes
@@ -13,3 +14,15 @@
These are the RPC changes made in this release -
1. `GetTransactionInfo` RPC has been added to both `VtctldServer`, and `TabletManagerClient` interface. These RPCs are used to fecilitate the users in reading the state of an unresolved distributed transaction. This can be useful in debugging what went wrong and how to fix the problem.
+
+### Prefer not promoting a replica that is currently taking a backup
+
+Emergency reparents now prefer not promoting replicas that are currently taking backups with a backup engine other than
+`builtin`. Note that if there's only one suitable replica to promote, and it is taking a backup, it will still be
+promoted.
+
+For planned reparents, hosts taking backups with a backup engine other than `builtin` are filtered out of the list of
+valid candidates. This means they will never get promoted - not even if there's no other candidates.
+
+Note that behavior for `builtin` backups remains unchanged: a replica that is currently taking a `builtin` backup will
+never be promoted, neither by planned nor by emergency reparents.
\ No newline at end of file
diff --git a/changelog/22.0/README.md b/changelog/22.0/README.md
index 0e790e5dc0b..755f7e29563 100644
--- a/changelog/22.0/README.md
+++ b/changelog/22.0/README.md
@@ -1,2 +1,3 @@
## v22.0
* **[22.0.0](22.0.0)**
+ * [Changelog](22.0.0/changelog.md)
diff --git a/go/vt/proto/replicationdata/replicationdata.pb.go b/go/vt/proto/replicationdata/replicationdata.pb.go
index 4568ae2d437..ab307dba9fa 100644
--- a/go/vt/proto/replicationdata/replicationdata.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata.pb.go
@@ -114,6 +114,7 @@ type Status struct {
HasReplicationFilters bool `protobuf:"varint,22,opt,name=has_replication_filters,json=hasReplicationFilters,proto3" json:"has_replication_filters,omitempty"`
SslAllowed bool `protobuf:"varint,23,opt,name=ssl_allowed,json=sslAllowed,proto3" json:"ssl_allowed,omitempty"`
ReplicationLagUnknown bool `protobuf:"varint,24,opt,name=replication_lag_unknown,json=replicationLagUnknown,proto3" json:"replication_lag_unknown,omitempty"`
+ BackupRunning bool `protobuf:"varint,25,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"`
}
func (x *Status) Reset() {
@@ -300,6 +301,13 @@ func (x *Status) GetReplicationLagUnknown() bool {
return false
}
+func (x *Status) GetBackupRunning() bool {
+ if x != nil {
+ return x.BackupRunning
+ }
+ return false
+}
+
// Configuration holds replication configuration information gathered from performance_schema and global variables.
type Configuration struct {
state protoimpl.MessageState
@@ -363,8 +371,9 @@ type StopReplicationStatus struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Before *Status `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"`
- After *Status `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"`
+ Before *Status `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"`
+ After *Status `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"`
+ BackupRunning bool `protobuf:"varint,3,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"`
}
func (x *StopReplicationStatus) Reset() {
@@ -411,6 +420,13 @@ func (x *StopReplicationStatus) GetAfter() *Status {
return nil
}
+func (x *StopReplicationStatus) GetBackupRunning() bool {
+ if x != nil {
+ return x.BackupRunning
+ }
+ return false
+}
+
// PrimaryStatus is the replication status for a MySQL primary (returned by 'show binary log status').
type PrimaryStatus struct {
state protoimpl.MessageState
@@ -692,7 +708,7 @@ var File_replicationdata_proto protoreflect.FileDescriptor
var file_replicationdata_proto_rawDesc = []byte{
0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74,
0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x22, 0x96, 0x07, 0x0a, 0x06, 0x53, 0x74, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbd, 0x07, 0x0a, 0x06, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x36, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
@@ -749,105 +765,110 @@ var file_replicationdata_proto_rawDesc = []byte{
0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67,
0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15,
0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x55, 0x6e,
- 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10,
- 0x04, 0x22, 0x6e, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f,
- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11,
- 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
- 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x65, 0x74,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
- 0x74, 0x22, 0x77, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65,
- 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61,
- 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x66, 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0xc8, 0x08,
- 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72,
- 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69,
- 0x64, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x67, 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65,
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a,
- 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74,
- 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67,
- 0x74, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
- 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10,
- 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,
- 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f,
- 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69,
- 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0d, 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e,
- 0x0a, 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39,
- 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d,
- 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65,
- 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65,
- 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61,
- 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e,
- 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63,
- 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a,
- 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73,
- 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65,
- 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53,
- 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
- 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20,
- 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66,
- 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63,
- 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f,
- 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61,
- 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75,
- 0x70, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
- 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18,
- 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12,
- 0x12, 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41,
- 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f,
- 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e,
- 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f,
+ 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x02,
+ 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x6e, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61,
+ 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x65,
+ 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f,
+ 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x62, 0x65, 0x66,
+ 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74,
+ 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x75, 0x6e,
+ 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b,
+ 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66,
+ 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0xc8, 0x08, 0x0a,
+ 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11,
+ 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69, 0x64,
+ 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67,
+ 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09,
+ 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74, 0x69,
+ 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x74,
+ 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
+ 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62,
+ 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x62,
+ 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f, 0x77,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69, 0x6e,
+ 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+ 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a,
+ 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a,
+ 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69,
+ 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65, 0x6e,
+ 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d,
+ 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61, 0x62,
+ 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63,
+ 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x18,
+ 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15,
+ 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79,
+ 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e,
+ 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79,
+ 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73,
+ 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20, 0x73,
+ 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f,
+ 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x57,
+ 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64,
+ 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75, 0x70,
+ 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
+ 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12,
+ 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44,
+ 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f, 0x4e,
+ 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69,
+ 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
index b1b771d1561..2bf3cb7788c 100644
--- a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
+++ b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go
@@ -48,6 +48,7 @@ func (m *Status) CloneVT() *Status {
r.HasReplicationFilters = m.HasReplicationFilters
r.SslAllowed = m.SslAllowed
r.ReplicationLagUnknown = m.ReplicationLagUnknown
+ r.BackupRunning = m.BackupRunning
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -84,6 +85,7 @@ func (m *StopReplicationStatus) CloneVT() *StopReplicationStatus {
r := new(StopReplicationStatus)
r.Before = m.Before.CloneVT()
r.After = m.After.CloneVT()
+ r.BackupRunning = m.BackupRunning
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -182,6 +184,18 @@ func (m *Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.BackupRunning {
+ i--
+ if m.BackupRunning {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xc8
+ }
if m.ReplicationLagUnknown {
i--
if m.ReplicationLagUnknown {
@@ -432,6 +446,16 @@ func (m *StopReplicationStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error)
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.BackupRunning {
+ i--
+ if m.BackupRunning {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
if m.After != nil {
size, err := m.After.MarshalToSizedBufferVT(dAtA[:i])
if err != nil {
@@ -817,6 +841,9 @@ func (m *Status) SizeVT() (n int) {
if m.ReplicationLagUnknown {
n += 3
}
+ if m.BackupRunning {
+ n += 3
+ }
n += len(m.unknownFields)
return n
}
@@ -851,6 +878,9 @@ func (m *StopReplicationStatus) SizeVT() (n int) {
l = m.After.SizeVT()
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ if m.BackupRunning {
+ n += 2
+ }
n += len(m.unknownFields)
return n
}
@@ -1545,6 +1575,26 @@ func (m *Status) UnmarshalVT(dAtA []byte) error {
}
}
m.ReplicationLagUnknown = bool(v != 0)
+ case 25:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.BackupRunning = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -1749,6 +1799,26 @@ func (m *StopReplicationStatus) UnmarshalVT(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.BackupRunning = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
index 67eae2395ad..303a3a3c53b 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go
@@ -3098,7 +3098,8 @@ type ReplicationStatusResponse struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Status *replicationdata.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+ Status *replicationdata.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+ BackupRunning bool `protobuf:"varint,2,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"`
}
func (x *ReplicationStatusResponse) Reset() {
@@ -3138,6 +3139,13 @@ func (x *ReplicationStatusResponse) GetStatus() *replicationdata.Status {
return nil
}
+func (x *ReplicationStatusResponse) GetBackupRunning() bool {
+ if x != nil {
+ return x.BackupRunning
+ }
+ return false
+}
+
type PrimaryStatusRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -5076,7 +5084,8 @@ type StopReplicationAndGetStatusResponse struct {
unknownFields protoimpl.UnknownFields
// Status represents the replication status call right before, and right after telling the replica to stop.
- Status *replicationdata.StopReplicationStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+ Status *replicationdata.StopReplicationStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+ BackupRunning bool `protobuf:"varint,3,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"`
}
func (x *StopReplicationAndGetStatusResponse) Reset() {
@@ -5116,6 +5125,13 @@ func (x *StopReplicationAndGetStatusResponse) GetStatus() *replicationdata.StopR
return nil
}
+func (x *StopReplicationAndGetStatusResponse) GetBackupRunning() bool {
+ if x != nil {
+ return x.BackupRunning
+ }
+ return false
+}
+
type PromoteReplicaRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -8452,242 +8468,351 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x73, 0x74, 0x22, 0x73, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74,
0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69,
+ 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
+ 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+ 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x46,
+ 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17,
+ 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d,
+ 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74,
+ 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x3c, 0x0a, 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
+ 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69,
+ 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a,
+ 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69,
+ 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
+ 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17,
+ 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a,
+ 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65,
+ 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x0a, 0x1d, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
+ 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65,
+ 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x31, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a,
+ 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f,
+ 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f,
+ 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f,
+ 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79,
+ 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74,
+ 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c,
+ 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61,
+ 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65,
+ 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52,
+ 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e,
+ 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61,
+ 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06,
+ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65,
+ 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69,
+ 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a,
+ 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e,
+ 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e,
+ 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69,
+ 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64,
0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a,
- 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61,
- 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x22, 0x19, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a,
- 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
- 0x22, 0x3c, 0x0a, 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35,
- 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d,
- 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d,
- 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x62, 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f,
- 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69,
- 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66,
- 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47,
- 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72,
- 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19,
- 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73,
- 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a, 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b,
- 0x0a, 0x1d, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61,
- 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
- 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46,
- 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a,
- 0x12, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22,
- 0x31, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
- 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a,
- 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a,
- 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72,
- 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a,
- 0x1f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x22, 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01,
- 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
- 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a,
- 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e,
- 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d,
- 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d,
- 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22,
- 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69,
- 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44,
- 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57,
- 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50,
- 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
- 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75,
- 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
- 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53,
- 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70,
- 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61,
- 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d,
- 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e,
- 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
- 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69,
- 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
- 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65,
- 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74,
- 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73,
- 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f,
- 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65,
- 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53,
- 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01,
- 0x10, 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70,
- 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73,
- 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
- 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01,
- 0x0a, 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
- 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61,
- 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d,
- 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61,
- 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72,
- 0x61, 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
- 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69,
- 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
- 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75,
- 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65,
- 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74,
- 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22,
- 0xfe, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b,
- 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52,
- 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72,
- 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f,
- 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65,
- 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
- 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54,
- 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c,
- 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67,
- 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f,
- 0x77, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73,
- 0x22, 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42,
- 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a,
- 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c,
- 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f,
- 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62,
- 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
- 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f,
- 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61,
+ 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65,
+ 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b,
+ 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d,
+ 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65,
+ 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
+ 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52,
+ 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46,
+ 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63,
+ 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e,
+ 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e,
+ 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+ 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65,
+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d,
+ 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a,
+ 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61,
+ 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22,
+ 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41,
+ 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x92, 0x01, 0x0a,
+ 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72,
+ 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x01, 0x10,
+ 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
+ 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65,
+ 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
+ 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a,
+ 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20,
+ 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79,
+ 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
+ 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72,
+ 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c,
+ 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61,
+ 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75,
+ 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e,
+ 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f,
+ 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69,
+ 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfe,
+ 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b, 0x62,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a,
+ 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f, 0x73,
+ 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c,
+ 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69,
+ 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
+ 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x22,
+ 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61,
+ 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f,
+ 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69,
+ 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32,
+ 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65,
+ 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
+ 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
+ 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12,
+ 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65,
+ 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72,
+ 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f,
+ 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70,
+ 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
+ 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a,
+ 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+ 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c,
+ 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a,
+ 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x50,
+ 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
+ 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, 0x65,
+ 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12,
+ 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e,
+ 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03,
+ 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63,
+ 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78,
+ 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75,
+ 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32,
+ 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
+ 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65,
+ 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x21,
+ 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66,
+ 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e,
0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c,
0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
@@ -8698,580 +8823,475 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{
0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66,
0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65,
0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
- 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f,
- 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
- 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x12, 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b,
- 0x65, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72,
- 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61,
- 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72,
- 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f,
- 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06,
- 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c,
- 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69,
- 0x7a, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f,
- 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22,
- 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75,
- 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52,
- 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73,
- 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a,
- 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61,
+ 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49,
+ 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e,
- 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65,
- 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c,
- 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e,
- 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64,
- 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
- 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a,
- 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b,
- 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
- 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
- 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54,
- 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
- 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65,
- 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
- 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
- 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
- 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f,
- 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72,
+ 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30,
+ 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72,
+ 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65,
+ 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73,
+ 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72,
+ 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52,
+ 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72,
+ 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f,
+ 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03,
+ 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x19,
+ 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78,
+ 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54,
+ 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
+ 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65,
+ 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f,
- 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61,
- 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64,
- 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79,
- 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07,
- 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72,
- 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61,
- 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65,
- 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69,
- 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c,
- 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a,
- 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12,
- 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61,
- 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78,
- 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
- 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73,
- 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f,
- 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12,
- 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61,
- 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65,
- 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74,
- 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76,
- 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d,
- 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
- 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28,
- 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69,
- 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66,
- 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69,
- 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x33,
+ 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62,
+ 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
+ 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54,
+ 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70,
+ 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18,
+ 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a,
+ 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64,
+ 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
+ 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12,
+ 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f,
+ 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66,
+ 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66,
+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52,
+ 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x12,
+ 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
+ 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
+ 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
+ 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72,
+ 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66,
+ 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19,
+ 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62,
+ 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,
+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f,
+ 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d,
+ 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65,
+ 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78,
+ 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x6f,
+ 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x72,
+ 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x72,
+ 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a,
+ 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
+ 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65,
+ 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52,
+ 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12,
+ 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
+ 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69,
+ 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61,
+ 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61,
+ 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, 0x0a,
+ 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d,
+ 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, 0x65,
+ 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74,
+ 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74,
+ 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x75,
+ 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69,
+ 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, 0x63,
+ 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65,
+ 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72,
+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, 0x5f,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+ 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66,
- 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
- 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
- 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a,
- 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61,
- 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69,
- 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
- 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65,
- 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66,
- 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72,
- 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c,
- 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,
- 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72,
- 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74,
- 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54,
- 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16,
- 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72,
- 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f,
- 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77,
- 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73,
- 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a,
- 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
- 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74,
- 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63,
- 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72,
- 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72,
- 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c,
- 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73,
- 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10,
- 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53,
- 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75,
- 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61,
- 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44,
- 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69,
- 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b,
- 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65,
- 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65,
- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
- 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69,
- 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
- 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed,
- 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74,
- 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74,
- 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12,
- 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
- 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
- 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88,
- 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f,
- 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52,
- 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c,
- 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
- 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a,
- 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
- 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73,
- 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
- 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08,
- 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50,
- 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65,
- 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
- 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11,
- 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
- 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,
- 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72,
- 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
+ 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d,
+ 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, 0x04,
+ 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12,
+ 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
+ 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f,
+ 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x71,
+ 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01,
+ 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f,
+ 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x6e,
+ 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02,
- 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
- 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70,
- 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57,
- 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x05,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65,
+ 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f,
+ 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f,
+ 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0x42,
+ 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+ 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
+ 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, 0x0a,
+ 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, 0x0a,
+ 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72,
+ 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
+ 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61,
+ 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69,
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57,
+ 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b,
+ 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52,
+ 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01,
+ 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f,
+ 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x52,
+ 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, 0x16,
0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a,
- 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
- 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f,
- 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b,
- 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69,
- 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
- 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72,
- 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68,
- 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a,
- 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b,
- 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12,
- 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52,
- 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02,
- 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
- 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d,
- 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
- 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65,
- 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74,
- 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68,
- 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f,
- 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73,
- 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69,
- 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70,
- 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e,
- 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
- 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28,
- 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65,
- 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74,
- 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74,
- 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20,
- 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65,
- 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
- 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66,
- 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61,
- 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
- 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
- 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41,
- 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65,
- 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
- 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
- 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65,
- 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
- 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61,
- 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
+ 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70,
+ 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
+ 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, 0x5f,
+ 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73,
+ 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f,
+ 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65,
+ 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72,
+ 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07,
+ 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74,
+ 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65,
+ 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18,
+ 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64,
+ 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
+ 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c,
+ 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, 0x0a,
+ 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
+ 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
+ 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74,
+ 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
- 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74,
- 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13,
- 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c,
- 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65,
- 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63,
- 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
- 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69,
- 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63,
- 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65,
- 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a,
- 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54,
+ 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
+ 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61,
+ 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70,
+ 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f,
+ 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73,
+ 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65,
+ 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a,
+ 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72,
+ 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f,
+ 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73,
+ 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64,
+ 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44,
+ 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61,
+ 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x67,
+ 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a,
- 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67,
- 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45,
+ 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
+ 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54,
+ 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, 0x74,
+ 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
+ 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c,
+ 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f,
+ 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47,
+ 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x68,
+ 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x61,
+ 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65,
+ 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74,
+ 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b,
+ 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11,
+ 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
+ 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63,
+ 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0b,
+ 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
+ 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c,
+ 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, 0x0c,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67,
+ 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f,
+ 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d,
+ 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72,
- 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c,
- 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15,
- 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c,
- 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74,
- 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74,
- 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f,
- 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68,
- 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65,
- 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65,
- 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
- 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61,
- 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72,
- 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64,
- 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70,
- 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41,
- 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d,
- 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
- 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65,
- 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69,
- 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
- 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
- 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f,
- 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62,
- 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43,
- 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74,
+ 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
+ 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74,
+ 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e,
+ 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65,
+ 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63,
+ 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48,
+ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e,
0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e,
- 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
- 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61,
- 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70,
- 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c,
- 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
- 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a,
- 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
- 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07,
- 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44,
- 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
- 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74,
- 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65,
- 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12,
- 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53,
- 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12,
- 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12,
- 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49,
- 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73,
- 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76,
- 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61,
- 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+ 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41,
+ 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70,
+ 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65,
+ 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, 0x6e,
+ 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41,
+ 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f,
+ 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68,
+ 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74,
+ 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, 0x62,
+ 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47,
+ 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74,
+ 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa,
+ 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61,
+ 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x12,
+ 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
+ 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, 0x0a,
+ 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, 0x45,
+ 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x03,
+ 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
+ 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06,
+ 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48,
+ 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e,
+ 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12,
+ 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43,
+ 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45,
+ 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73,
+ 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e,
+ 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
index 9f6b0df851b..5e4a664f0f3 100644
--- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
+++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go
@@ -1190,6 +1190,7 @@ func (m *ReplicationStatusResponse) CloneVT() *ReplicationStatusResponse {
}
r := new(ReplicationStatusResponse)
r.Status = m.Status.CloneVT()
+ r.BackupRunning = m.BackupRunning
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -1967,6 +1968,7 @@ func (m *StopReplicationAndGetStatusResponse) CloneVT() *StopReplicationAndGetSt
}
r := new(StopReplicationAndGetStatusResponse)
r.Status = m.Status.CloneVT()
+ r.BackupRunning = m.BackupRunning
if len(m.unknownFields) > 0 {
r.unknownFields = make([]byte, len(m.unknownFields))
copy(r.unknownFields, m.unknownFields)
@@ -5786,6 +5788,16 @@ func (m *ReplicationStatusResponse) MarshalToSizedBufferVT(dAtA []byte) (int, er
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.BackupRunning {
+ i--
+ if m.BackupRunning {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x10
+ }
if m.Status != nil {
size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i])
if err != nil {
@@ -7593,6 +7605,16 @@ func (m *StopReplicationAndGetStatusResponse) MarshalToSizedBufferVT(dAtA []byte
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if m.BackupRunning {
+ i--
+ if m.BackupRunning {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
if m.Status != nil {
size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i])
if err != nil {
@@ -11516,6 +11538,9 @@ func (m *ReplicationStatusResponse) SizeVT() (n int) {
l = m.Status.SizeVT()
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ if m.BackupRunning {
+ n += 2
+ }
n += len(m.unknownFields)
return n
}
@@ -12111,6 +12136,9 @@ func (m *StopReplicationAndGetStatusResponse) SizeVT() (n int) {
l = m.Status.SizeVT()
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ if m.BackupRunning {
+ n += 2
+ }
n += len(m.unknownFields)
return n
}
@@ -19412,6 +19440,26 @@ func (m *ReplicationStatusResponse) UnmarshalVT(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.BackupRunning = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -22781,6 +22829,26 @@ func (m *StopReplicationAndGetStatusResponse) UnmarshalVT(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.BackupRunning = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
index b9c83c3658d..768fae5bff4 100644
--- a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
+++ b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go
@@ -188,6 +188,8 @@ type TabletManagerClient struct {
EventJitter time.Duration
ErrorAfter time.Duration
}
+ // Backing Up - keyed by tablet alias.
+ TabletsBackupState map[string]bool
// keyed by tablet alias.
ChangeTagsResult map[string]struct {
Response *tabletmanagerdatapb.ChangeTagsResponse
@@ -1080,6 +1082,9 @@ func (fake *TabletManagerClient) ReplicationStatus(ctx context.Context, tablet *
}
if result, ok := fake.ReplicationStatusResults[key]; ok {
+ if _, ok = fake.TabletsBackupState[key]; ok {
+ result.Position.BackupRunning = fake.TabletsBackupState[key]
+ }
return result.Position, result.Error
}
diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter.go b/go/vt/vtctl/reparentutil/emergency_reparenter.go
index ef30f48e8ac..70faf8958c7 100644
--- a/go/vt/vtctl/reparentutil/emergency_reparenter.go
+++ b/go/vt/vtctl/reparentutil/emergency_reparenter.go
@@ -258,7 +258,7 @@ func (erp *EmergencyReparenter) reparentShardLocked(ctx context.Context, ev *eve
// 2. Remove the tablets with the Must_not promote rule
// 3. Remove cross-cell tablets if PreventCrossCellPromotion is specified
// Our final primary candidate MUST belong to this list of valid candidates
- validCandidateTablets, err = erp.filterValidCandidates(validCandidateTablets, stoppedReplicationSnapshot.reachableTablets, prevPrimary, opts)
+ validCandidateTablets, err = erp.filterValidCandidates(validCandidateTablets, stoppedReplicationSnapshot.reachableTablets, stoppedReplicationSnapshot.tabletsBackupState, prevPrimary, opts)
if err != nil {
return err
}
@@ -737,9 +737,12 @@ func (erp *EmergencyReparenter) identifyPrimaryCandidate(
return nil, vterrors.Errorf(vtrpc.Code_INTERNAL, "unreachable - did not find a valid primary candidate even though the valid candidate list was non-empty")
}
-// filterValidCandidates filters valid tablets, keeping only the ones which can successfully be promoted without any constraint failures and can make forward progress on being promoted
-func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb.Tablet, tabletsReachable []*topodatapb.Tablet, prevPrimary *topodatapb.Tablet, opts EmergencyReparentOptions) ([]*topodatapb.Tablet, error) {
+// filterValidCandidates filters valid tablets, keeping only the ones which can successfully be promoted without any
+// constraint failures and can make forward progress on being promoted. It will filter out candidates taking backups
+// if possible.
+func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb.Tablet, tabletsReachable []*topodatapb.Tablet, tabletsBackupState map[string]bool, prevPrimary *topodatapb.Tablet, opts EmergencyReparentOptions) ([]*topodatapb.Tablet, error) {
var restrictedValidTablets []*topodatapb.Tablet
+ var notPreferredValidTablets []*topodatapb.Tablet
for _, tablet := range validTablets {
tabletAliasStr := topoproto.TabletAliasString(tablet.Alias)
// Remove tablets which have MustNot promote rule since they must never be promoted
@@ -766,9 +769,20 @@ func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb
}
continue
}
- restrictedValidTablets = append(restrictedValidTablets, tablet)
+ // Put candidates that are running a backup in a separate list
+ backingUp, ok := tabletsBackupState[tabletAliasStr]
+ if ok && backingUp {
+ erp.logger.Infof("Setting %s in list of valid candidates taking a backup", tabletAliasStr)
+ notPreferredValidTablets = append(notPreferredValidTablets, tablet)
+ } else {
+ restrictedValidTablets = append(restrictedValidTablets, tablet)
+ }
+ }
+ if len(restrictedValidTablets) > 0 {
+ return restrictedValidTablets, nil
}
- return restrictedValidTablets, nil
+
+ return notPreferredValidTablets, nil
}
// findErrantGTIDs tries to find errant GTIDs for the valid candidates and returns the updated list of valid candidates.
diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
index ea6e768d036..3669c34dc11 100644
--- a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
+++ b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go
@@ -4463,27 +4463,55 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) {
}
)
allTablets := []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, replicaCrossCellTablet, rdonlyCrossCellTablet}
+ noTabletsTakingBackup := map[string]bool{
+ topoproto.TabletAliasString(primaryTablet.Alias): false, topoproto.TabletAliasString(replicaTablet.Alias): false,
+ topoproto.TabletAliasString(rdonlyTablet.Alias): false, topoproto.TabletAliasString(replicaCrossCellTablet.Alias): false,
+ topoproto.TabletAliasString(rdonlyCrossCellTablet.Alias): false,
+ }
+ replicaTakingBackup := map[string]bool{
+ topoproto.TabletAliasString(primaryTablet.Alias): false, topoproto.TabletAliasString(replicaTablet.Alias): true,
+ topoproto.TabletAliasString(rdonlyTablet.Alias): false, topoproto.TabletAliasString(replicaCrossCellTablet.Alias): false,
+ topoproto.TabletAliasString(rdonlyCrossCellTablet.Alias): false,
+ }
tests := []struct {
- name string
- durability string
- validTablets []*topodatapb.Tablet
- tabletsReachable []*topodatapb.Tablet
- prevPrimary *topodatapb.Tablet
- opts EmergencyReparentOptions
- filteredTablets []*topodatapb.Tablet
- errShouldContain string
+ name string
+ durability string
+ validTablets []*topodatapb.Tablet
+ tabletsReachable []*topodatapb.Tablet
+ tabletsTakingBackup map[string]bool
+ prevPrimary *topodatapb.Tablet
+ opts EmergencyReparentOptions
+ filteredTablets []*topodatapb.Tablet
+ errShouldContain string
}{
{
- name: "filter must not",
- durability: "none",
- validTablets: allTablets,
- tabletsReachable: allTablets,
- filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet, replicaCrossCellTablet},
+ name: "filter must not",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
+ filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet, replicaCrossCellTablet},
}, {
- name: "filter cross cell",
- durability: "none",
- validTablets: allTablets,
- tabletsReachable: allTablets,
+ name: "host taking backup must not be on the list when there are other candidates",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: []*topodatapb.Tablet{replicaTablet, replicaCrossCellTablet, rdonlyTablet, rdonlyCrossCellTablet},
+ tabletsTakingBackup: replicaTakingBackup,
+ filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet},
+ }, {
+ name: "host taking backup must be the only one on the list when there are no other candidates",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: []*topodatapb.Tablet{replicaTablet, rdonlyTablet, rdonlyCrossCellTablet},
+ tabletsTakingBackup: replicaTakingBackup,
+ filteredTablets: []*topodatapb.Tablet{replicaTablet},
+ }, {
+ name: "filter cross cell",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
+
prevPrimary: &topodatapb.Tablet{
Alias: &topodatapb.TabletAlias{
Cell: "zone-1",
@@ -4494,11 +4522,12 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) {
},
filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet},
}, {
- name: "filter establish",
- durability: "cross_cell",
- validTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet},
- tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet},
- filteredTablets: nil,
+ name: "filter establish",
+ durability: "cross_cell",
+ validTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet},
+ tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet},
+ tabletsTakingBackup: noTabletsTakingBackup,
+ filteredTablets: nil,
}, {
name: "filter mixed",
durability: "cross_cell",
@@ -4510,34 +4539,38 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) {
opts: EmergencyReparentOptions{
PreventCrossCellPromotion: true,
},
- validTablets: allTablets,
- tabletsReachable: allTablets,
- filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet},
+ validTablets: allTablets,
+ tabletsReachable: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
+ filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet},
}, {
- name: "error - requested primary must not",
- durability: "none",
- validTablets: allTablets,
- tabletsReachable: allTablets,
+ name: "error - requested primary must not",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
opts: EmergencyReparentOptions{
NewPrimaryAlias: rdonlyTablet.Alias,
},
errShouldContain: "proposed primary zone-1-0000000003 has a must not promotion rule",
}, {
- name: "error - requested primary not in same cell",
- durability: "none",
- validTablets: allTablets,
- tabletsReachable: allTablets,
- prevPrimary: primaryTablet,
+ name: "error - requested primary not in same cell",
+ durability: "none",
+ validTablets: allTablets,
+ tabletsReachable: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
+ prevPrimary: primaryTablet,
opts: EmergencyReparentOptions{
PreventCrossCellPromotion: true,
NewPrimaryAlias: replicaCrossCellTablet.Alias,
},
errShouldContain: "proposed primary zone-2-0000000002 is is a different cell as the previous primary",
}, {
- name: "error - requested primary cannot establish",
- durability: "cross_cell",
- validTablets: allTablets,
- tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet},
+ name: "error - requested primary cannot establish",
+ durability: "cross_cell",
+ validTablets: allTablets,
+ tabletsTakingBackup: noTabletsTakingBackup,
+ tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet},
opts: EmergencyReparentOptions{
NewPrimaryAlias: primaryTablet.Alias,
},
@@ -4551,7 +4584,7 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) {
tt.opts.durability = durability
logger := logutil.NewMemoryLogger()
erp := NewEmergencyReparenter(nil, nil, logger)
- tabletList, err := erp.filterValidCandidates(tt.validTablets, tt.tabletsReachable, tt.prevPrimary, tt.opts)
+ tabletList, err := erp.filterValidCandidates(tt.validTablets, tt.tabletsReachable, tt.tabletsTakingBackup, tt.prevPrimary, tt.opts)
if tt.errShouldContain != "" {
require.Error(t, err)
require.Contains(t, err.Error(), tt.errShouldContain)
diff --git a/go/vt/vtctl/reparentutil/reparent_sorter_test.go b/go/vt/vtctl/reparentutil/reparent_sorter_test.go
index ae5d56e884e..87e7b253d54 100644
--- a/go/vt/vtctl/reparentutil/reparent_sorter_test.go
+++ b/go/vt/vtctl/reparentutil/reparent_sorter_test.go
@@ -22,7 +22,6 @@ import (
"github.com/stretchr/testify/require"
"vitess.io/vitess/go/mysql/replication"
-
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
)
diff --git a/go/vt/vtctl/reparentutil/replication.go b/go/vt/vtctl/reparentutil/replication.go
index 8642de84fc7..e7919361a09 100644
--- a/go/vt/vtctl/reparentutil/replication.go
+++ b/go/vt/vtctl/reparentutil/replication.go
@@ -165,9 +165,10 @@ func SetReplicationSource(ctx context.Context, ts *topo.Server, tmc tmclient.Tab
// replicationSnapshot stores the status maps and the tablets that were reachable
// when trying to stopReplicationAndBuildStatusMaps.
type replicationSnapshot struct {
- statusMap map[string]*replicationdatapb.StopReplicationStatus
- primaryStatusMap map[string]*replicationdatapb.PrimaryStatus
- reachableTablets []*topodatapb.Tablet
+ statusMap map[string]*replicationdatapb.StopReplicationStatus
+ primaryStatusMap map[string]*replicationdatapb.PrimaryStatus
+ reachableTablets []*topodatapb.Tablet
+ tabletsBackupState map[string]bool
}
// stopReplicationAndBuildStatusMaps stops replication on all replicas, then
@@ -193,9 +194,10 @@ func stopReplicationAndBuildStatusMaps(
errChan = make(chan concurrency.Error)
allTablets []*topodatapb.Tablet
res = &replicationSnapshot{
- statusMap: map[string]*replicationdatapb.StopReplicationStatus{},
- primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{},
- reachableTablets: []*topodatapb.Tablet{},
+ statusMap: map[string]*replicationdatapb.StopReplicationStatus{},
+ primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{},
+ reachableTablets: []*topodatapb.Tablet{},
+ tabletsBackupState: map[string]bool{},
}
)
@@ -214,6 +216,9 @@ func stopReplicationAndBuildStatusMaps(
logger.Infof("getting replication position from %v", alias)
stopReplicationStatus, err := tmc.StopReplicationAndGetStatus(groupCtx, tabletInfo.Tablet, replicationdatapb.StopReplicationMode_IOTHREADONLY)
+ m.Lock()
+ res.tabletsBackupState[alias] = stopReplicationStatus.GetBackupRunning()
+ m.Unlock()
if err != nil {
sqlErr, isSQLErr := sqlerror.NewSQLErrorFromError(err).(*sqlerror.SQLError)
if isSQLErr && sqlErr != nil && sqlErr.Number() == sqlerror.ERNotReplica {
diff --git a/go/vt/vtctl/reparentutil/util.go b/go/vt/vtctl/reparentutil/util.go
index fd701f8c69b..c4c23e65c7e 100644
--- a/go/vt/vtctl/reparentutil/util.go
+++ b/go/vt/vtctl/reparentutil/util.go
@@ -58,7 +58,8 @@ const (
// cell as the current primary, and to be different from avoidPrimaryAlias. The
// tablet with the most advanced replication position is chosen to minimize the
// amount of time spent catching up with the current primary. Further ties are
-// broken by the durability rules.
+// broken by the durability rules. Tablets taking backups are excluded from
+// consideration.
// Note that the search for the most advanced replication position will race
// with transactions being executed on the current primary, so when all tablets
// are at roughly the same position, then the choice of new primary-elect will
@@ -126,13 +127,17 @@ func ElectNewPrimary(
tb := tablet
errorGroup.Go(func() error {
// find and store the positions for the tablet
- pos, replLag, err := findPositionAndLagForTablet(groupCtx, tb, logger, tmc, opts.WaitReplicasTimeout)
+ pos, replLag, takingBackup, err := findTabletPositionLagBackupStatus(groupCtx, tb, logger, tmc, opts.WaitReplicasTimeout)
mu.Lock()
defer mu.Unlock()
if err == nil && (opts.TolerableReplLag == 0 || opts.TolerableReplLag >= replLag) {
- validTablets = append(validTablets, tb)
- tabletPositions = append(tabletPositions, pos)
- innodbBufferPool = append(innodbBufferPool, innodbBufferPoolData[topoproto.TabletAliasString(tb.Alias)])
+ if takingBackup {
+ reasonsToInvalidate.WriteString(fmt.Sprintf("\n%v is taking a backup", topoproto.TabletAliasString(tablet.Alias)))
+ } else {
+ validTablets = append(validTablets, tb)
+ tabletPositions = append(tabletPositions, pos)
+ innodbBufferPool = append(innodbBufferPool, innodbBufferPoolData[topoproto.TabletAliasString(tb.Alias)])
+ }
} else {
reasonsToInvalidate.WriteString(fmt.Sprintf("\n%v has %v replication lag which is more than the tolerable amount", topoproto.TabletAliasString(tablet.Alias), replLag))
}
@@ -150,7 +155,7 @@ func ElectNewPrimary(
return nil, vterrors.Errorf(vtrpc.Code_INTERNAL, "cannot find a tablet to reparent to%v", reasonsToInvalidate.String())
}
- // sort the tablets for finding the best primary
+ // sort preferred tablets for finding the best primary
err = sortTabletsForReparent(validTablets, tabletPositions, innodbBufferPool, opts.durability)
if err != nil {
return nil, err
@@ -159,9 +164,9 @@ func ElectNewPrimary(
return validTablets[0].Alias, nil
}
-// findPositionAndLagForTablet processes the replication position and lag for a single tablet and
+// findTabletPositionLagBackupStatus processes the replication position and lag for a single tablet and
// returns it. It is safe to call from multiple goroutines.
-func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet, logger logutil.Logger, tmc tmclient.TabletManagerClient, waitTimeout time.Duration) (replication.Position, time.Duration, error) {
+func findTabletPositionLagBackupStatus(ctx context.Context, tablet *topodatapb.Tablet, logger logutil.Logger, tmc tmclient.TabletManagerClient, waitTimeout time.Duration) (replication.Position, time.Duration, bool, error) {
logger.Infof("getting replication position from %v", topoproto.TabletAliasString(tablet.Alias))
ctx, cancel := context.WithTimeout(ctx, waitTimeout)
@@ -172,10 +177,10 @@ func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet,
sqlErr, isSQLErr := sqlerror.NewSQLErrorFromError(err).(*sqlerror.SQLError)
if isSQLErr && sqlErr != nil && sqlErr.Number() == sqlerror.ERNotReplica {
logger.Warningf("no replication statue from %v, using empty gtid set", topoproto.TabletAliasString(tablet.Alias))
- return replication.Position{}, 0, nil
+ return replication.Position{}, 0, false, nil
}
logger.Warningf("failed to get replication status from %v, ignoring tablet: %v", topoproto.TabletAliasString(tablet.Alias), err)
- return replication.Position{}, 0, err
+ return replication.Position{}, 0, false, err
}
// Use the relay log position if available, otherwise use the executed GTID set (binary log position).
@@ -186,10 +191,10 @@ func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet,
pos, err := replication.DecodePosition(positionString)
if err != nil {
logger.Warningf("cannot decode replica position %v for tablet %v, ignoring tablet: %v", positionString, topoproto.TabletAliasString(tablet.Alias), err)
- return replication.Position{}, 0, err
+ return replication.Position{}, 0, status.BackupRunning, err
}
- return pos, time.Second * time.Duration(status.ReplicationLagSeconds), nil
+ return pos, time.Second * time.Duration(status.ReplicationLagSeconds), status.BackupRunning, nil
}
// FindCurrentPrimary returns the current primary tablet of a shard, if any. The
diff --git a/go/vt/vtctl/reparentutil/util_test.go b/go/vt/vtctl/reparentutil/util_test.go
index f4e9092fc3f..ac44da8175a 100644
--- a/go/vt/vtctl/reparentutil/util_test.go
+++ b/go/vt/vtctl/reparentutil/util_test.go
@@ -139,6 +139,112 @@ func TestElectNewPrimary(t *testing.T) {
},
errContains: nil,
},
+ {
+ name: "Two good replicas, but one of them is taking a backup so we pick the other one",
+ tmc: &chooseNewPrimaryTestTMClient{
+ // both zone1-101 and zone1-102 are equivalent from a replicaiton PoV, but zone1-102 is taking a backup
+ replicationStatuses: map[string]*replicationdatapb.Status{
+ "zone1-0000000101": {
+ Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
+ BackupRunning: true,
+ },
+ "zone1-0000000102": {
+ Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
+ BackupRunning: false,
+ },
+ },
+ },
+ tolerableReplLag: 50 * time.Second,
+ shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{
+ PrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ }, nil),
+ tabletMap: map[string]*topo.TabletInfo{
+ "primary": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "replica1": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 101,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "replica2": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ },
+ avoidPrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 0,
+ },
+ expected: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ errContains: nil,
+ },
+ {
+ name: "Only one replica, but it's taking a backup. We don't elect it.",
+ tmc: &chooseNewPrimaryTestTMClient{
+ // both zone1-101 and zone1-102 are equivalent from a replicaiton PoV, but zone1-102 is taking a backup
+ replicationStatuses: map[string]*replicationdatapb.Status{
+ "zone1-0000000101": {
+ Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
+ BackupRunning: true,
+ },
+ },
+ },
+ tolerableReplLag: 50 * time.Second,
+ shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{
+ PrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ }, nil),
+ tabletMap: map[string]*topo.TabletInfo{
+ "primary": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "replica1": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 101,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ },
+ avoidPrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 0,
+ },
+ expected: nil,
+ errContains: []string{"zone1-0000000101 is taking a backup"},
+ },
{
name: "new primary alias provided - no tolerable replication lag",
tolerableReplLag: 0,
@@ -414,6 +520,67 @@ func TestElectNewPrimary(t *testing.T) {
},
errContains: nil,
},
+ {
+ name: "Two replicas, first one with too much lag, another one taking a backup - none is a good candidate",
+ tmc: &chooseNewPrimaryTestTMClient{
+ // zone1-101 is behind zone1-102
+ replicationStatuses: map[string]*replicationdatapb.Status{
+ "zone1-0000000101": {
+ Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1",
+ ReplicationLagSeconds: 55,
+ },
+ "zone1-0000000102": {
+ Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5",
+ BackupRunning: true,
+ },
+ },
+ },
+ tolerableReplLag: 50 * time.Second,
+ shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{
+ PrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ }, nil),
+ tabletMap: map[string]*topo.TabletInfo{
+ "primary": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ Type: topodatapb.TabletType_PRIMARY,
+ },
+ },
+ "replica1": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 101,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ "replica2": {
+ Tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 102,
+ },
+ Type: topodatapb.TabletType_REPLICA,
+ },
+ },
+ },
+ avoidPrimaryAlias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 0,
+ },
+ expected: nil,
+ errContains: []string{
+ "zone1-0000000101 has 55s replication lag which is more than the tolerable amount",
+ "zone1-0000000102 is taking a backup",
+ },
+ },
{
name: "found a replica - more advanced relay log position",
tmc: &chooseNewPrimaryTestTMClient{
@@ -881,12 +1048,13 @@ func TestFindPositionForTablet(t *testing.T) {
ctx := context.Background()
logger := logutil.NewMemoryLogger()
tests := []struct {
- name string
- tmc *testutil.TabletManagerClient
- tablet *topodatapb.Tablet
- expectedPosition string
- expectedLag time.Duration
- expectedErr string
+ name string
+ tmc *testutil.TabletManagerClient
+ tablet *topodatapb.Tablet
+ expectedPosition string
+ expectedLag time.Duration
+ expectedErr string
+ expectedTakingBackup bool
}{
{
name: "executed gtid set",
@@ -911,6 +1079,31 @@ func TestFindPositionForTablet(t *testing.T) {
},
expectedLag: 201 * time.Second,
expectedPosition: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5",
+ }, {
+ name: "Host is taking a backup",
+ tmc: &testutil.TabletManagerClient{
+ ReplicationStatusResults: map[string]struct {
+ Position *replicationdatapb.Status
+ Error error
+ }{
+ "zone1-0000000100": {
+ Position: &replicationdatapb.Status{
+ Position: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5",
+ ReplicationLagSeconds: 201,
+ },
+ },
+ },
+ TabletsBackupState: map[string]bool{"zone1-0000000100": true},
+ },
+ tablet: &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone1",
+ Uid: 100,
+ },
+ },
+ expectedLag: 201 * time.Second,
+ expectedTakingBackup: true,
+ expectedPosition: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5",
}, {
name: "no replication status",
tmc: &testutil.TabletManagerClient{
@@ -981,7 +1174,7 @@ func TestFindPositionForTablet(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
- pos, lag, err := findPositionAndLagForTablet(ctx, test.tablet, logger, test.tmc, 10*time.Second)
+ pos, lag, takingBackup, err := findTabletPositionLagBackupStatus(ctx, test.tablet, logger, test.tmc, 10*time.Second)
if test.expectedErr != "" {
require.EqualError(t, err, test.expectedErr)
return
@@ -990,6 +1183,7 @@ func TestFindPositionForTablet(t *testing.T) {
posString := replication.EncodePosition(pos)
require.Equal(t, test.expectedPosition, posString)
require.Equal(t, test.expectedLag, lag)
+ require.Equal(t, test.expectedTakingBackup, takingBackup)
})
}
}
diff --git a/go/vt/vttablet/grpctmserver/server.go b/go/vt/vttablet/grpctmserver/server.go
index 777f641b1fc..889448a7cd3 100644
--- a/go/vt/vttablet/grpctmserver/server.go
+++ b/go/vt/vttablet/grpctmserver/server.go
@@ -354,7 +354,7 @@ func (s *server) MysqlHostMetrics(ctx context.Context, request *tabletmanagerdat
func (s *server) ReplicationStatus(ctx context.Context, request *tabletmanagerdatapb.ReplicationStatusRequest) (response *tabletmanagerdatapb.ReplicationStatusResponse, err error) {
defer s.tm.HandleRPCPanic(ctx, "ReplicationStatus", request, response, false /*verbose*/, &err)
ctx = callinfo.GRPCCallInfo(ctx)
- response = &tabletmanagerdatapb.ReplicationStatusResponse{}
+ response = &tabletmanagerdatapb.ReplicationStatusResponse{BackupRunning: s.tm.IsBackupRunning()}
status, err := s.tm.ReplicationStatus(ctx)
if err == nil {
response.Status = status
@@ -637,6 +637,9 @@ func (s *server) StopReplicationAndGetStatus(ctx context.Context, request *table
if err == nil {
response.Status = statusResponse.Status
}
+
+ response.BackupRunning = s.tm.IsBackupRunning()
+
return response, err
}
diff --git a/go/vt/vttablet/tabletmanager/rpc_agent.go b/go/vt/vttablet/tabletmanager/rpc_agent.go
index 203e1d006ab..445d74cb930 100644
--- a/go/vt/vttablet/tabletmanager/rpc_agent.go
+++ b/go/vt/vttablet/tabletmanager/rpc_agent.go
@@ -166,6 +166,8 @@ type RPCTM interface {
RestoreFromBackup(ctx context.Context, logger logutil.Logger, request *tabletmanagerdatapb.RestoreFromBackupRequest) error
+ IsBackupRunning() bool
+
// HandleRPCPanic is to be called in a defer statement in each
// RPC input point.
HandleRPCPanic(ctx context.Context, name string, args, reply any, verbose bool, err *error)
diff --git a/go/vt/vttablet/tabletmanager/rpc_backup.go b/go/vt/vttablet/tabletmanager/rpc_backup.go
index a66264d98af..22fe72716dd 100644
--- a/go/vt/vttablet/tabletmanager/rpc_backup.go
+++ b/go/vt/vttablet/tabletmanager/rpc_backup.go
@@ -205,6 +205,10 @@ func (tm *TabletManager) RestoreFromBackup(ctx context.Context, logger logutil.L
return err
}
+func (tm *TabletManager) IsBackupRunning() bool {
+ return tm._isBackupRunning
+}
+
func (tm *TabletManager) beginBackup(backupMode string) error {
tm.mutex.Lock()
defer tm.mutex.Unlock()
diff --git a/go/vt/vttablet/tmrpctest/test_tm_rpc.go b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
index 88ba3506ba5..a106b43bf2c 100644
--- a/go/vt/vttablet/tmrpctest/test_tm_rpc.go
+++ b/go/vt/vttablet/tmrpctest/test_tm_rpc.go
@@ -1428,6 +1428,10 @@ func (fra *fakeRPCTM) Backup(ctx context.Context, logger logutil.Logger, request
return nil
}
+func (fra *fakeRPCTM) IsBackupRunning() bool {
+ return false
+}
+
func tmRPCTestBackup(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) {
req := &tabletmanagerdatapb.BackupRequest{Concurrency: testBackupConcurrency, AllowPrimary: testBackupAllowPrimary}
stream, err := client.Backup(ctx, tablet, req)
diff --git a/proto/replicationdata.proto b/proto/replicationdata.proto
index 7107332233b..76ca3e02103 100644
--- a/proto/replicationdata.proto
+++ b/proto/replicationdata.proto
@@ -50,6 +50,7 @@ message Status {
bool has_replication_filters = 22;
bool ssl_allowed = 23;
bool replication_lag_unknown = 24;
+ bool backup_running = 25;
}
// Configuration holds replication configuration information gathered from performance_schema and global variables.
@@ -65,6 +66,7 @@ message Configuration {
message StopReplicationStatus {
replicationdata.Status before = 1;
replicationdata.Status after = 2;
+ bool backup_running = 3;
}
// StopReplicationMode is used to provide controls over how replication is stopped.
diff --git a/proto/tabletmanagerdata.proto b/proto/tabletmanagerdata.proto
index bb20e712e7f..9bb60184267 100644
--- a/proto/tabletmanagerdata.proto
+++ b/proto/tabletmanagerdata.proto
@@ -360,6 +360,7 @@ message ReplicationStatusRequest {
message ReplicationStatusResponse {
replicationdata.Status status = 1;
+ bool backup_running = 2;
}
message PrimaryStatusRequest {
@@ -548,6 +549,7 @@ message StopReplicationAndGetStatusResponse {
// Status represents the replication status call right before, and right after telling the replica to stop.
replicationdata.StopReplicationStatus status = 2;
+ bool backup_running = 3;
}
message PromoteReplicaRequest {
diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts
index 9e11f5f37d9..95b1448acef 100644
--- a/web/vtadmin/src/proto/vtadmin.d.ts
+++ b/web/vtadmin/src/proto/vtadmin.d.ts
@@ -26578,6 +26578,9 @@ export namespace tabletmanagerdata {
/** ReplicationStatusResponse status */
status?: (replicationdata.IStatus|null);
+
+ /** ReplicationStatusResponse backup_running */
+ backup_running?: (boolean|null);
}
/** Represents a ReplicationStatusResponse. */
@@ -26592,6 +26595,9 @@ export namespace tabletmanagerdata {
/** ReplicationStatusResponse status. */
public status?: (replicationdata.IStatus|null);
+ /** ReplicationStatusResponse backup_running. */
+ public backup_running: boolean;
+
/**
* Creates a new ReplicationStatusResponse instance using the specified properties.
* @param [properties] Properties to set
@@ -30986,6 +30992,9 @@ export namespace tabletmanagerdata {
/** StopReplicationAndGetStatusResponse status */
status?: (replicationdata.IStopReplicationStatus|null);
+
+ /** StopReplicationAndGetStatusResponse backup_running */
+ backup_running?: (boolean|null);
}
/** Represents a StopReplicationAndGetStatusResponse. */
@@ -31000,6 +31009,9 @@ export namespace tabletmanagerdata {
/** StopReplicationAndGetStatusResponse status. */
public status?: (replicationdata.IStopReplicationStatus|null);
+ /** StopReplicationAndGetStatusResponse backup_running. */
+ public backup_running: boolean;
+
/**
* Creates a new StopReplicationAndGetStatusResponse instance using the specified properties.
* @param [properties] Properties to set
@@ -47923,6 +47935,9 @@ export namespace replicationdata {
/** Status replication_lag_unknown */
replication_lag_unknown?: (boolean|null);
+
+ /** Status backup_running */
+ backup_running?: (boolean|null);
}
/** Represents a Status. */
@@ -48000,6 +48015,9 @@ export namespace replicationdata {
/** Status replication_lag_unknown. */
public replication_lag_unknown: boolean;
+ /** Status backup_running. */
+ public backup_running: boolean;
+
/**
* Creates a new Status instance using the specified properties.
* @param [properties] Properties to set
@@ -48189,6 +48207,9 @@ export namespace replicationdata {
/** StopReplicationStatus after */
after?: (replicationdata.IStatus|null);
+
+ /** StopReplicationStatus backup_running */
+ backup_running?: (boolean|null);
}
/** Represents a StopReplicationStatus. */
@@ -48206,6 +48227,9 @@ export namespace replicationdata {
/** StopReplicationStatus after. */
public after?: (replicationdata.IStatus|null);
+ /** StopReplicationStatus backup_running. */
+ public backup_running: boolean;
+
/**
* Creates a new StopReplicationStatus instance using the specified properties.
* @param [properties] Properties to set
diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js
index d0ce20ccfc2..f179934c800 100644
--- a/web/vtadmin/src/proto/vtadmin.js
+++ b/web/vtadmin/src/proto/vtadmin.js
@@ -61346,6 +61346,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
* @memberof tabletmanagerdata
* @interface IReplicationStatusResponse
* @property {replicationdata.IStatus|null} [status] ReplicationStatusResponse status
+ * @property {boolean|null} [backup_running] ReplicationStatusResponse backup_running
*/
/**
@@ -61371,6 +61372,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
*/
ReplicationStatusResponse.prototype.status = null;
+ /**
+ * ReplicationStatusResponse backup_running.
+ * @member {boolean} backup_running
+ * @memberof tabletmanagerdata.ReplicationStatusResponse
+ * @instance
+ */
+ ReplicationStatusResponse.prototype.backup_running = false;
+
/**
* Creates a new ReplicationStatusResponse instance using the specified properties.
* @function create
@@ -61397,6 +61406,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
writer = $Writer.create();
if (message.status != null && Object.hasOwnProperty.call(message, "status"))
$root.replicationdata.Status.encode(message.status, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running"))
+ writer.uint32(/* id 2, wireType 0 =*/16).bool(message.backup_running);
return writer;
};
@@ -61435,6 +61446,10 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
message.status = $root.replicationdata.Status.decode(reader, reader.uint32());
break;
}
+ case 2: {
+ message.backup_running = reader.bool();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -61475,6 +61490,9 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
if (error)
return "status." + error;
}
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ if (typeof message.backup_running !== "boolean")
+ return "backup_running: boolean expected";
return null;
};
@@ -61495,6 +61513,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
throw TypeError(".tabletmanagerdata.ReplicationStatusResponse.status: object expected");
message.status = $root.replicationdata.Status.fromObject(object.status);
}
+ if (object.backup_running != null)
+ message.backup_running = Boolean(object.backup_running);
return message;
};
@@ -61511,10 +61531,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
if (!options)
options = {};
let object = {};
- if (options.defaults)
+ if (options.defaults) {
object.status = null;
+ object.backup_running = false;
+ }
if (message.status != null && message.hasOwnProperty("status"))
object.status = $root.replicationdata.Status.toObject(message.status, options);
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ object.backup_running = message.backup_running;
return object;
};
@@ -70518,6 +70542,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
* @memberof tabletmanagerdata
* @interface IStopReplicationAndGetStatusResponse
* @property {replicationdata.IStopReplicationStatus|null} [status] StopReplicationAndGetStatusResponse status
+ * @property {boolean|null} [backup_running] StopReplicationAndGetStatusResponse backup_running
*/
/**
@@ -70543,6 +70568,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
*/
StopReplicationAndGetStatusResponse.prototype.status = null;
+ /**
+ * StopReplicationAndGetStatusResponse backup_running.
+ * @member {boolean} backup_running
+ * @memberof tabletmanagerdata.StopReplicationAndGetStatusResponse
+ * @instance
+ */
+ StopReplicationAndGetStatusResponse.prototype.backup_running = false;
+
/**
* Creates a new StopReplicationAndGetStatusResponse instance using the specified properties.
* @function create
@@ -70569,6 +70602,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
writer = $Writer.create();
if (message.status != null && Object.hasOwnProperty.call(message, "status"))
$root.replicationdata.StopReplicationStatus.encode(message.status, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.backup_running);
return writer;
};
@@ -70607,6 +70642,10 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
message.status = $root.replicationdata.StopReplicationStatus.decode(reader, reader.uint32());
break;
}
+ case 3: {
+ message.backup_running = reader.bool();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -70647,6 +70686,9 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
if (error)
return "status." + error;
}
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ if (typeof message.backup_running !== "boolean")
+ return "backup_running: boolean expected";
return null;
};
@@ -70667,6 +70709,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
throw TypeError(".tabletmanagerdata.StopReplicationAndGetStatusResponse.status: object expected");
message.status = $root.replicationdata.StopReplicationStatus.fromObject(object.status);
}
+ if (object.backup_running != null)
+ message.backup_running = Boolean(object.backup_running);
return message;
};
@@ -70683,10 +70727,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => {
if (!options)
options = {};
let object = {};
- if (options.defaults)
+ if (options.defaults) {
object.status = null;
+ object.backup_running = false;
+ }
if (message.status != null && message.hasOwnProperty("status"))
object.status = $root.replicationdata.StopReplicationStatus.toObject(message.status, options);
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ object.backup_running = message.backup_running;
return object;
};
@@ -116245,6 +116293,7 @@ export const replicationdata = $root.replicationdata = (() => {
* @property {boolean|null} [has_replication_filters] Status has_replication_filters
* @property {boolean|null} [ssl_allowed] Status ssl_allowed
* @property {boolean|null} [replication_lag_unknown] Status replication_lag_unknown
+ * @property {boolean|null} [backup_running] Status backup_running
*/
/**
@@ -116438,6 +116487,14 @@ export const replicationdata = $root.replicationdata = (() => {
*/
Status.prototype.replication_lag_unknown = false;
+ /**
+ * Status backup_running.
+ * @member {boolean} backup_running
+ * @memberof replicationdata.Status
+ * @instance
+ */
+ Status.prototype.backup_running = false;
+
/**
* Creates a new Status instance using the specified properties.
* @function create
@@ -116506,6 +116563,8 @@ export const replicationdata = $root.replicationdata = (() => {
writer.uint32(/* id 23, wireType 0 =*/184).bool(message.ssl_allowed);
if (message.replication_lag_unknown != null && Object.hasOwnProperty.call(message, "replication_lag_unknown"))
writer.uint32(/* id 24, wireType 0 =*/192).bool(message.replication_lag_unknown);
+ if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running"))
+ writer.uint32(/* id 25, wireType 0 =*/200).bool(message.backup_running);
return writer;
};
@@ -116628,6 +116687,10 @@ export const replicationdata = $root.replicationdata = (() => {
message.replication_lag_unknown = reader.bool();
break;
}
+ case 25: {
+ message.backup_running = reader.bool();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -116729,6 +116792,9 @@ export const replicationdata = $root.replicationdata = (() => {
if (message.replication_lag_unknown != null && message.hasOwnProperty("replication_lag_unknown"))
if (typeof message.replication_lag_unknown !== "boolean")
return "replication_lag_unknown: boolean expected";
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ if (typeof message.backup_running !== "boolean")
+ return "backup_running: boolean expected";
return null;
};
@@ -116788,6 +116854,8 @@ export const replicationdata = $root.replicationdata = (() => {
message.ssl_allowed = Boolean(object.ssl_allowed);
if (object.replication_lag_unknown != null)
message.replication_lag_unknown = Boolean(object.replication_lag_unknown);
+ if (object.backup_running != null)
+ message.backup_running = Boolean(object.backup_running);
return message;
};
@@ -116827,6 +116895,7 @@ export const replicationdata = $root.replicationdata = (() => {
object.has_replication_filters = false;
object.ssl_allowed = false;
object.replication_lag_unknown = false;
+ object.backup_running = false;
}
if (message.position != null && message.hasOwnProperty("position"))
object.position = message.position;
@@ -116872,6 +116941,8 @@ export const replicationdata = $root.replicationdata = (() => {
object.ssl_allowed = message.ssl_allowed;
if (message.replication_lag_unknown != null && message.hasOwnProperty("replication_lag_unknown"))
object.replication_lag_unknown = message.replication_lag_unknown;
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ object.backup_running = message.backup_running;
return object;
};
@@ -117139,6 +117210,7 @@ export const replicationdata = $root.replicationdata = (() => {
* @interface IStopReplicationStatus
* @property {replicationdata.IStatus|null} [before] StopReplicationStatus before
* @property {replicationdata.IStatus|null} [after] StopReplicationStatus after
+ * @property {boolean|null} [backup_running] StopReplicationStatus backup_running
*/
/**
@@ -117172,6 +117244,14 @@ export const replicationdata = $root.replicationdata = (() => {
*/
StopReplicationStatus.prototype.after = null;
+ /**
+ * StopReplicationStatus backup_running.
+ * @member {boolean} backup_running
+ * @memberof replicationdata.StopReplicationStatus
+ * @instance
+ */
+ StopReplicationStatus.prototype.backup_running = false;
+
/**
* Creates a new StopReplicationStatus instance using the specified properties.
* @function create
@@ -117200,6 +117280,8 @@ export const replicationdata = $root.replicationdata = (() => {
$root.replicationdata.Status.encode(message.before, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
if (message.after != null && Object.hasOwnProperty.call(message, "after"))
$root.replicationdata.Status.encode(message.after, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.backup_running);
return writer;
};
@@ -117242,6 +117324,10 @@ export const replicationdata = $root.replicationdata = (() => {
message.after = $root.replicationdata.Status.decode(reader, reader.uint32());
break;
}
+ case 3: {
+ message.backup_running = reader.bool();
+ break;
+ }
default:
reader.skipType(tag & 7);
break;
@@ -117287,6 +117373,9 @@ export const replicationdata = $root.replicationdata = (() => {
if (error)
return "after." + error;
}
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ if (typeof message.backup_running !== "boolean")
+ return "backup_running: boolean expected";
return null;
};
@@ -117312,6 +117401,8 @@ export const replicationdata = $root.replicationdata = (() => {
throw TypeError(".replicationdata.StopReplicationStatus.after: object expected");
message.after = $root.replicationdata.Status.fromObject(object.after);
}
+ if (object.backup_running != null)
+ message.backup_running = Boolean(object.backup_running);
return message;
};
@@ -117331,11 +117422,14 @@ export const replicationdata = $root.replicationdata = (() => {
if (options.defaults) {
object.before = null;
object.after = null;
+ object.backup_running = false;
}
if (message.before != null && message.hasOwnProperty("before"))
object.before = $root.replicationdata.Status.toObject(message.before, options);
if (message.after != null && message.hasOwnProperty("after"))
object.after = $root.replicationdata.Status.toObject(message.after, options);
+ if (message.backup_running != null && message.hasOwnProperty("backup_running"))
+ object.backup_running = message.backup_running;
return object;
};
From 0b51839d66f83e66368d4d9753400e245423b760 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Thu, 21 Nov 2024 12:07:34 +0530
Subject: [PATCH 71/78] Fix potential deadlock in health streamer (#17261)
Signed-off-by: Manan Gupta
---
go/vt/vttablet/tabletserver/health_streamer.go | 4 +++-
go/vt/vttablet/tabletserver/health_streamer_test.go | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/go/vt/vttablet/tabletserver/health_streamer.go b/go/vt/vttablet/tabletserver/health_streamer.go
index f9f65d197b2..eaeba6315e3 100644
--- a/go/vt/vttablet/tabletserver/health_streamer.go
+++ b/go/vt/vttablet/tabletserver/health_streamer.go
@@ -293,8 +293,10 @@ func (hs *healthStreamer) SetUnhealthyThreshold(v time.Duration) {
// so it can read and write to the MySQL instance for schema-tracking.
func (hs *healthStreamer) MakePrimary(serving bool) {
hs.fieldsMu.Lock()
- defer hs.fieldsMu.Unlock()
hs.isServingPrimary = serving
+ // We let go of the lock here because we don't want to hold the lock when calling RegisterNotifier.
+ // If we keep holding the lock, there is a potential deadlock that can happen.
+ hs.fieldsMu.Unlock()
// We register for notifications from the schema Engine only when schema tracking is enabled,
// and we are going to a serving primary state.
if serving && hs.signalWhenSchemaChange {
diff --git a/go/vt/vttablet/tabletserver/health_streamer_test.go b/go/vt/vttablet/tabletserver/health_streamer_test.go
index 3421141ff80..9561518eed6 100644
--- a/go/vt/vttablet/tabletserver/health_streamer_test.go
+++ b/go/vt/vttablet/tabletserver/health_streamer_test.go
@@ -592,13 +592,14 @@ func TestDeadlockBwCloseAndReload(t *testing.T) {
wg := sync.WaitGroup{}
wg.Add(2)
- // Try running Close and reload in parallel multiple times.
+ // Try running Close & MakePrimary and reload in parallel multiple times.
// This reproduces the deadlock quite readily.
go func() {
defer wg.Done()
for i := 0; i < 100; i++ {
hs.Close()
hs.Open()
+ hs.MakePrimary(true)
}
}()
From 072d1fadb63c51334aa2c4fc90571a8ec11e0323 Mon Sep 17 00:00:00 2001
From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Date: Mon, 25 Nov 2024 18:09:41 +0530
Subject: [PATCH 72/78] Fix errant GTID detection in VTOrc to also work with a
replica not connected to any primary (#17267)
Signed-off-by: Manan Gupta
---
go/test/endtoend/vtorc/general/vtorc_test.go | 58 +++++++++
go/vt/vtorc/inst/instance_dao.go | 82 ++++++++-----
go/vt/vtorc/inst/instance_dao_test.go | 118 +++++++++++++++++++
3 files changed, 229 insertions(+), 29 deletions(-)
diff --git a/go/test/endtoend/vtorc/general/vtorc_test.go b/go/test/endtoend/vtorc/general/vtorc_test.go
index 329601deb0c..2ec2fd4b0ae 100644
--- a/go/test/endtoend/vtorc/general/vtorc_test.go
+++ b/go/test/endtoend/vtorc/general/vtorc_test.go
@@ -62,6 +62,64 @@ func TestPrimaryElection(t *testing.T) {
require.Len(t, res.Rows, 1, "There should only be 1 primary tablet which was elected")
}
+// TestErrantGTIDOnPreviousPrimary tests that VTOrc is able to detect errant GTIDs on a previously demoted primary
+// if it has an errant GTID.
+func TestErrantGTIDOnPreviousPrimary(t *testing.T) {
+ defer utils.PrintVTOrcLogsOnFailure(t, clusterInfo.ClusterInstance)
+ defer cluster.PanicHandler(t)
+ utils.SetupVttabletsAndVTOrcs(t, clusterInfo, 3, 0, []string{"--change-tablets-with-errant-gtid-to-drained"}, cluster.VTOrcConfiguration{}, 1, "")
+ keyspace := &clusterInfo.ClusterInstance.Keyspaces[0]
+ shard0 := &keyspace.Shards[0]
+
+ // find primary from topo
+ curPrimary := utils.ShardPrimaryTablet(t, clusterInfo, keyspace, shard0)
+ assert.NotNil(t, curPrimary, "should have elected a primary")
+ vtOrcProcess := clusterInfo.ClusterInstance.VTOrcProcesses[0]
+ utils.WaitForSuccessfulRecoveryCount(t, vtOrcProcess, logic.ElectNewPrimaryRecoveryName, 1)
+ utils.WaitForSuccessfulPRSCount(t, vtOrcProcess, keyspace.Name, shard0.Name, 1)
+
+ var replica, otherReplica *cluster.Vttablet
+ for _, tablet := range shard0.Vttablets {
+ // we know we have only two tablets, so the "other" one must be the new primary
+ if tablet.Alias != curPrimary.Alias {
+ if replica == nil {
+ replica = tablet
+ } else {
+ otherReplica = tablet
+ }
+ }
+ }
+ require.NotNil(t, replica, "should be able to find a replica")
+ require.NotNil(t, otherReplica, "should be able to find 2nd replica")
+ utils.CheckReplication(t, clusterInfo, curPrimary, []*cluster.Vttablet{replica, otherReplica}, 15*time.Second)
+
+ // Disable global recoveries for the cluster.
+ vtOrcProcess.DisableGlobalRecoveries(t)
+
+ // Run PRS to promote a different replica.
+ output, err := clusterInfo.ClusterInstance.VtctldClientProcess.ExecuteCommandWithOutput(
+ "PlannedReparentShard",
+ fmt.Sprintf("%s/%s", keyspace.Name, shard0.Name),
+ "--new-primary", replica.Alias)
+ require.NoError(t, err, "error in PlannedReparentShard output - %s", output)
+
+ // Stop replicatin on the previous primary to simulate it not reparenting properly.
+ // Also insert an errant GTID on the previous primary.
+ err = utils.RunSQLs(t, []string{
+ "STOP REPLICA",
+ "RESET REPLICA ALL",
+ "set global read_only=OFF",
+ "insert into vt_ks.vt_insert_test(id, msg) values (10173, 'test 178342')",
+ }, curPrimary, "")
+ require.NoError(t, err)
+
+ // Wait for VTOrc to detect the errant GTID and change the tablet to a drained type.
+ vtOrcProcess.EnableGlobalRecoveries(t)
+
+ // Wait for the tablet to be drained.
+ utils.WaitForTabletType(t, curPrimary, "drained")
+}
+
// Cases to test:
// 1. create cluster with 1 replica and 1 rdonly, let orc choose primary
// verify rdonly is not elected, only replica
diff --git a/go/vt/vtorc/inst/instance_dao.go b/go/vt/vtorc/inst/instance_dao.go
index bd4438dd05f..bd437d1ddac 100644
--- a/go/vt/vtorc/inst/instance_dao.go
+++ b/go/vt/vtorc/inst/instance_dao.go
@@ -357,35 +357,7 @@ Cleanup:
// Add replication group ancestry UUID as well. Otherwise, VTOrc thinks there are errant GTIDs in group
// members and its replicas, even though they are not.
instance.AncestryUUID = strings.Trim(instance.AncestryUUID, ",")
- if instance.ExecutedGtidSet != "" && instance.primaryExecutedGtidSet != "" {
- // Compare primary & replica GTID sets, but ignore the sets that present the primary's UUID.
- // This is because vtorc may pool primary and replica at an inconvenient timing,
- // such that the replica may _seems_ to have more entries than the primary, when in fact
- // it's just that the primary's probing is stale.
- redactedExecutedGtidSet, _ := NewOracleGtidSet(instance.ExecutedGtidSet)
- for _, uuid := range strings.Split(instance.AncestryUUID, ",") {
- if uuid != instance.ServerUUID {
- redactedExecutedGtidSet.RemoveUUID(uuid)
- }
- if instance.IsCoPrimary && uuid == instance.ServerUUID {
- // If this is a co-primary, then this server is likely to show its own generated GTIDs as errant,
- // because its co-primary has not applied them yet
- redactedExecutedGtidSet.RemoveUUID(uuid)
- }
- }
- // Avoid querying the database if there's no point:
- if !redactedExecutedGtidSet.IsEmpty() {
- redactedPrimaryExecutedGtidSet, _ := NewOracleGtidSet(instance.primaryExecutedGtidSet)
- redactedPrimaryExecutedGtidSet.RemoveUUID(instance.SourceUUID)
-
- instance.GtidErrant, err = replication.Subtract(redactedExecutedGtidSet.String(), redactedPrimaryExecutedGtidSet.String())
- if err == nil {
- var gtidCount int64
- gtidCount, err = replication.GTIDCount(instance.GtidErrant)
- currentErrantGTIDCount.Set(tabletAlias, gtidCount)
- }
- }
- }
+ err = detectErrantGTIDs(tabletAlias, instance, tablet)
}
latency.Stop("instance")
@@ -412,6 +384,58 @@ Cleanup:
return nil, err
}
+// detectErrantGTIDs detects the errant GTIDs on an instance.
+func detectErrantGTIDs(tabletAlias string, instance *Instance, tablet *topodatapb.Tablet) (err error) {
+ // If the tablet is not replicating from anyone, then it could be the previous primary.
+ // We should check for errant GTIDs by finding the difference with the shard's current primary.
+ if instance.primaryExecutedGtidSet == "" && instance.SourceHost == "" {
+ var primaryInstance *Instance
+ primaryAlias, _, _ := ReadShardPrimaryInformation(tablet.Keyspace, tablet.Shard)
+ if primaryAlias != "" {
+ primaryInstance, _, _ = ReadInstance(primaryAlias)
+ }
+ // Only run errant GTID detection, if we are sure that the data read of the current primary
+ // is up-to-date enough to reflect that it has been promoted. This is needed to prevent
+ // flagging incorrect errant GTIDs. If we were to use old data, we could have some GTIDs
+ // accepted by the old primary (this tablet) that don't show in the new primary's set.
+ if primaryInstance != nil {
+ if primaryInstance.SourceHost == "" {
+ instance.primaryExecutedGtidSet = primaryInstance.ExecutedGtidSet
+ }
+ }
+ }
+ if instance.ExecutedGtidSet != "" && instance.primaryExecutedGtidSet != "" {
+ // Compare primary & replica GTID sets, but ignore the sets that present the primary's UUID.
+ // This is because vtorc may pool primary and replica at an inconvenient timing,
+ // such that the replica may _seems_ to have more entries than the primary, when in fact
+ // it's just that the primary's probing is stale.
+ redactedExecutedGtidSet, _ := NewOracleGtidSet(instance.ExecutedGtidSet)
+ for _, uuid := range strings.Split(instance.AncestryUUID, ",") {
+ if uuid != instance.ServerUUID {
+ redactedExecutedGtidSet.RemoveUUID(uuid)
+ }
+ if instance.IsCoPrimary && uuid == instance.ServerUUID {
+ // If this is a co-primary, then this server is likely to show its own generated GTIDs as errant,
+ // because its co-primary has not applied them yet
+ redactedExecutedGtidSet.RemoveUUID(uuid)
+ }
+ }
+ // Avoid querying the database if there's no point:
+ if !redactedExecutedGtidSet.IsEmpty() {
+ redactedPrimaryExecutedGtidSet, _ := NewOracleGtidSet(instance.primaryExecutedGtidSet)
+ redactedPrimaryExecutedGtidSet.RemoveUUID(instance.SourceUUID)
+
+ instance.GtidErrant, err = replication.Subtract(redactedExecutedGtidSet.String(), redactedPrimaryExecutedGtidSet.String())
+ if err == nil {
+ var gtidCount int64
+ gtidCount, err = replication.GTIDCount(instance.GtidErrant)
+ currentErrantGTIDCount.Set(tabletAlias, gtidCount)
+ }
+ }
+ }
+ return err
+}
+
// getKeyspaceShardName returns a single string having both the keyspace and shard
func getKeyspaceShardName(keyspace, shard string) string {
return fmt.Sprintf("%v:%v", keyspace, shard)
diff --git a/go/vt/vtorc/inst/instance_dao_test.go b/go/vt/vtorc/inst/instance_dao_test.go
index 2416c1abb90..cb2064d10c0 100644
--- a/go/vt/vtorc/inst/instance_dao_test.go
+++ b/go/vt/vtorc/inst/instance_dao_test.go
@@ -14,6 +14,7 @@ import (
"vitess.io/vitess/go/vt/external/golib/sqlutils"
"vitess.io/vitess/go/vt/log"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
+ "vitess.io/vitess/go/vt/topo"
"vitess.io/vitess/go/vt/topo/topoproto"
"vitess.io/vitess/go/vt/vtorc/config"
"vitess.io/vitess/go/vt/vtorc/db"
@@ -773,3 +774,120 @@ func TestExpireTableData(t *testing.T) {
})
}
}
+
+func TestDetectErrantGTIDs(t *testing.T) {
+ tests := []struct {
+ name string
+ instance *Instance
+ primaryInstance *Instance
+ wantErr bool
+ wantErrantGTID string
+ }{
+ {
+ name: "No errant GTIDs",
+ instance: &Instance{
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34",
+ primaryExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10591,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34",
+ AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff,230ea8ea-81e3-11e4-972a-e25ec4bd140a",
+ ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ SourceUUID: "230ea8ea-81e3-11e4-972a-e25ec4bd140a",
+ },
+ }, {
+ name: "Errant GTIDs on replica",
+ instance: &Instance{
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:34",
+ primaryExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10591,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34",
+ AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff,230ea8ea-81e3-11e4-972a-e25ec4bd140a",
+ ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ SourceUUID: "230ea8ea-81e3-11e4-972a-e25ec4bd140a",
+ },
+ wantErrantGTID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff:34",
+ },
+ {
+ name: "No errant GTIDs on old primary",
+ instance: &Instance{
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341",
+ AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ },
+ primaryInstance: &Instance{
+ SourceHost: "",
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10589,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341",
+ },
+ },
+ {
+ name: "Errant GTIDs on old primary",
+ instance: &Instance{
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-342",
+ AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ },
+ primaryInstance: &Instance{
+ SourceHost: "",
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10589,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341",
+ },
+ wantErrantGTID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff:342",
+ }, {
+ name: "Old information for new primary",
+ instance: &Instance{
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-342",
+ AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff",
+ },
+ primaryInstance: &Instance{
+ SourceHost: "localhost",
+ ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-311",
+ },
+ },
+ }
+
+ keyspaceName := "ks"
+ shardName := "0"
+ tablet := &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone-1",
+ Uid: 100,
+ },
+ Keyspace: keyspaceName,
+ Shard: shardName,
+ }
+ primaryTablet := &topodatapb.Tablet{
+ Alias: &topodatapb.TabletAlias{
+ Cell: "zone-1",
+ Uid: 100,
+ },
+ Keyspace: keyspaceName,
+ Shard: shardName,
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ // Clear the database after the test. The easiest way to do that is to run all the initialization commands again.
+ defer func() {
+ db.ClearVTOrcDatabase()
+ }()
+ db.ClearVTOrcDatabase()
+
+ // Save shard record for the primary tablet.
+ err := SaveShard(topo.NewShardInfo(keyspaceName, shardName, &topodatapb.Shard{
+ PrimaryAlias: primaryTablet.Alias,
+ }, nil))
+ require.NoError(t, err)
+
+ if tt.primaryInstance != nil {
+ tt.primaryInstance.InstanceAlias = topoproto.TabletAliasString(primaryTablet.Alias)
+ err = SaveTablet(primaryTablet)
+ require.NoError(t, err)
+ err = WriteInstance(tt.primaryInstance, true, nil)
+ require.NoError(t, err)
+ }
+
+ err = detectErrantGTIDs(topoproto.TabletAliasString(tablet.Alias), tt.instance, tablet)
+ if tt.wantErr {
+ require.Error(t, err)
+ return
+ }
+ require.NoError(t, err)
+ require.EqualValues(t, tt.wantErrantGTID, tt.instance.GtidErrant)
+ })
+ }
+}
From 145ff6b09e223e4fd89eaf4813be81ec46d04b2e Mon Sep 17 00:00:00 2001
From: Dirkjan Bussink
Date: Mon, 25 Nov 2024 19:03:55 +0100
Subject: [PATCH 73/78] Specify Ubuntu 24.04 for all jobs (#17278)
Signed-off-by: Dirkjan Bussink
---
.github/workflows/assign_milestone.yml | 2 +-
.github/workflows/auto_approve_pr.yml | 2 +-
.github/workflows/check_label.yml | 2 +-
.../check_make_vtadmin_authz_testgen.yml | 4 +--
.../check_make_vtadmin_web_proto.yml | 2 +-
.../workflows/close_stale_pull_requests.yml | 2 +-
.github/workflows/cluster_endtoend_12.yml | 13 ++++++--
.github/workflows/cluster_endtoend_13.yml | 13 ++++++--
.github/workflows/cluster_endtoend_15.yml | 13 ++++++--
.github/workflows/cluster_endtoend_18.yml | 13 ++++++--
.github/workflows/cluster_endtoend_21.yml | 13 ++++++--
.../cluster_endtoend_backup_pitr.yml | 13 ++++++--
...luster_endtoend_backup_pitr_mysqlshell.yml | 13 ++++++--
...luster_endtoend_backup_pitr_xtrabackup.yml | 2 +-
...ter_endtoend_ers_prs_newfeatures_heavy.yml | 13 ++++++--
.../workflows/cluster_endtoend_mysql80.yml | 13 ++++++--
.../cluster_endtoend_mysql_server_vault.yml | 13 ++++++--
.../cluster_endtoend_onlineddl_revert.yml | 13 ++++++--
.../cluster_endtoend_onlineddl_scheduler.yml | 13 ++++++--
.../cluster_endtoend_onlineddl_vrepl.yml | 13 ++++++--
...luster_endtoend_onlineddl_vrepl_stress.yml | 13 ++++++--
..._endtoend_onlineddl_vrepl_stress_suite.yml | 13 ++++++--
...cluster_endtoend_onlineddl_vrepl_suite.yml | 13 ++++++--
.../cluster_endtoend_schemadiff_vrepl.yml | 13 ++++++--
.../cluster_endtoend_tabletmanager_consul.yml | 13 ++++++--
...cluster_endtoend_tabletmanager_tablegc.yml | 13 ++++++--
..._endtoend_tabletmanager_throttler_topo.yml | 13 ++++++--
...cluster_endtoend_topo_connection_cache.yml | 13 ++++++--
...dtoend_vreplication_across_db_versions.yml | 13 ++++++--
.../cluster_endtoend_vreplication_basic.yml | 13 ++++++--
...luster_endtoend_vreplication_cellalias.yml | 13 ++++++--
...er_endtoend_vreplication_copy_parallel.yml | 13 ++++++--
...dtoend_vreplication_foreign_key_stress.yml | 13 ++++++--
...endtoend_vreplication_mariadb_to_mysql.yml | 13 ++++++--
.../cluster_endtoend_vreplication_migrate.yml | 13 ++++++--
...ter_endtoend_vreplication_multi_tenant.yml | 13 ++++++--
...ion_partial_movetables_and_materialize.yml | 13 ++++++--
.../cluster_endtoend_vreplication_v2.yml | 13 ++++++--
...tion_vtctldclient_vdiff2_movetables_tz.yml | 13 ++++++--
.../workflows/cluster_endtoend_vstream.yml | 13 ++++++--
.../workflows/cluster_endtoend_vtbackup.yml | 13 ++++++--
..._vtctlbackup_sharded_clustertest_heavy.yml | 13 ++++++--
.../cluster_endtoend_vtgate_concurrentdml.yml | 13 ++++++--
...ster_endtoend_vtgate_foreignkey_stress.yml | 13 ++++++--
.../cluster_endtoend_vtgate_gen4.yml | 13 ++++++--
.../cluster_endtoend_vtgate_general_heavy.yml | 13 ++++++--
.../cluster_endtoend_vtgate_godriver.yml | 13 ++++++--
...uster_endtoend_vtgate_partial_keyspace.yml | 13 ++++++--
.../cluster_endtoend_vtgate_queries.yml | 13 ++++++--
...cluster_endtoend_vtgate_readafterwrite.yml | 13 ++++++--
.../cluster_endtoend_vtgate_reservedconn.yml | 13 ++++++--
.../cluster_endtoend_vtgate_schema.yml | 13 ++++++--
...cluster_endtoend_vtgate_schema_tracker.yml | 13 ++++++--
...dtoend_vtgate_tablet_healthcheck_cache.yml | 13 ++++++--
.../cluster_endtoend_vtgate_topo.yml | 13 ++++++--
.../cluster_endtoend_vtgate_topo_consul.yml | 13 ++++++--
.../cluster_endtoend_vtgate_topo_etcd.yml | 13 ++++++--
.../cluster_endtoend_vtgate_transaction.yml | 13 ++++++--
.../cluster_endtoend_vtgate_unsharded.yml | 13 ++++++--
.../cluster_endtoend_vtgate_vindex_heavy.yml | 13 ++++++--
.../cluster_endtoend_vtgate_vschema.yml | 13 ++++++--
.github/workflows/cluster_endtoend_vtorc.yml | 13 ++++++--
.../cluster_endtoend_vttablet_prscomplex.yml | 13 ++++++--
.../workflows/cluster_endtoend_xb_backup.yml | 2 +-
.../cluster_endtoend_xb_recovery.yml | 2 +-
.github/workflows/code_freeze.yml | 2 +-
.github/workflows/codecov.yml | 2 +-
.github/workflows/codeql_analysis.yml | 6 ++--
.github/workflows/create_release.yml | 2 +-
.github/workflows/docker_build_images.yml | 8 ++---
.github/workflows/docker_test_cluster_10.yml | 2 +-
.github/workflows/docker_test_cluster_25.yml | 2 +-
.github/workflows/e2e_race.yml | 6 ++--
.github/workflows/endtoend.yml | 4 +--
.github/workflows/local_example.yml | 22 ++-----------
.github/workflows/region_example.yml | 22 ++-----------
.github/workflows/scorecards.yml | 2 +-
.github/workflows/static_checks_etc.yml | 4 +--
.github/workflows/unit_race.yml | 2 +-
.github/workflows/unit_race_evalengine.yml | 2 +-
.../unit_test_evalengine_mysql57.yml | 25 +++++++++-----
.../unit_test_evalengine_mysql80.yml | 18 +++++-----
.../unit_test_evalengine_mysql84.yml | 18 +++++-----
.github/workflows/unit_test_mysql57.yml | 25 +++++++++-----
.github/workflows/unit_test_mysql80.yml | 18 +++++-----
.github/workflows/unit_test_mysql84.yml | 18 +++++-----
.../workflows/update_golang_dependencies.yml | 2 +-
.github/workflows/update_golang_version.yml | 2 +-
.../upgrade_downgrade_test_backups_e2e.yml | 4 +--
...owngrade_test_backups_e2e_next_release.yml | 4 +--
.../upgrade_downgrade_test_backups_manual.yml | 6 ++--
...grade_test_backups_manual_next_release.yml | 6 ++--
.../upgrade_downgrade_test_onlineddl_flow.yml | 6 ++--
...e_downgrade_test_query_serving_queries.yml | 6 ++--
...est_query_serving_queries_next_release.yml | 6 ++--
...de_downgrade_test_query_serving_schema.yml | 6 ++--
...test_query_serving_schema_next_release.yml | 6 ++--
...rade_downgrade_test_reparent_new_vtctl.yml | 6 ++--
...e_downgrade_test_reparent_new_vttablet.yml | 6 ++--
...rade_downgrade_test_reparent_old_vtctl.yml | 6 ++--
...e_downgrade_test_reparent_old_vttablet.yml | 6 ++--
.../upgrade_downgrade_test_semi_sync.yml | 4 +--
.github/workflows/vitess_tester_vtgate.yml | 4 +--
.github/workflows/vtadmin_web_build.yml | 2 +-
.github/workflows/vtadmin_web_lint.yml | 2 +-
.github/workflows/vtadmin_web_unit_tests.yml | 2 +-
test/templates/cluster_endtoend_test.tpl | 13 ++++++--
.../cluster_endtoend_test_docker.tpl | 2 +-
.../cluster_endtoend_test_mysql57.tpl | 8 +++--
test/templates/cluster_vitess_tester.tpl | 4 +--
test/templates/unit_test.tpl | 33 +++++++++++--------
111 files changed, 806 insertions(+), 304 deletions(-)
diff --git a/.github/workflows/assign_milestone.yml b/.github/workflows/assign_milestone.yml
index 3ae0a89b4a9..6687a239b57 100644
--- a/.github/workflows/assign_milestone.yml
+++ b/.github/workflows/assign_milestone.yml
@@ -12,7 +12,7 @@ env:
jobs:
build:
name: Assign Milestone
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
pull-requests: write
diff --git a/.github/workflows/auto_approve_pr.yml b/.github/workflows/auto_approve_pr.yml
index de553694927..e584337f78b 100644
--- a/.github/workflows/auto_approve_pr.yml
+++ b/.github/workflows/auto_approve_pr.yml
@@ -9,7 +9,7 @@ permissions:
jobs:
auto_approve:
name: Auto Approve Pull Request
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
pull-requests: write # only given on local PRs, forks run with `read` access
diff --git a/.github/workflows/check_label.yml b/.github/workflows/check_label.yml
index 15b3ae3ec15..2c6439a29f9 100644
--- a/.github/workflows/check_label.yml
+++ b/.github/workflows/check_label.yml
@@ -9,7 +9,7 @@ jobs:
check_pull_request_labels:
name: Check Pull Request labels
timeout-minutes: 10
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
if: github.repository == 'vitessio/vitess'
steps:
- name: Release Notes label
diff --git a/.github/workflows/check_make_vtadmin_authz_testgen.yml b/.github/workflows/check_make_vtadmin_authz_testgen.yml
index f69df918be1..26543c8a948 100644
--- a/.github/workflows/check_make_vtadmin_authz_testgen.yml
+++ b/.github/workflows/check_make_vtadmin_authz_testgen.yml
@@ -6,7 +6,7 @@ permissions: read-all
jobs:
build:
name: Check Make vtadmin_authz_testgen
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
@@ -61,7 +61,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.vtadmin_changes == 'true'
run: |
sudo apt-get update
- sudo apt-get install -y make unzip g++ etcd curl git wget
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget
sudo service etcd stop
go mod download
go install golang.org/x/tools/cmd/goimports@latest
diff --git a/.github/workflows/check_make_vtadmin_web_proto.yml b/.github/workflows/check_make_vtadmin_web_proto.yml
index 0f8d404a256..1c1bf2cae4f 100644
--- a/.github/workflows/check_make_vtadmin_web_proto.yml
+++ b/.github/workflows/check_make_vtadmin_web_proto.yml
@@ -6,7 +6,7 @@ permissions: read-all
jobs:
build:
name: Check Make VTAdmin Web Proto
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
diff --git a/.github/workflows/close_stale_pull_requests.yml b/.github/workflows/close_stale_pull_requests.yml
index 17fef550aa3..dbb71ac79b9 100644
--- a/.github/workflows/close_stale_pull_requests.yml
+++ b/.github/workflows/close_stale_pull_requests.yml
@@ -9,7 +9,7 @@ permissions: read-all
jobs:
close_stale_pull_requests:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
pull-requests: write
diff --git a/.github/workflows/cluster_endtoend_12.yml b/.github/workflows/cluster_endtoend_12.yml
index 236e6e2835c..7c98855b783 100644
--- a/.github/workflows/cluster_endtoend_12.yml
+++ b/.github/workflows/cluster_endtoend_12.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (12)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_13.yml b/.github/workflows/cluster_endtoend_13.yml
index 945d3448287..947d393bbbb 100644
--- a/.github/workflows/cluster_endtoend_13.yml
+++ b/.github/workflows/cluster_endtoend_13.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (13)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_15.yml b/.github/workflows/cluster_endtoend_15.yml
index 0c57e651013..aedc1bbd691 100644
--- a/.github/workflows/cluster_endtoend_15.yml
+++ b/.github/workflows/cluster_endtoend_15.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (15)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_18.yml b/.github/workflows/cluster_endtoend_18.yml
index 0c04f3e1b76..9886b617d51 100644
--- a/.github/workflows/cluster_endtoend_18.yml
+++ b/.github/workflows/cluster_endtoend_18.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (18)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_21.yml b/.github/workflows/cluster_endtoend_21.yml
index 7d14a8b99ed..5d703099a3d 100644
--- a/.github/workflows/cluster_endtoend_21.yml
+++ b/.github/workflows/cluster_endtoend_21.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (21)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_backup_pitr.yml b/.github/workflows/cluster_endtoend_backup_pitr.yml
index 99047933d69..1f744e85004 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (backup_pitr)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
index 8da7e054666..6ed73f260df 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (backup_pitr_mysqlshell)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
index 4012d1b1e4d..9bb6a4b56f8 100644
--- a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
+++ b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (backup_pitr_xtrabackup)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
diff --git a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
index 177fc77a5c4..e859749ceca 100644
--- a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
+++ b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_mysql80.yml b/.github/workflows/cluster_endtoend_mysql80.yml
index d0ff268c5fb..653db141b7d 100644
--- a/.github/workflows/cluster_endtoend_mysql80.yml
+++ b/.github/workflows/cluster_endtoend_mysql80.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (mysql80)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_mysql_server_vault.yml b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
index 38cdcbadf95..9de4aacd499 100644
--- a/.github/workflows/cluster_endtoend_mysql_server_vault.yml
+++ b/.github/workflows/cluster_endtoend_mysql_server_vault.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (mysql_server_vault)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_revert.yml b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
index dd9990b4761..54c85944190 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_revert.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_revert.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_revert)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
index 144e06915ce..9e117ac0f04 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_scheduler)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
index 5cd394f2d42..5056e46d895 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_vrepl)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
index 993a2d5193e..3597b37ede7 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_vrepl_stress)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
index 015db29723e..a5322578981 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
index 550408f5def..12bde509048 100644
--- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
+++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (onlineddl_vrepl_suite)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
index 9c2cac74843..e452d28606a 100644
--- a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
+++ b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (schemadiff_vrepl)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -97,10 +97,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
index 4846fdcc2ac..3e8ffce0ac5 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (tabletmanager_consul)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
index 435d28a722a..cc75ef22937 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (tabletmanager_tablegc)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
index 6cf480aa1f1..0837be5356e 100644
--- a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
+++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (tabletmanager_throttler_topo)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_topo_connection_cache.yml b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
index 056bfb6d8a4..da6ee53ad53 100644
--- a/.github/workflows/cluster_endtoend_topo_connection_cache.yml
+++ b/.github/workflows/cluster_endtoend_topo_connection_cache.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (topo_connection_cache)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
index aacf9d157fd..a38506ddd7d 100644
--- a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_across_db_versions)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_basic.yml b/.github/workflows/cluster_endtoend_vreplication_basic.yml
index ead3b816df2..283d0451a34 100644
--- a/.github/workflows/cluster_endtoend_vreplication_basic.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_basic.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_basic)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
index d9f1aeac45e..b316c075614 100644
--- a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_cellalias)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
index 9cdc4a9091a..48f506709e7 100644
--- a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_copy_parallel)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
index f95f70e8550..a1293e3688e 100644
--- a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_foreign_key_stress)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
index 2a6af9b91bd..2013d89a83d 100644
--- a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_mariadb_to_mysql)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_migrate.yml b/.github/workflows/cluster_endtoend_vreplication_migrate.yml
index 6b6768eb676..e7a8a8cb5ce 100644
--- a/.github/workflows/cluster_endtoend_vreplication_migrate.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_migrate.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_migrate)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
index 78b6c616691..c0c80a8dc61 100644
--- a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_multi_tenant)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
index 30367611574..0b80b82fd7f 100644
--- a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_partial_movetables_and_materialize)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_v2.yml b/.github/workflows/cluster_endtoend_vreplication_v2.yml
index 23871ada3b8..fcbe7057b4c 100644
--- a/.github/workflows/cluster_endtoend_vreplication_v2.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_v2.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_v2)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
index dd1eb76ca0e..40f2002f9a3 100644
--- a/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
+++ b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vreplication_vtctldclient_vdiff2_movetables_tz)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vstream.yml b/.github/workflows/cluster_endtoend_vstream.yml
index 3c99a687abc..acfefb40758 100644
--- a/.github/workflows/cluster_endtoend_vstream.yml
+++ b/.github/workflows/cluster_endtoend_vstream.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vstream)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtbackup.yml b/.github/workflows/cluster_endtoend_vtbackup.yml
index e47e8fbad47..947598bc307 100644
--- a/.github/workflows/cluster_endtoend_vtbackup.yml
+++ b/.github/workflows/cluster_endtoend_vtbackup.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtbackup)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
index 8f9a27bc750..c6f8712a35a 100644
--- a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtctlbackup_sharded_clustertest_heavy)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
index db9ea451081..2cd81fe04ef 100644
--- a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_concurrentdml)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
index 2fada310f7e..19620d9e3a2 100644
--- a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_foreignkey_stress)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_gen4.yml b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
index 04813704cd2..06961af4ee7 100644
--- a/.github/workflows/cluster_endtoend_vtgate_gen4.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_gen4.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_gen4)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
index bdb6b8b149d..e0b21df421a 100644
--- a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_general_heavy)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_godriver.yml b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
index e23742a5650..23c9da550c2 100644
--- a/.github/workflows/cluster_endtoend_vtgate_godriver.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_godriver.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_godriver)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
index 4d082900790..f5d1850aca3 100644
--- a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_partial_keyspace)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_queries.yml b/.github/workflows/cluster_endtoend_vtgate_queries.yml
index 46242a6b7f4..80462086a57 100644
--- a/.github/workflows/cluster_endtoend_vtgate_queries.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_queries.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_queries)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
index b39aa3693e6..686db1e12ab 100644
--- a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_readafterwrite)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
index 0032704b240..0f4ae20b0a7 100644
--- a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_reservedconn)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema.yml b/.github/workflows/cluster_endtoend_vtgate_schema.yml
index be619a0815c..2dca36298e1 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_schema)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
index a02b4ec5435..711f38253cb 100644
--- a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_schema_tracker)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
index ff0c6990512..55996d7fa86 100644
--- a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo.yml b/.github/workflows/cluster_endtoend_vtgate_topo.yml
index e0f4397d56c..f47e0a8dd63 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_topo)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
index a10a9947218..1b62ac79041 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_topo_consul)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
index 42e3b3d919c..f88d3b9af3a 100644
--- a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_topo_etcd)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_transaction.yml b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
index bc400dde33f..9ae7b465695 100644
--- a/.github/workflows/cluster_endtoend_vtgate_transaction.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_transaction.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_transaction)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
index 8c128e95b0f..d348606dc31 100644
--- a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_unsharded)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
index e260443a242..16bdee60217 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_vindex_heavy)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtgate_vschema.yml b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
index 72e9ac45949..fb176119769 100644
--- a/.github/workflows/cluster_endtoend_vtgate_vschema.yml
+++ b/.github/workflows/cluster_endtoend_vtgate_vschema.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtgate_vschema)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vtorc.yml b/.github/workflows/cluster_endtoend_vtorc.yml
index 23544b28d01..92c2ea3d5d7 100644
--- a/.github/workflows/cluster_endtoend_vtorc.yml
+++ b/.github/workflows/cluster_endtoend_vtorc.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vtorc)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -105,10 +105,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
index eaf6583a22d..9868c382a69 100644
--- a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
+++ b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (vttablet_prscomplex)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -96,10 +96,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/.github/workflows/cluster_endtoend_xb_backup.yml b/.github/workflows/cluster_endtoend_xb_backup.yml
index dae2eca922f..26dbfea2def 100644
--- a/.github/workflows/cluster_endtoend_xb_backup.yml
+++ b/.github/workflows/cluster_endtoend_xb_backup.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (xb_backup)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
diff --git a/.github/workflows/cluster_endtoend_xb_recovery.yml b/.github/workflows/cluster_endtoend_xb_recovery.yml
index 0dad33aee7f..43360690d6b 100644
--- a/.github/workflows/cluster_endtoend_xb_recovery.yml
+++ b/.github/workflows/cluster_endtoend_xb_recovery.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Cluster (xb_recovery)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
diff --git a/.github/workflows/code_freeze.yml b/.github/workflows/code_freeze.yml
index 92ef037ee6b..a66fb6e8b2b 100644
--- a/.github/workflows/code_freeze.yml
+++ b/.github/workflows/code_freeze.yml
@@ -7,7 +7,7 @@ permissions: read-all
jobs:
build:
name: Code Freeze
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Fail if Code Freeze is enabled
run: |
diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml
index 7846749a013..fc30974212b 100644
--- a/.github/workflows/codecov.yml
+++ b/.github/workflows/codecov.yml
@@ -9,7 +9,7 @@ permissions: read-all
jobs:
test:
name: Code Coverage
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Check out code
diff --git a/.github/workflows/codeql_analysis.yml b/.github/workflows/codeql_analysis.yml
index e1a474ce9a2..c523e34c697 100644
--- a/.github/workflows/codeql_analysis.yml
+++ b/.github/workflows/codeql_analysis.yml
@@ -14,7 +14,7 @@ permissions: read-all
jobs:
analyze:
name: Analyze
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
actions: read
contents: read
@@ -59,13 +59,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml
index a42bbc0ff2d..424cc5bfe15 100644
--- a/.github/workflows/create_release.yml
+++ b/.github/workflows/create_release.yml
@@ -12,7 +12,7 @@ permissions: read-all
jobs:
build:
name: Create Release
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
contents: write
steps:
diff --git a/.github/workflows/docker_build_images.yml b/.github/workflows/docker_build_images.yml
index 827946a43dc..2024d677205 100644
--- a/.github/workflows/docker_build_images.yml
+++ b/.github/workflows/docker_build_images.yml
@@ -16,7 +16,7 @@ permissions: read-all
jobs:
build_and_push_vttestserver:
name: Build and push vttestserver
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
if: github.repository == 'vitessio/vitess'
strategy:
@@ -70,7 +70,7 @@ jobs:
build_and_push_lite:
name: Build and push lite
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
if: github.repository == 'vitessio/vitess'
strategy:
@@ -132,7 +132,7 @@ jobs:
build_and_push_components:
name: Build and push
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
if: github.repository == 'vitessio/vitess' && needs.build_and_push_lite.result == 'success'
needs:
- build_and_push_lite
@@ -226,7 +226,7 @@ jobs:
slack_notification:
name: Slack Notification if failed
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
needs:
- build_and_push_vttestserver
- build_and_push_lite
diff --git a/.github/workflows/docker_test_cluster_10.yml b/.github/workflows/docker_test_cluster_10.yml
index ce1c9e7277b..10a7c1551c0 100644
--- a/.github/workflows/docker_test_cluster_10.yml
+++ b/.github/workflows/docker_test_cluster_10.yml
@@ -5,7 +5,7 @@ jobs:
build:
name: Docker Test Cluster 10
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
diff --git a/.github/workflows/docker_test_cluster_25.yml b/.github/workflows/docker_test_cluster_25.yml
index eb2319b8c9f..34463ce3830 100644
--- a/.github/workflows/docker_test_cluster_25.yml
+++ b/.github/workflows/docker_test_cluster_25.yml
@@ -5,7 +5,7 @@ jobs:
build:
name: Docker Test Cluster 25
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
diff --git a/.github/workflows/e2e_race.yml b/.github/workflows/e2e_race.yml
index 78c8d0b1753..50e1e4b9485 100644
--- a/.github/workflows/e2e_race.yml
+++ b/.github/workflows/e2e_race.yml
@@ -5,7 +5,7 @@ jobs:
build:
name: End-to-End Test (Race)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
@@ -65,13 +65,13 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
# Install everything else we need, and configure
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
+ sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils
sudo service mysql stop
sudo service etcd stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/endtoend.yml b/.github/workflows/endtoend.yml
index 9e06e4ee44b..f061e8bee68 100644
--- a/.github/workflows/endtoend.yml
+++ b/.github/workflows/endtoend.yml
@@ -5,7 +5,7 @@ jobs:
build:
name: End-to-End Test
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
@@ -63,7 +63,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
sudo apt-get update
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget
+ sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget
sudo service mysql stop
sudo service etcd stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/local_example.yml b/.github/workflows/local_example.yml
index 65669158415..fc9724aa6ac 100644
--- a/.github/workflows/local_example.yml
+++ b/.github/workflows/local_example.yml
@@ -4,8 +4,8 @@ permissions: read-all
jobs:
build:
- name: Local example using ${{ matrix.topo }} on ubuntu-22.04
- runs-on: gh-hosted-runners-16cores-1
+ name: Local example using ${{ matrix.topo }} on Ubuntu
+ runs-on: gh-hosted-runners-16cores-1-24.04
strategy:
matrix:
topo: [consul,etcd,zk2]
@@ -67,24 +67,6 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
run: |
- if [ ${{matrix.os}} = "ubuntu-22.04" ]; then
- # Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- # Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
- echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
- sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get update
-
- # Install everything else we need, and configure
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
- sudo service mysql stop
- sudo service etcd stop
- sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
- sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
- elif [ ${{matrix.os}} = "macos-latest" ]; then
- brew install mysql@5.7 make unzip etcd curl git wget
- fi
go mod download
- name: Run make minimaltools
diff --git a/.github/workflows/region_example.yml b/.github/workflows/region_example.yml
index c031ea315b5..c17f43eec11 100644
--- a/.github/workflows/region_example.yml
+++ b/.github/workflows/region_example.yml
@@ -4,8 +4,8 @@ permissions: read-all
jobs:
build:
- name: Region Sharding example using ${{ matrix.topo }} on ubuntu-22.04
- runs-on: gh-hosted-runners-16cores-1
+ name: Region Sharding example using ${{ matrix.topo }} on Ubuntu
+ runs-on: gh-hosted-runners-16cores-1-24.04
strategy:
matrix:
topo: [etcd]
@@ -67,24 +67,6 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true'
run: |
- if [ ${{matrix.os}} = "ubuntu-22.04" ]; then
- # Get key to latest MySQL repo
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- # Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
- echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
- sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get update
-
- # Install everything else we need, and configure
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
- sudo service mysql stop
- sudo service etcd stop
- sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
- sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
- elif [ ${{matrix.os}} = "macos-latest" ]; then
- brew install mysql@5.7 make unzip etcd curl git wget
- fi
go mod download
- name: Run make minimaltools
diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index 7d20694b850..b879ec8c144 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -14,7 +14,7 @@ permissions: read-all
jobs:
analysis:
name: Scorecard analysis
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
diff --git a/.github/workflows/static_checks_etc.yml b/.github/workflows/static_checks_etc.yml
index cd896d5fd29..cd2cce93827 100644
--- a/.github/workflows/static_checks_etc.yml
+++ b/.github/workflows/static_checks_etc.yml
@@ -9,7 +9,7 @@ permissions: read-all
jobs:
build:
name: Static Code Checks Etc
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -152,7 +152,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && (steps.changes.outputs.parser_changes == 'true' || steps.changes.outputs.go_files == 'true')
run: |
sudo apt-get update
- sudo apt-get install -y make unzip g++ etcd curl git wget
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget
sudo service etcd stop
go mod download
diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml
index e764cd33d9d..8ffb74bd2cb 100644
--- a/.github/workflows/unit_race.yml
+++ b/.github/workflows/unit_race.yml
@@ -15,7 +15,7 @@ jobs:
build:
name: Unit Test (Race)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
run: |
diff --git a/.github/workflows/unit_race_evalengine.yml b/.github/workflows/unit_race_evalengine.yml
index 5a5cb637681..d6d248f066e 100644
--- a/.github/workflows/unit_race_evalengine.yml
+++ b/.github/workflows/unit_race_evalengine.yml
@@ -15,7 +15,7 @@ jobs:
build:
name: Unit Test (Evalengine_Race)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
run: |
diff --git a/.github/workflows/unit_test_evalengine_mysql57.yml b/.github/workflows/unit_test_evalengine_mysql57.yml
index 09cb392c794..ecc366b38fe 100644
--- a/.github/workflows/unit_test_evalengine_mysql57.yml
+++ b/.github/workflows/unit_test_evalengine_mysql57.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (evalengine_mysql57)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,30 +89,37 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
+ sudo apt-get update
+ # We have to install this old version of libaio1. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/unit_test_evalengine_mysql80.yml b/.github/workflows/unit_test_evalengine_mysql80.yml
index 5578829d48d..e6e802b52d8 100644
--- a/.github/workflows/unit_test_evalengine_mysql80.yml
+++ b/.github/workflows/unit_test_evalengine_mysql80.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (evalengine_mysql80)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,27 +89,27 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/unit_test_evalengine_mysql84.yml b/.github/workflows/unit_test_evalengine_mysql84.yml
index 2a86d5bfabd..46736dac349 100644
--- a/.github/workflows/unit_test_evalengine_mysql84.yml
+++ b/.github/workflows/unit_test_evalengine_mysql84.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (evalengine_mysql84)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,27 +89,27 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_mysql57.yml
index bd4b6ed8c3c..3eaf02d1538 100644
--- a/.github/workflows/unit_test_mysql57.yml
+++ b/.github/workflows/unit_test_mysql57.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (mysql57)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,30 +89,37 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
+ sudo apt-get update
+ # We have to install this old version of libaio1. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/unit_test_mysql80.yml b/.github/workflows/unit_test_mysql80.yml
index 03f31a25cc8..c036e6dd477 100644
--- a/.github/workflows/unit_test_mysql80.yml
+++ b/.github/workflows/unit_test_mysql80.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (mysql80)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,27 +89,27 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/unit_test_mysql84.yml b/.github/workflows/unit_test_mysql84.yml
index 95a56aeff81..84447ce390b 100644
--- a/.github/workflows/unit_test_mysql84.yml
+++ b/.github/workflows/unit_test_mysql84.yml
@@ -16,7 +16,7 @@ env:
jobs:
test:
name: Unit Test (mysql84)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -89,27 +89,27 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/update_golang_dependencies.yml b/.github/workflows/update_golang_dependencies.yml
index a614a634d83..33c5157097c 100644
--- a/.github/workflows/update_golang_dependencies.yml
+++ b/.github/workflows/update_golang_dependencies.yml
@@ -14,7 +14,7 @@ jobs:
contents: write
pull-requests: write
name: Update Golang Dependencies
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Set up Go
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
diff --git a/.github/workflows/update_golang_version.yml b/.github/workflows/update_golang_version.yml
index 503cad50ce8..09bbf451451 100644
--- a/.github/workflows/update_golang_version.yml
+++ b/.github/workflows/update_golang_version.yml
@@ -17,7 +17,7 @@ jobs:
matrix:
branch: [ main, release-21.0, release-20.0, release-19.0 ]
name: Update Golang Version
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Check out code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
index f1c4f335f0d..a56aad2f523 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml
@@ -13,7 +13,7 @@ jobs:
upgrade_downgrade_test_e2e:
timeout-minutes: 60
name: Run Upgrade Downgrade Test - Backups - E2E
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -87,7 +87,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
sudo apt-get update
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
index 73c24c5e72e..7ee6c2db799 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml
@@ -14,7 +14,7 @@ jobs:
upgrade_downgrade_test_e2e:
timeout-minutes: 60
name: Run Upgrade Downgrade Test - Backups - E2E - Next Release
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -89,7 +89,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
sudo apt-get update
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual.yml b/.github/workflows/upgrade_downgrade_test_backups_manual.yml
index 9c866affb0b..00aab1b78ff 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_manual.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_manual.yml
@@ -15,7 +15,7 @@ jobs:
upgrade_downgrade_test_manual:
timeout-minutes: 40
name: Run Upgrade Downgrade Test - Backups - Manual
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -102,14 +102,14 @@ jobs:
# Install MySQL 8.0
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata grep
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata grep
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
index 802ee78d940..768268271a1 100644
--- a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml
@@ -15,7 +15,7 @@ jobs:
upgrade_downgrade_test_manual:
timeout-minutes: 40
name: Run Upgrade Downgrade Test - Backups - Manual - Next Release
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -103,14 +103,14 @@ jobs:
# Install MySQL 8.0
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata grep
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata grep
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml b/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml
index 89e5f7c4d25..72426e70a61 100644
--- a/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml
+++ b/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Online DDL flow
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -108,13 +108,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
index f7d68dfee04..5ac1a55334c 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Query Serving (Queries)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -100,13 +100,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
index e3a34bd43f8..c65fff08c52 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Query Serving (Queries) Next Release
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -101,13 +101,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
index a9162d2f199..4b5fad0ab29 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Query Serving (Schema)
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -100,13 +100,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
index bf5f63d8836..6157079db6f 100644
--- a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
+++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Query Serving (Schema) Next Release
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -101,13 +101,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
index ac6615b5788..931d9174c31 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Reparent New Vtctl
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -101,13 +101,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
index e163ab35ea4..d77b7be53b3 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Reparent New VTTablet
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -101,13 +101,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
index 93e94466b74..701025d7ecc 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Reparent Old Vtctl
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -100,13 +100,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
index 12f6b514aa1..8b121d4af10 100644
--- a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
+++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml
@@ -16,7 +16,7 @@ jobs:
upgrade_downgrade_test:
name: Run Upgrade Downgrade Test - Reparent Old VTTablet
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -100,13 +100,13 @@ jobs:
sudo rm -rf /etc/mysql
# Install mysql80
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
# Install everything else we need, and configure
- sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
diff --git a/.github/workflows/upgrade_downgrade_test_semi_sync.yml b/.github/workflows/upgrade_downgrade_test_semi_sync.yml
index 16dac6e7fd2..f12e323654e 100644
--- a/.github/workflows/upgrade_downgrade_test_semi_sync.yml
+++ b/.github/workflows/upgrade_downgrade_test_semi_sync.yml
@@ -13,7 +13,7 @@ jobs:
upgrade_downgrade_test_e2e:
timeout-minutes: 60
name: Run Semi Sync Upgrade Downgrade Test
- runs-on: gh-hosted-runners-16cores-1
+ runs-on: gh-hosted-runners-16cores-1-24.04
steps:
- name: Skip CI
@@ -87,7 +87,7 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
sudo apt-get update
- sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
+ sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata
sudo service mysql stop
sudo service etcd stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
diff --git a/.github/workflows/vitess_tester_vtgate.yml b/.github/workflows/vitess_tester_vtgate.yml
index 5f8c52d454b..7d5cf89a3ec 100644
--- a/.github/workflows/vitess_tester_vtgate.yml
+++ b/.github/workflows/vitess_tester_vtgate.yml
@@ -16,7 +16,7 @@ env:
jobs:
build:
name: Run endtoend tests on Vitess Tester (vtgate)
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -95,7 +95,7 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
diff --git a/.github/workflows/vtadmin_web_build.yml b/.github/workflows/vtadmin_web_build.yml
index 096b70cd002..822fa8a0920 100644
--- a/.github/workflows/vtadmin_web_build.yml
+++ b/.github/workflows/vtadmin_web_build.yml
@@ -16,7 +16,7 @@ permissions: read-all
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
diff --git a/.github/workflows/vtadmin_web_lint.yml b/.github/workflows/vtadmin_web_lint.yml
index 5435b4b54fe..694c24734a6 100644
--- a/.github/workflows/vtadmin_web_lint.yml
+++ b/.github/workflows/vtadmin_web_lint.yml
@@ -16,7 +16,7 @@ permissions: read-all
jobs:
lint:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
diff --git a/.github/workflows/vtadmin_web_unit_tests.yml b/.github/workflows/vtadmin_web_unit_tests.yml
index b765a68fa76..72a887c1926 100644
--- a/.github/workflows/vtadmin_web_unit_tests.yml
+++ b/.github/workflows/vtadmin_web_unit_tests.yml
@@ -16,7 +16,7 @@ permissions: read-all
jobs:
unit-tests:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
run: |
diff --git a/test/templates/cluster_endtoend_test.tpl b/test/templates/cluster_endtoend_test.tpl
index 01f4555e303..6fe58fae361 100644
--- a/test/templates/cluster_endtoend_test.tpl
+++ b/test/templates/cluster_endtoend_test.tpl
@@ -14,7 +14,7 @@ env:
jobs:
build:
name: Run endtoend tests on {{.Name}}
- runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}}
+ runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}}
steps:
- name: Skip CI
@@ -124,10 +124,19 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
+
+ # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+
# Install everything else we need, and configure
sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6
diff --git a/test/templates/cluster_endtoend_test_docker.tpl b/test/templates/cluster_endtoend_test_docker.tpl
index f68e4223c75..f7e8aa2c1d8 100644
--- a/test/templates/cluster_endtoend_test_docker.tpl
+++ b/test/templates/cluster_endtoend_test_docker.tpl
@@ -6,7 +6,7 @@ permissions: read-all
jobs:
build:
name: Run endtoend tests on {{.Name}}
- runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}}
+ runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}}
steps:
- name: Skip CI
diff --git a/test/templates/cluster_endtoend_test_mysql57.tpl b/test/templates/cluster_endtoend_test_mysql57.tpl
index b51ffc9110e..f4152c939b0 100644
--- a/test/templates/cluster_endtoend_test_mysql57.tpl
+++ b/test/templates/cluster_endtoend_test_mysql57.tpl
@@ -19,7 +19,7 @@ env:
jobs:
build:
name: Run endtoend tests on {{.Name}}
- runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}}
+ runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}}
steps:
- name: Skip CI
@@ -126,13 +126,17 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
# packages for Jammy.
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
+ # We have to install this old version of libaio1. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata
diff --git a/test/templates/cluster_vitess_tester.tpl b/test/templates/cluster_vitess_tester.tpl
index f0b5838d8e8..b8d77754ba6 100644
--- a/test/templates/cluster_vitess_tester.tpl
+++ b/test/templates/cluster_vitess_tester.tpl
@@ -14,7 +14,7 @@ env:
jobs:
build:
name: Run endtoend tests on {{.Name}}
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -93,7 +93,7 @@ jobs:
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
# Setup MySQL 8.0
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get -qq update
diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl
index c47b7a1d796..3704aebac4e 100644
--- a/test/templates/unit_test.tpl
+++ b/test/templates/unit_test.tpl
@@ -14,7 +14,7 @@ env:
jobs:
test:
name: {{.Name}}
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Skip CI
@@ -87,20 +87,20 @@ jobs:
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true'
run: |
export DEBIAN_FRONTEND="noninteractive"
- sudo apt-get -qq update
+ sudo apt-get update
# Uninstall any previously installed MySQL first
sudo systemctl stop apparmor
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common
- sudo apt-get -qq -y autoremove
- sudo apt-get -qq -y autoclean
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common
+ sudo apt-get -y autoremove
+ sudo apt-get -y autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C
- wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
+ wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
{{if (eq .Platform "mysql57")}}
# Bionic packages are still compatible for Jammy since there's no MySQL 5.7
@@ -108,25 +108,32 @@ jobs:
echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections
echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
+ sudo apt-get update
+ # We have to install this old version of libaio1. See also:
+ # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb
+ sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
+ # libtinfo5 is also needed for older MySQL 5.7 builds.
+ curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6
{{end}}
{{if (eq .Platform "mysql80")}}
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
{{end}}
{{if (eq .Platform "mysql84")}}
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
- sudo apt-get -qq update
- sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client
{{end}}
- sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
+ sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata
sudo service mysql stop
sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
From 0439d89f5b59550b0d4602aaeeee1844fb76e11c Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 25 Nov 2024 20:14:06 +0200
Subject: [PATCH 74/78] `Applyschema` uses `ExecuteMultiFetchAsDba` (#17078)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/vt/schemamanager/local_controller.go | 6 ++++--
go/vt/schemamanager/local_controller_test.go | 4 ++--
go/vt/schemamanager/schemamanager.go | 4 ++--
go/vt/schemamanager/schemamanager_test.go | 7 +++++++
go/vt/schemamanager/tablet_executor.go | 14 ++++++++------
go/vt/vtctl/grpcvtctldserver/server.go | 4 +++-
6 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/go/vt/schemamanager/local_controller.go b/go/vt/schemamanager/local_controller.go
index b95bb1398bf..92b7afa83c0 100644
--- a/go/vt/schemamanager/local_controller.go
+++ b/go/vt/schemamanager/local_controller.go
@@ -208,8 +208,10 @@ func (controller *LocalController) writeToLogDir(ctx context.Context, result *Ex
rowsReturned := uint64(0)
rowsAffected := uint64(0)
for _, queryResult := range result.SuccessShards {
- rowsReturned += uint64(len(queryResult.Result.Rows))
- rowsAffected += queryResult.Result.RowsAffected
+ for _, result := range queryResult.Results {
+ rowsReturned += uint64(len(result.Rows))
+ rowsAffected += result.RowsAffected
+ }
}
logFile.WriteString(fmt.Sprintf("-- Rows returned: %d\n", rowsReturned))
logFile.WriteString(fmt.Sprintf("-- Rows affected: %d\n", rowsAffected))
diff --git a/go/vt/schemamanager/local_controller_test.go b/go/vt/schemamanager/local_controller_test.go
index 1784a76e133..74d66033c63 100644
--- a/go/vt/schemamanager/local_controller_test.go
+++ b/go/vt/schemamanager/local_controller_test.go
@@ -138,8 +138,8 @@ func TestLocalControllerSchemaChange(t *testing.T) {
result := &ExecuteResult{
Sqls: []string{"create table test_table (id int)"},
SuccessShards: []ShardResult{{
- Shard: "0",
- Result: &querypb.QueryResult{},
+ Shard: "0",
+ Results: []*querypb.QueryResult{{}},
}},
}
logPath := path.Join(controller.logDir, controller.sqlFilename)
diff --git a/go/vt/schemamanager/schemamanager.go b/go/vt/schemamanager/schemamanager.go
index 1ccc52d6a6d..8a695a1164e 100644
--- a/go/vt/schemamanager/schemamanager.go
+++ b/go/vt/schemamanager/schemamanager.go
@@ -85,8 +85,8 @@ type ShardWithError struct {
// ShardResult contains sql execute information on a particular shard
type ShardResult struct {
- Shard string
- Result *querypb.QueryResult
+ Shard string
+ Results []*querypb.QueryResult
// Position is a replication position that is guaranteed to be after the
// schema change was applied. It can be used to wait for replicas to receive
// the schema change via replication.
diff --git a/go/vt/schemamanager/schemamanager_test.go b/go/vt/schemamanager/schemamanager_test.go
index 129600d0527..76b638960fe 100644
--- a/go/vt/schemamanager/schemamanager_test.go
+++ b/go/vt/schemamanager/schemamanager_test.go
@@ -293,6 +293,13 @@ func (client *fakeTabletManagerClient) ExecuteFetchAsDba(ctx context.Context, ta
return client.TabletManagerClient.ExecuteFetchAsDba(ctx, tablet, usePool, req)
}
+func (client *fakeTabletManagerClient) ExecuteMultiFetchAsDba(ctx context.Context, tablet *topodatapb.Tablet, usePool bool, req *tabletmanagerdatapb.ExecuteMultiFetchAsDbaRequest) ([]*querypb.QueryResult, error) {
+ if client.EnableExecuteFetchAsDbaError {
+ return nil, fmt.Errorf("ExecuteMultiFetchAsDba occur an unknown error")
+ }
+ return client.TabletManagerClient.ExecuteMultiFetchAsDba(ctx, tablet, usePool, req)
+}
+
// newFakeTopo returns a topo with:
// - a keyspace named 'test_keyspace'.
// - 3 shards named '1', '2', '3'.
diff --git a/go/vt/schemamanager/tablet_executor.go b/go/vt/schemamanager/tablet_executor.go
index 68270e0babc..bd521703723 100644
--- a/go/vt/schemamanager/tablet_executor.go
+++ b/go/vt/schemamanager/tablet_executor.go
@@ -572,13 +572,15 @@ func (exec *TabletExecutor) executeOneTablet(
errChan chan ShardWithError,
successChan chan ShardResult) {
- var result *querypb.QueryResult
+ var results []*querypb.QueryResult
var err error
if viaQueryService {
- result, err = exec.tmc.ExecuteQuery(ctx, tablet, &tabletmanagerdatapb.ExecuteQueryRequest{
+ result, reserr := exec.tmc.ExecuteQuery(ctx, tablet, &tabletmanagerdatapb.ExecuteQueryRequest{
Query: []byte(sql),
MaxRows: 10,
})
+ results = []*querypb.QueryResult{result}
+ err = reserr
} else {
if exec.ddlStrategySetting != nil && exec.ddlStrategySetting.IsAllowZeroInDateFlag() {
// --allow-zero-in-date Applies to DDLs
@@ -588,14 +590,14 @@ func (exec *TabletExecutor) executeOneTablet(
return
}
}
- request := &tabletmanagerdatapb.ExecuteFetchAsDbaRequest{
- Query: []byte(sql),
+ request := &tabletmanagerdatapb.ExecuteMultiFetchAsDbaRequest{
+ Sql: []byte(sql),
MaxRows: 10,
}
if exec.ddlStrategySetting != nil && exec.ddlStrategySetting.IsAllowForeignKeysFlag() {
request.DisableForeignKeyChecks = true
}
- result, err = exec.tmc.ExecuteFetchAsDba(ctx, tablet, false, request)
+ results, err = exec.tmc.ExecuteMultiFetchAsDba(ctx, tablet, false, request)
}
if err != nil {
@@ -614,7 +616,7 @@ func (exec *TabletExecutor) executeOneTablet(
}
successChan <- ShardResult{
Shard: tablet.Shard,
- Result: result,
+ Results: results,
Position: pos,
}
}
diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go
index e280a410e02..3bfce2204a2 100644
--- a/go/vt/vtctl/grpcvtctldserver/server.go
+++ b/go/vt/vtctl/grpcvtctldserver/server.go
@@ -303,7 +303,9 @@ func (s *VtctldServer) ApplySchema(ctx context.Context, req *vtctldatapb.ApplySc
}
for _, shard := range execResult.SuccessShards {
- resp.RowsAffectedByShard[shard.Shard] = shard.Result.RowsAffected
+ for _, result := range shard.Results {
+ resp.RowsAffectedByShard[shard.Shard] += result.RowsAffected
+ }
}
return resp, err
From ebf321ef957d52eb760ccecf8780ebda50c12045 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 25 Nov 2024 20:17:45 +0200
Subject: [PATCH 75/78] Online DDL: publish `vreplication_lag_seconds` from
vreplication progress (#17263)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
.../schema/onlineddl/schema_migrations.sql | 1 +
go/vt/vttablet/onlineddl/executor.go | 86 +++++++++----------
go/vt/vttablet/onlineddl/schema.go | 5 ++
go/vt/vttablet/onlineddl/vrepl.go | 14 +++
4 files changed, 61 insertions(+), 45 deletions(-)
diff --git a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
index 91c0323e54b..3e2a72d6ae5 100644
--- a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
+++ b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql
@@ -45,6 +45,7 @@ CREATE TABLE IF NOT EXISTS schema_migrations
`message_timestamp` timestamp(6) NULL DEFAULT NULL,
`eta_seconds` bigint NOT NULL DEFAULT '-1',
`rows_copied` bigint unsigned NOT NULL DEFAULT '0',
+ `vreplication_lag_seconds` bigint unsigned NOT NULL DEFAULT '0',
`table_rows` bigint NOT NULL DEFAULT '0',
`added_unique_keys` int unsigned NOT NULL DEFAULT '0',
`removed_unique_keys` int unsigned NOT NULL DEFAULT '0',
diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go
index 002cd1fb6d0..f8b5cfd9b8d 100644
--- a/go/vt/vttablet/onlineddl/executor.go
+++ b/go/vt/vttablet/onlineddl/executor.go
@@ -3583,53 +3583,36 @@ func (e *Executor) isPreserveForeignKeySupported(ctx context.Context) (isSupport
// and is up to date with the binlogs.
func (e *Executor) isVReplMigrationReadyToCutOver(ctx context.Context, onlineDDL *schema.OnlineDDL, s *VReplStream) (isReady bool, err error) {
// Check all the cases where migration is still running:
- {
- // when ready to cut-over, pos must have some value
- if s.pos == "" {
- return false, nil
- }
+ // when ready to cut-over, pos must have some value
+ if s.pos == "" {
+ return false, nil
}
- {
- // Both time_updated and transaction_timestamp must be in close proximity to each
- // other and to the time now, otherwise that means we're lagging and it's not a good time
- // to cut-over
- durationDiff := func(t1, t2 time.Time) time.Duration {
- return t1.Sub(t2).Abs()
- }
- timeNow := time.Now()
- timeUpdated := time.Unix(s.timeUpdated, 0)
- if durationDiff(timeNow, timeUpdated) > onlineDDL.CutOverThreshold {
- return false, nil
- }
- // Let's look at transaction timestamp. This gets written by any ongoing
- // writes on the server (whether on this table or any other table)
- transactionTimestamp := time.Unix(s.transactionTimestamp, 0)
- if durationDiff(timeNow, transactionTimestamp) > onlineDDL.CutOverThreshold {
- return false, nil
- }
+ // Both time_updated and transaction_timestamp must be in close proximity to each
+ // other and to the time now, otherwise that means we're lagging and it's not a good time
+ // to cut-over
+ if s.Lag() > onlineDDL.CutOverThreshold {
+ return false, nil
}
- {
- // copy_state must have no entries for this vreplication id: if entries are
- // present that means copy is still in progress
- query, err := sqlparser.ParseAndBind(sqlReadCountCopyState,
- sqltypes.Int32BindVariable(s.id),
- )
- if err != nil {
- return false, err
- }
- r, err := e.execQuery(ctx, query)
- if err != nil {
- return false, err
- }
- csRow := r.Named().Row()
- if csRow == nil {
- return false, err
- }
- count := csRow.AsInt64("cnt", 0)
- if count > 0 {
- // Still copying
- return false, nil
- }
+ // copy_state must have no entries for this vreplication id: if entries are
+ // present that means copy is still in progress
+ query, err := sqlparser.ParseAndBind(sqlReadCountCopyState,
+ sqltypes.Int32BindVariable(s.id),
+ )
+ if err != nil {
+ return false, err
+ }
+ r, err := e.execQuery(ctx, query)
+ if err != nil {
+ return false, err
+ }
+ csRow := r.Named().Row()
+ if csRow == nil {
+ return false, err
+ }
+ count := csRow.AsInt64("cnt", 0)
+ if count > 0 {
+ // Still copying
+ return false, nil
}
return true, nil
@@ -3776,6 +3759,7 @@ func (e *Executor) reviewRunningMigrations(ctx context.Context) (countRunnning i
}
_ = e.updateRowsCopied(ctx, uuid, s.rowsCopied)
_ = e.updateMigrationProgressByRowsCopied(ctx, uuid, s.rowsCopied)
+ _ = e.updateMigrationVreplicationLagSeconds(ctx, uuid, int64(s.Lag().Seconds()))
_ = e.updateMigrationETASecondsByProgress(ctx, uuid)
if s.timeThrottled != 0 {
// Avoid creating a 0000-00-00 00:00:00 timestamp
@@ -4534,6 +4518,18 @@ func (e *Executor) updateRowsCopied(ctx context.Context, uuid string, rowsCopied
return err
}
+func (e *Executor) updateMigrationVreplicationLagSeconds(ctx context.Context, uuid string, vreplicationLagSeconds int64) error {
+ query, err := sqlparser.ParseAndBind(sqlUpdateMigrationVreplicationLagSeconds,
+ sqltypes.Int64BindVariable(vreplicationLagSeconds),
+ sqltypes.StringBindVariable(uuid),
+ )
+ if err != nil {
+ return err
+ }
+ _, err = e.execQuery(ctx, query)
+ return err
+}
+
func (e *Executor) updateVitessLivenessIndicator(ctx context.Context, uuid string, livenessIndicator int64) error {
query, err := sqlparser.ParseAndBind(sqlUpdateMigrationVitessLivenessIndicator,
sqltypes.Int64BindVariable(livenessIndicator),
diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go
index bc3fa4f2bc9..943a3b1df07 100644
--- a/go/vt/vttablet/onlineddl/schema.go
+++ b/go/vt/vttablet/onlineddl/schema.go
@@ -87,6 +87,11 @@ const (
WHERE
migration_uuid=%a
`
+ sqlUpdateMigrationVreplicationLagSeconds = `UPDATE _vt.schema_migrations
+ SET vreplication_lag_seconds=%a
+ WHERE
+ migration_uuid=%a
+ `
sqlUpdateMigrationIsView = `UPDATE _vt.schema_migrations
SET is_view=%a
WHERE
diff --git a/go/vt/vttablet/onlineddl/vrepl.go b/go/vt/vttablet/onlineddl/vrepl.go
index 26eb614e95a..2761c27c801 100644
--- a/go/vt/vttablet/onlineddl/vrepl.go
+++ b/go/vt/vttablet/onlineddl/vrepl.go
@@ -30,6 +30,7 @@ import (
"net/url"
"strconv"
"strings"
+ "time"
"vitess.io/vitess/go/mysql/collations"
"vitess.io/vitess/go/mysql/collations/charset"
@@ -96,6 +97,19 @@ func (v *VReplStream) hasError() (isTerminal bool, vreplError error) {
return false, nil
}
+// Lag returns the vreplication lag, as determined by the higher of the transaction timestamp and the time updated.
+func (s *VReplStream) Lag() time.Duration {
+ durationDiff := func(t1, t2 time.Time) time.Duration {
+ return t1.Sub(t2).Abs()
+ }
+ timeNow := time.Now()
+ timeUpdated := time.Unix(s.timeUpdated, 0)
+ // Let's look at transaction timestamp. This gets written by any ongoing
+ // writes on the server (whether on this table or any other table)
+ transactionTimestamp := time.Unix(s.transactionTimestamp, 0)
+ return max(durationDiff(timeNow, timeUpdated), durationDiff(timeNow, transactionTimestamp))
+}
+
// VRepl is an online DDL helper for VReplication based migrations (ddl_strategy="online")
type VRepl struct {
workflow string
From 96f4ac7562c4ae93319a28bda7a73bdf9041259a Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Mon, 25 Nov 2024 20:23:49 +0200
Subject: [PATCH 76/78] A couple `endtoend` cluster tests enhancement (#17247)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
go/test/endtoend/cluster/vtctldclient_process.go | 5 ++++-
go/test/endtoend/cluster/vttablet_process.go | 10 ++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/go/test/endtoend/cluster/vtctldclient_process.go b/go/test/endtoend/cluster/vtctldclient_process.go
index 892f03e27fe..8b401f59070 100644
--- a/go/test/endtoend/cluster/vtctldclient_process.go
+++ b/go/test/endtoend/cluster/vtctldclient_process.go
@@ -41,6 +41,7 @@ type VtctldClientProcess struct {
TempDirectory string
ZoneName string
VtctldClientMajorVersion int
+ Quiet bool
}
// ExecuteCommand executes any vtctldclient command
@@ -72,7 +73,9 @@ func (vtctldclient *VtctldClientProcess) ExecuteCommandWithOutput(args ...string
filterDoubleDashArgs(pArgs, vtctldclient.VtctldClientMajorVersion)...,
)
msg := binlogplayer.LimitString(strings.Join(tmpProcess.Args, " "), 256) // limit log line length
- log.Infof("Executing vtctldclient with command: %v (attempt %d of %d)", msg, i+1, retries)
+ if !vtctldclient.Quiet {
+ log.Infof("Executing vtctldclient with command: %v (attempt %d of %d)", msg, i+1, retries)
+ }
resultByte, err = tmpProcess.CombinedOutput()
resultStr = string(resultByte)
if err == nil || !shouldRetry(resultStr) {
diff --git a/go/test/endtoend/cluster/vttablet_process.go b/go/test/endtoend/cluster/vttablet_process.go
index 6c7a85ec533..6bc6e6b8d7f 100644
--- a/go/test/endtoend/cluster/vttablet_process.go
+++ b/go/test/endtoend/cluster/vttablet_process.go
@@ -459,6 +459,16 @@ func (vttablet *VttabletProcess) QueryTablet(query string, keyspace string, useD
return executeQuery(conn, query)
}
+// MultiQueryTablet lets you execute a query in this tablet and get the result
+func (vttablet *VttabletProcess) MultiQueryTablet(sql string, keyspace string, useDb bool) error {
+ conn, err := vttablet.TabletConn(keyspace, useDb)
+ if err != nil {
+ return err
+ }
+ defer conn.Close()
+ return executeMultiQuery(conn, sql)
+}
+
// SemiSyncExtensionLoaded returns what type of semi-sync extension is loaded
func (vttablet *VttabletProcess) SemiSyncExtensionLoaded() (mysql.SemiSyncType, error) {
conn, err := vttablet.TabletConn("", false)
From 69b381fe185b28bf6ed68eba63821f169d64559c Mon Sep 17 00:00:00 2001
From: Tim Vaillancourt
Date: Tue, 26 Nov 2024 12:39:05 +0100
Subject: [PATCH 77/78] `vtorc`: make SQL formatting consistent (#17154)
Signed-off-by: Tim Vaillancourt
Signed-off-by: Manan Gupta
Co-authored-by: Manan Gupta
---
go/vt/vtorc/db/db.go | 18 +-
go/vt/vtorc/inst/analysis_dao.go | 62 ++---
go/vt/vtorc/inst/audit_dao.go | 24 +-
go/vt/vtorc/inst/instance_dao.go | 276 +++++++++++----------
go/vt/vtorc/inst/instance_dao_test.go | 46 ++--
go/vt/vtorc/inst/tablet_dao.go | 44 ++--
go/vt/vtorc/logic/disable_recovery.go | 33 ++-
go/vt/vtorc/logic/tablet_discovery.go | 2 +-
go/vt/vtorc/logic/topology_recovery_dao.go | 157 ++++++------
go/vt/vtorc/process/health.go | 9 +-
10 files changed, 358 insertions(+), 313 deletions(-)
diff --git a/go/vt/vtorc/db/db.go b/go/vt/vtorc/db/db.go
index 64143477645..4bb22b65b5a 100644
--- a/go/vt/vtorc/db/db.go
+++ b/go/vt/vtorc/db/db.go
@@ -58,13 +58,13 @@ func OpenVTOrc() (db *sql.DB, err error) {
// registerVTOrcDeployment updates the vtorc_db_deployments table upon successful deployment
func registerVTOrcDeployment(db *sql.DB) error {
- query := `
- replace into vtorc_db_deployments (
- deployed_version, deployed_timestamp
- ) values (
- ?, datetime('now')
- )
- `
+ query := `REPLACE INTO vtorc_db_deployments (
+ deployed_version,
+ deployed_timestamp
+ ) VALUES (
+ ?,
+ DATETIME('now')
+ )`
if _, err := execInternal(db, query, ""); err != nil {
log.Fatalf("Unable to write to vtorc_db_deployments: %+v", err)
}
@@ -116,9 +116,7 @@ func initVTOrcDB(db *sql.DB) error {
// execInternal
func execInternal(db *sql.DB, query string, args ...any) (sql.Result, error) {
- var err error
- res, err := sqlutils.ExecNoPrepare(db, query, args...)
- return res, err
+ return sqlutils.ExecNoPrepare(db, query, args...)
}
// ExecVTOrc will execute given query on the vtorc backend database.
diff --git a/go/vt/vtorc/inst/analysis_dao.go b/go/vt/vtorc/inst/analysis_dao.go
index 25d93a6864b..e44538e694c 100644
--- a/go/vt/vtorc/inst/analysis_dao.go
+++ b/go/vt/vtorc/inst/analysis_dao.go
@@ -69,8 +69,7 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna
// TODO(sougou); deprecate ReduceReplicationAnalysisCount
args := sqlutils.Args(config.Config.ReasonableReplicationLagSeconds, ValidSecondsFromSeenToLastAttemptedCheck(), config.Config.ReasonableReplicationLagSeconds, keyspace, shard)
- query := `
- SELECT
+ query := `SELECT
vitess_tablet.info AS tablet_info,
vitess_tablet.tablet_type,
vitess_tablet.primary_timestamp,
@@ -91,13 +90,13 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna
IFNULL(
primary_instance.binary_log_file = database_instance_stale_binlog_coordinates.binary_log_file
AND primary_instance.binary_log_pos = database_instance_stale_binlog_coordinates.binary_log_pos
- AND database_instance_stale_binlog_coordinates.first_seen < datetime('now', printf('-%d second', ?)),
+ AND database_instance_stale_binlog_coordinates.first_seen < DATETIME('now', PRINTF('-%d SECOND', ?)),
0
)
) AS is_stale_binlog_coordinates,
MIN(
primary_instance.last_checked <= primary_instance.last_seen
- and primary_instance.last_attempted_check <= datetime(primary_instance.last_seen, printf('+%d second', ?))
+ and primary_instance.last_attempted_check <= DATETIME(primary_instance.last_seen, PRINTF('+%d SECOND', ?))
) = 1 AS is_last_check_valid,
/* To be considered a primary, traditional async replication must not be present/valid AND the host should either */
/* not be a replication group member OR be the primary of the replication group */
@@ -655,13 +654,13 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
// Find if the lastAnalysisHasChanged or not while updating the row if it has.
lastAnalysisChanged := false
{
- sqlResult, err := db.ExecVTOrc(`
- update database_instance_last_analysis set
+ sqlResult, err := db.ExecVTOrc(`UPDATE database_instance_last_analysis
+ SET
analysis = ?,
- analysis_timestamp = datetime('now')
- where
+ analysis_timestamp = DATETIME('now')
+ WHERE
alias = ?
- and analysis != ?
+ AND analysis != ?
`,
string(analysisCode), tabletAlias, string(analysisCode),
)
@@ -682,13 +681,16 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
firstInsertion := false
if !lastAnalysisChanged {
// The insert only returns more than 1 row changed if this is the first insertion.
- sqlResult, err := db.ExecVTOrc(`
- insert or ignore into database_instance_last_analysis (
- alias, analysis_timestamp, analysis
- ) values (
- ?, datetime('now'), ?
- )
- `,
+ sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO database_instance_last_analysis (
+ alias,
+ analysis_timestamp,
+ analysis
+ ) VALUES (
+ ?,
+ DATETIME('now'),
+ ?
+ )`,
tabletAlias, string(analysisCode),
)
if err != nil {
@@ -708,13 +710,16 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
return nil
}
- _, err := db.ExecVTOrc(`
- insert into database_instance_analysis_changelog (
- alias, analysis_timestamp, analysis
- ) values (
- ?, datetime('now'), ?
- )
- `,
+ _, err := db.ExecVTOrc(`INSERT
+ INTO database_instance_analysis_changelog (
+ alias,
+ analysis_timestamp,
+ analysis
+ ) VALUES (
+ ?,
+ DATETIME('now'),
+ ?
+ )`,
tabletAlias, string(analysisCode),
)
if err == nil {
@@ -727,12 +732,11 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC
// ExpireInstanceAnalysisChangelog removes old-enough analysis entries from the changelog
func ExpireInstanceAnalysisChangelog() error {
- _, err := db.ExecVTOrc(`
- delete
- from database_instance_analysis_changelog
- where
- analysis_timestamp < datetime('now', printf('-%d hour', ?))
- `,
+ _, err := db.ExecVTOrc(`DELETE
+ FROM database_instance_analysis_changelog
+ WHERE
+ analysis_timestamp < DATETIME('now', PRINTF('-%d HOUR', ?))
+ `,
config.UnseenInstanceForgetHours,
)
if err != nil {
diff --git a/go/vt/vtorc/inst/audit_dao.go b/go/vt/vtorc/inst/audit_dao.go
index 642fb187509..cbfd771e81c 100644
--- a/go/vt/vtorc/inst/audit_dao.go
+++ b/go/vt/vtorc/inst/audit_dao.go
@@ -55,14 +55,22 @@ func AuditOperation(auditType string, tabletAlias string, message string) error
}()
}
if config.Config.AuditToBackendDB {
- _, err := db.ExecVTOrc(`
- insert
- into audit (
- audit_timestamp, audit_type, alias, keyspace, shard, message
- ) VALUES (
- datetime('now'), ?, ?, ?, ?, ?
- )
- `,
+ _, err := db.ExecVTOrc(`INSERT
+ INTO audit (
+ audit_timestamp,
+ audit_type,
+ alias,
+ keyspace,
+ shard,
+ message
+ ) VALUES (
+ DATETIME('now'),
+ ?,
+ ?,
+ ?,
+ ?,
+ ?
+ )`,
auditType,
tabletAlias,
keyspace,
diff --git a/go/vt/vtorc/inst/instance_dao.go b/go/vt/vtorc/inst/instance_dao.go
index bd437d1ddac..c8ff218710f 100644
--- a/go/vt/vtorc/inst/instance_dao.go
+++ b/go/vt/vtorc/inst/instance_dao.go
@@ -114,10 +114,15 @@ func ExecDBWriteFunc(f func() error) error {
func ExpireTableData(tableName string, timestampColumn string) error {
writeFunc := func() error {
- _, err := db.ExecVTOrc(
- fmt.Sprintf("delete from %s where %s < datetime('now', printf('-%%d DAY', ?))", tableName, timestampColumn),
- config.Config.AuditPurgeDays,
+ query := fmt.Sprintf(`DELETE
+ FROM %s
+ WHERE
+ %s < DATETIME('now', PRINTF('-%%d DAY', ?))
+ `,
+ tableName,
+ timestampColumn,
)
+ _, err := db.ExecVTOrc(query, config.Config.AuditPurgeDays)
return err
}
return ExecDBWriteFunc(writeFunc)
@@ -463,16 +468,16 @@ func ReadInstanceClusterAttributes(instance *Instance) (err error) {
var primaryExecutedGtidSet string
primaryDataFound := false
- query := `
- select
- replication_depth,
- source_host,
- source_port,
- ancestry_uuid,
- executed_gtid_set
- from database_instance
- where hostname=? and port=?
- `
+ query := `SELECT
+ replication_depth,
+ source_host,
+ source_port,
+ ancestry_uuid,
+ executed_gtid_set
+ FROM database_instance
+ WHERE
+ hostname = ?
+ AND port = ?`
primaryHostname := instance.SourceHost
primaryPort := instance.SourcePort
args := sqlutils.Args(primaryHostname, primaryPort)
@@ -604,20 +609,22 @@ func readInstancesByCondition(condition string, args []any, sort string) ([](*In
if sort == "" {
sort = `alias`
}
- query := fmt.Sprintf(`
- select
- *,
- strftime('%%s', 'now') - strftime('%%s', last_checked) as seconds_since_last_checked,
- ifnull(last_checked <= last_seen, 0) as is_last_check_valid,
- strftime('%%s', 'now') - strftime('%%s', last_seen) as seconds_since_last_seen
- from
- vitess_tablet
- left join database_instance using (alias, hostname, port)
- where
- %s
- order by
- %s
- `, condition, sort)
+ query := fmt.Sprintf(`SELECT
+ *,
+ STRFTIME('%%s', 'now') - STRFTIME('%%s', last_checked) AS seconds_since_last_checked,
+ IFNULL(last_checked <= last_seen, 0) AS is_last_check_valid,
+ STRFTIME('%%s', 'now') - STRFTIME('%%s', last_seen) AS seconds_since_last_seen
+ FROM
+ vitess_tablet
+ LEFT JOIN database_instance USING (alias, hostname, port)
+ WHERE
+ %s
+ ORDER BY
+ %s
+ `,
+ condition,
+ sort,
+ )
err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error {
instance := readInstanceRow(m)
@@ -638,9 +645,7 @@ func readInstancesByCondition(condition string, args []any, sort string) ([](*In
// ReadInstance reads an instance from the vtorc backend database
func ReadInstance(tabletAlias string) (*Instance, bool, error) {
- condition := `
- alias = ?
- `
+ condition := `alias = ?`
instances, err := readInstancesByCondition(condition, sqlutils.Args(tabletAlias), "")
// We know there will be at most one (alias is the PK).
// And we expect to find one.
@@ -657,18 +662,17 @@ func ReadInstance(tabletAlias string) (*Instance, bool, error) {
// ReadProblemInstances reads all instances with problems
func ReadProblemInstances(keyspace string, shard string) ([](*Instance), error) {
condition := `
- keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
- and shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
- and (
- (last_seen < last_checked)
- or (strftime('%%s', 'now') - strftime('%%s', last_checked) > ?)
- or (replication_sql_thread_state not in (-1 ,1))
- or (replication_io_thread_state not in (-1 ,1))
- or (abs(cast(replication_lag_seconds as integer) - cast(sql_delay as integer)) > ?)
- or (abs(cast(replica_lag_seconds as integer) - cast(sql_delay as integer)) > ?)
- or (gtid_errant != '')
- )
- `
+ keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
+ AND shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
+ AND (
+ (last_seen < last_checked)
+ OR (STRFTIME('%%s', 'now') - STRFTIME('%%s', last_checked) > ?)
+ OR (replication_sql_thread_state NOT IN (-1 ,1))
+ OR (replication_io_thread_state NOT IN (-1 ,1))
+ OR (ABS(CAST(replication_lag_seconds AS integer) - CAST(sql_delay AS integer)) > ?)
+ OR (ABS(CAST(replica_lag_seconds AS integer) - CAST(sql_delay AS integer)) > ?)
+ OR (gtid_errant != '')
+ )`
args := sqlutils.Args(keyspace, keyspace, shard, shard, config.Config.InstancePollSeconds*5, config.Config.ReasonableReplicationLagSeconds, config.Config.ReasonableReplicationLagSeconds)
return readInstancesByCondition(condition, args, "")
@@ -677,10 +681,9 @@ func ReadProblemInstances(keyspace string, shard string) ([](*Instance), error)
// ReadInstancesWithErrantGTIds reads all instances with errant GTIDs
func ReadInstancesWithErrantGTIds(keyspace string, shard string) ([]*Instance, error) {
condition := `
- keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
- and shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
- and gtid_errant != ''
- `
+ keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
+ AND shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END)
+ AND gtid_errant != ''`
args := sqlutils.Args(keyspace, keyspace, shard, shard)
return readInstancesByCondition(condition, args, "")
@@ -688,15 +691,14 @@ func ReadInstancesWithErrantGTIds(keyspace string, shard string) ([]*Instance, e
// GetKeyspaceShardName gets the keyspace shard name for the given instance key
func GetKeyspaceShardName(tabletAlias string) (keyspace string, shard string, err error) {
- query := `
- select
- keyspace,
- shard
- from
- vitess_tablet
- where
- alias = ?
- `
+ query := `SELECT
+ keyspace,
+ shard
+ FROM
+ vitess_tablet
+ WHERE
+ alias = ?
+ `
err = db.QueryVTOrc(query, sqlutils.Args(tabletAlias), func(m sqlutils.RowMap) error {
keyspace = m.GetString("keyspace")
shard = m.GetString("shard")
@@ -719,27 +721,26 @@ func GetKeyspaceShardName(tabletAlias string) (keyspace string, shard string, er
// the instance.
func ReadOutdatedInstanceKeys() ([]string, error) {
var res []string
- query := `
- SELECT
- alias
- FROM
- database_instance
- WHERE
- CASE
- WHEN last_attempted_check <= last_checked
- THEN last_checked < datetime('now', printf('-%d second', ?))
- ELSE last_checked < datetime('now', printf('-%d second', ?))
- END
- UNION
- SELECT
- vitess_tablet.alias
- FROM
- vitess_tablet LEFT JOIN database_instance ON (
- vitess_tablet.alias = database_instance.alias
- )
- WHERE
- database_instance.alias IS NULL
- `
+ query := `SELECT
+ alias
+ FROM
+ database_instance
+ WHERE
+ CASE
+ WHEN last_attempted_check <= last_checked
+ THEN last_checked < DATETIME('now', PRINTF('-%d SECOND', ?))
+ ELSE last_checked < DATETIME('now', PRINTF('-%d SECOND', ?))
+ END
+ UNION
+ SELECT
+ vitess_tablet.alias
+ FROM
+ vitess_tablet LEFT JOIN database_instance ON (
+ vitess_tablet.alias = database_instance.alias
+ )
+ WHERE
+ database_instance.alias IS NULL
+ `
args := sqlutils.Args(config.Config.InstancePollSeconds, 2*config.Config.InstancePollSeconds)
err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error {
@@ -782,12 +783,17 @@ func mkInsert(table string, columns []string, values []string, nrRows int, inser
}
col := strings.Join(columns, ", ")
- q.WriteString(fmt.Sprintf(`%s %s
- (%s)
- VALUES
- %s
- `,
- insertStr, table, col, val.String()))
+ query := fmt.Sprintf(`%s %s
+ (%s)
+ VALUES
+ %s
+ `,
+ insertStr,
+ table,
+ col,
+ val.String(),
+ )
+ q.WriteString(query)
return q.String(), nil
}
@@ -873,13 +879,13 @@ func mkInsertForInstances(instances []*Instance, instanceWasActuallyFound bool,
for i := range columns {
values[i] = "?"
}
- values[3] = "datetime('now')" // last_checked
- values[4] = "datetime('now')" // last_attempted_check
+ values[3] = "DATETIME('now')" // last_checked
+ values[4] = "DATETIME('now')" // last_attempted_check
values[5] = "1" // last_check_partial_success
if updateLastSeen {
columns = append(columns, "last_seen")
- values = append(values, "datetime('now')")
+ values = append(values, "DATETIME('now')")
}
var args []any
@@ -995,14 +1001,13 @@ func WriteInstance(instance *Instance, instanceWasActuallyFound bool, lastError
// for a given instance
func UpdateInstanceLastChecked(tabletAlias string, partialSuccess bool) error {
writeFunc := func() error {
- _, err := db.ExecVTOrc(`
- update
- database_instance
- set
- last_checked = datetime('now'),
- last_check_partial_success = ?
- where
- alias = ?`,
+ _, err := db.ExecVTOrc(`UPDATE database_instance
+ SET
+ last_checked = DATETIME('now'),
+ last_check_partial_success = ?
+ WHERE
+ alias = ?
+ `,
partialSuccess,
tabletAlias,
)
@@ -1024,13 +1029,12 @@ func UpdateInstanceLastChecked(tabletAlias string, partialSuccess bool) error {
// we have a "hanging" issue.
func UpdateInstanceLastAttemptedCheck(tabletAlias string) error {
writeFunc := func() error {
- _, err := db.ExecVTOrc(`
- update
- database_instance
- set
- last_attempted_check = datetime('now')
- where
- alias = ?`,
+ _, err := db.ExecVTOrc(`UPDATE database_instance
+ SET
+ last_attempted_check = DATETIME('now')
+ WHERE
+ alias = ?
+ `,
tabletAlias,
)
if err != nil {
@@ -1061,11 +1065,11 @@ func ForgetInstance(tabletAlias string) error {
currentErrantGTIDCount.Reset(tabletAlias)
// Delete from the 'vitess_tablet' table.
- _, err := db.ExecVTOrc(`
- delete
- from vitess_tablet
- where
- alias = ?`,
+ _, err := db.ExecVTOrc(`DELETE
+ FROM vitess_tablet
+ WHERE
+ alias = ?
+ `,
tabletAlias,
)
if err != nil {
@@ -1074,11 +1078,11 @@ func ForgetInstance(tabletAlias string) error {
}
// Also delete from the 'database_instance' table.
- sqlResult, err := db.ExecVTOrc(`
- delete
- from database_instance
- where
- alias = ?`,
+ sqlResult, err := db.ExecVTOrc(`DELETE
+ FROM database_instance
+ WHERE
+ alias = ?
+ `,
tabletAlias,
)
if err != nil {
@@ -1102,11 +1106,11 @@ func ForgetInstance(tabletAlias string) error {
// ForgetLongUnseenInstances will remove entries of all instances that have long since been last seen.
func ForgetLongUnseenInstances() error {
- sqlResult, err := db.ExecVTOrc(`
- delete
- from database_instance
- where
- last_seen < datetime('now', printf('-%d hour', ?))`,
+ sqlResult, err := db.ExecVTOrc(`DELETE
+ FROM database_instance
+ WHERE
+ last_seen < DATETIME('now', PRINTF('-%d HOUR', ?))
+ `,
config.UnseenInstanceForgetHours,
)
if err != nil {
@@ -1127,18 +1131,26 @@ func ForgetLongUnseenInstances() error {
// SnapshotTopologies records topology graph for all existing topologies
func SnapshotTopologies() error {
writeFunc := func() error {
- _, err := db.ExecVTOrc(`
- insert or ignore into
- database_instance_topology_history (snapshot_unix_timestamp,
- alias, hostname, port, source_host, source_port, keyspace, shard, version)
- select
- strftime('%s', 'now'),
- vitess_tablet.alias, vitess_tablet.hostname, vitess_tablet.port,
- database_instance.source_host, database_instance.source_port,
+ _, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO database_instance_topology_history (
+ snapshot_unix_timestamp,
+ alias,
+ hostname,
+ port,
+ source_host,
+ source_port,
+ keyspace,
+ shard,
+ version
+ )
+ SELECT
+ STRFTIME('%s', 'now'),
+ vitess_tablet.alias, vitess_tablet.hostname, vitess_tablet.port,
+ database_instance.source_host, database_instance.source_port,
vitess_tablet.keyspace, vitess_tablet.shard, database_instance.version
- from
- vitess_tablet left join database_instance using (alias, hostname, port)
- `,
+ FROM
+ vitess_tablet LEFT JOIN database_instance USING (alias, hostname, port)
+ `,
)
if err != nil {
log.Error(err)
@@ -1156,10 +1168,12 @@ func ExpireStaleInstanceBinlogCoordinates() error {
expireSeconds = config.StaleInstanceCoordinatesExpireSeconds
}
writeFunc := func() error {
- _, err := db.ExecVTOrc(`
- delete from database_instance_stale_binlog_coordinates
- where first_seen < datetime('now', printf('-%d second', ?))
- `, expireSeconds,
+ _, err := db.ExecVTOrc(`DELETE
+ FROM database_instance_stale_binlog_coordinates
+ WHERE
+ first_seen < DATETIME('now', PRINTF('-%d SECOND', ?))
+ `,
+ expireSeconds,
)
if err != nil {
log.Error(err)
@@ -1181,7 +1195,7 @@ func GetDatabaseState() (string, error) {
ts := tableState{
TableName: tableName,
}
- err := db.QueryVTOrc("select * from "+tableName, nil, func(rowMap sqlutils.RowMap) error {
+ err := db.QueryVTOrc("SELECT * FROM "+tableName, nil, func(rowMap sqlutils.RowMap) error {
ts.Rows = append(ts.Rows, rowMap)
return nil
})
diff --git a/go/vt/vtorc/inst/instance_dao_test.go b/go/vt/vtorc/inst/instance_dao_test.go
index cb2064d10c0..f248ded5e2b 100644
--- a/go/vt/vtorc/inst/instance_dao_test.go
+++ b/go/vt/vtorc/inst/instance_dao_test.go
@@ -66,7 +66,7 @@ func TestMkInsertSingle(t *testing.T) {
replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid,
source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen)
VALUES
- (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
+ (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now'))
`
a1 := `zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT,
FULL, false, false, , 0, , 0, 0, 0,
@@ -89,9 +89,9 @@ func TestMkInsertThree(t *testing.T) {
replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid,
source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen)
VALUES
- (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')),
- (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')),
- (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))
+ (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')),
+ (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')),
+ (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now'))
`
a3 := `
zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT, FULL, false, false, , 0, , 0, 0, 0, false, false, 0, 0, false, false, false, , , , , , , false, false, , 0, mysql.000007, 10, , 0, , , {0 false}, {0 false}, 0, , , , 0, false, false, false, false, false, 0, 0, false, false, 0, false, 0,
@@ -429,27 +429,27 @@ func TestReadOutdatedInstanceKeys(t *testing.T) {
}{
{
name: "No problems",
- sql: []string{"update database_instance set last_checked = datetime('now')"},
+ sql: []string{"update database_instance set last_checked = DATETIME('now')"},
instancesRequired: nil,
}, {
name: "One instance is outdated",
sql: []string{
- "update database_instance set last_checked = datetime('now')",
- "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'",
+ "update database_instance set last_checked = DATETIME('now')",
+ "update database_instance set last_checked = DATETIME('now', '-1 hour') where alias = 'zone1-0000000100'",
},
instancesRequired: []string{"zone1-0000000100"},
}, {
name: "One instance doesn't have myql data",
sql: []string{
- "update database_instance set last_checked = datetime('now')",
+ "update database_instance set last_checked = DATETIME('now')",
`INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`,
},
instancesRequired: []string{"zone1-0000000103"},
}, {
name: "One instance doesn't have myql data and one is outdated",
sql: []string{
- "update database_instance set last_checked = datetime('now')",
- "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'",
+ "update database_instance set last_checked = DATETIME('now')",
+ "update database_instance set last_checked = DATETIME('now', '-1 hour') where alias = 'zone1-0000000100'",
`INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`,
},
instancesRequired: []string{"zone1-0000000103", "zone1-0000000100"},
@@ -486,10 +486,10 @@ func TestReadOutdatedInstanceKeys(t *testing.T) {
errInDataCollection := db.QueryVTOrcRowsMap(`select alias,
last_checked,
last_attempted_check,
-ROUND((JULIANDAY(datetime('now')) - JULIANDAY(last_checked)) * 86400) AS difference,
+ROUND((JULIANDAY(DATETIME('now')) - JULIANDAY(last_checked)) * 86400) AS difference,
last_attempted_check <= last_checked as use1,
-last_checked < datetime('now', '-1500 second') as is_outdated1,
-last_checked < datetime('now', '-3000 second') as is_outdated2
+last_checked < DATETIME('now', '-1500 second') as is_outdated1,
+last_checked < DATETIME('now', '-3000 second') as is_outdated2
from database_instance`, func(rowMap sqlutils.RowMap) error {
log.Errorf("Row in database_instance - %+v", rowMap)
return nil
@@ -513,12 +513,12 @@ func TestUpdateInstanceLastChecked(t *testing.T) {
name: "Verify updated last checked",
tabletAlias: "zone1-0000000100",
partialSuccess: false,
- conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = false",
+ conditionToCheck: "last_checked >= DATETIME('now', '-30 second') and last_check_partial_success = false",
}, {
name: "Verify partial success",
tabletAlias: "zone1-0000000100",
partialSuccess: true,
- conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = true",
+ conditionToCheck: "last_checked >= DATETIME('now', '-30 second') and last_check_partial_success = true",
}, {
name: "Verify no error on unknown tablet",
tabletAlias: "unknown tablet",
@@ -564,7 +564,7 @@ func TestUpdateInstanceLastAttemptedCheck(t *testing.T) {
{
name: "Verify updated last checked",
tabletAlias: "zone1-0000000100",
- conditionToCheck: "last_attempted_check >= datetime('now', '-30 second')",
+ conditionToCheck: "last_attempted_check >= DATETIME('now', '-30 second')",
}, {
name: "Verify no error on unknown tablet",
tabletAlias: "unknown tablet",
@@ -737,19 +737,19 @@ func TestExpireTableData(t *testing.T) {
tableName: "audit",
timestampColumn: "audit_timestamp",
expectedRowCount: 1,
- insertQuery: `insert into audit (audit_id, audit_timestamp, audit_type, alias, message, keyspace, shard) values
-(1, datetime('now', '-50 DAY'), 'a','a','a','a','a'),
-(2, datetime('now', '-5 DAY'), 'a','a','a','a','a')`,
+ insertQuery: `INSERT INTO audit (audit_id, audit_timestamp, audit_type, alias, message, keyspace, shard) VALUES
+(1, DATETIME('now', '-50 DAY'), 'a','a','a','a','a'),
+(2, DATETIME('now', '-5 DAY'), 'a','a','a','a','a')`,
},
{
name: "ExpireRecoveryDetectionHistory",
tableName: "recovery_detection",
timestampColumn: "detection_timestamp",
expectedRowCount: 2,
- insertQuery: `insert into recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) values
-(1, datetime('now', '-3 DAY'),'a','a','a','a'),
-(2, datetime('now', '-5 DAY'),'a','a','a','a'),
-(3, datetime('now', '-15 DAY'),'a','a','a','a')`,
+ insertQuery: `INSERT INTO recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) VALUES
+(1, DATETIME('now', '-3 DAY'),'a','a','a','a'),
+(2, DATETIME('now', '-5 DAY'),'a','a','a','a'),
+(3, DATETIME('now', '-15 DAY'),'a','a','a','a')`,
},
}
for _, tt := range tests {
diff --git a/go/vt/vtorc/inst/tablet_dao.go b/go/vt/vtorc/inst/tablet_dao.go
index af304292a70..f48f2b97370 100644
--- a/go/vt/vtorc/inst/tablet_dao.go
+++ b/go/vt/vtorc/inst/tablet_dao.go
@@ -56,13 +56,13 @@ func fullStatus(tabletAlias string) (*replicationdatapb.FullStatus, error) {
// ReadTablet reads the vitess tablet record.
func ReadTablet(tabletAlias string) (*topodatapb.Tablet, error) {
- query := `
- select
- info
- from
- vitess_tablet
- where alias = ?
- `
+ query := `SELECT
+ info
+ FROM
+ vitess_tablet
+ WHERE
+ alias = ?
+ `
args := sqlutils.Args(tabletAlias)
tablet := &topodatapb.Tablet{}
opts := prototext.UnmarshalOptions{DiscardUnknown: true}
@@ -84,14 +84,28 @@ func SaveTablet(tablet *topodatapb.Tablet) error {
if err != nil {
return err
}
- _, err = db.ExecVTOrc(`
- replace
- into vitess_tablet (
- alias, hostname, port, cell, keyspace, shard, tablet_type, primary_timestamp, info
- ) values (
- ?, ?, ?, ?, ?, ?, ?, ?, ?
- )
- `,
+ _, err = db.ExecVTOrc(`REPLACE
+ INTO vitess_tablet (
+ alias,
+ hostname,
+ port,
+ cell,
+ keyspace,
+ shard,
+ tablet_type,
+ primary_timestamp,
+ info
+ ) VALUES (
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?,
+ ?
+ )`,
topoproto.TabletAliasString(tablet.Alias),
tablet.MysqlHostname,
int(tablet.MysqlPort),
diff --git a/go/vt/vtorc/logic/disable_recovery.go b/go/vt/vtorc/logic/disable_recovery.go
index 60650798876..c5446eeb9ff 100644
--- a/go/vt/vtorc/logic/disable_recovery.go
+++ b/go/vt/vtorc/logic/disable_recovery.go
@@ -40,14 +40,13 @@ import (
// IsRecoveryDisabled returns true if Recoveries are disabled globally
func IsRecoveryDisabled() (disabled bool, err error) {
- query := `
- SELECT
- COUNT(*) as mycount
- FROM
- global_recovery_disable
- WHERE
- disable_recovery=?
- `
+ query := `SELECT
+ COUNT(*) AS mycount
+ FROM
+ global_recovery_disable
+ WHERE
+ disable_recovery = ?
+ `
err = db.QueryVTOrc(query, sqlutils.Args(1), func(m sqlutils.RowMap) error {
mycount := m.GetInt("mycount")
disabled = (mycount > 0)
@@ -63,21 +62,19 @@ func IsRecoveryDisabled() (disabled bool, err error) {
// DisableRecovery ensures recoveries are disabled globally
func DisableRecovery() error {
- _, err := db.ExecVTOrc(`
- INSERT OR IGNORE INTO global_recovery_disable
- (disable_recovery)
- VALUES (1)
- `,
- )
+ _, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO global_recovery_disable (
+ disable_recovery
+ ) VALUES (1)`)
return err
}
// EnableRecovery ensures recoveries are enabled globally
func EnableRecovery() error {
// The "WHERE" clause is just to avoid full-scan reports by monitoring tools
- _, err := db.ExecVTOrc(`
- DELETE FROM global_recovery_disable WHERE disable_recovery >= 0
- `,
- )
+ _, err := db.ExecVTOrc(`DELETE
+ FROM global_recovery_disable
+ WHERE
+ disable_recovery >= 0`)
return err
}
diff --git a/go/vt/vtorc/logic/tablet_discovery.go b/go/vt/vtorc/logic/tablet_discovery.go
index e9bbcee35cb..1ee9e2cfefa 100644
--- a/go/vt/vtorc/logic/tablet_discovery.go
+++ b/go/vt/vtorc/logic/tablet_discovery.go
@@ -66,7 +66,7 @@ func OpenTabletDiscovery() <-chan time.Time {
ts = topo.Open()
tmc = inst.InitializeTMC()
// Clear existing cache and perform a new refresh.
- if _, err := db.ExecVTOrc("delete from vitess_tablet"); err != nil {
+ if _, err := db.ExecVTOrc("DELETE FROM vitess_tablet"); err != nil {
log.Error(err)
}
// We refresh all information from the topo once before we start the ticks to do it on a timer.
diff --git a/go/vt/vtorc/logic/topology_recovery_dao.go b/go/vt/vtorc/logic/topology_recovery_dao.go
index 730e6b2a158..137251c4fc8 100644
--- a/go/vt/vtorc/logic/topology_recovery_dao.go
+++ b/go/vt/vtorc/logic/topology_recovery_dao.go
@@ -30,21 +30,20 @@ import (
// InsertRecoveryDetection inserts the recovery analysis that has been detected.
func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error {
- sqlResult, err := db.ExecVTOrc(`
- insert or ignore
- into recovery_detection (
- alias,
- analysis,
- keyspace,
- shard,
- detection_timestamp
- ) values (
- ?,
- ?,
- ?,
- ?,
- datetime('now')
- )`,
+ sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO recovery_detection (
+ alias,
+ analysis,
+ keyspace,
+ shard,
+ detection_timestamp
+ ) VALUES (
+ ?,
+ ?,
+ ?,
+ ?,
+ DATETIME('now')
+ )`,
analysisEntry.AnalyzedInstanceAlias,
string(analysisEntry.Analysis),
analysisEntry.ClusterDetails.Keyspace,
@@ -65,26 +64,24 @@ func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error {
func writeTopologyRecovery(topologyRecovery *TopologyRecovery) (*TopologyRecovery, error) {
analysisEntry := topologyRecovery.AnalysisEntry
- sqlResult, err := db.ExecVTOrc(`
- insert or ignore
- into topology_recovery (
- recovery_id,
- alias,
- start_recovery,
- analysis,
- keyspace,
- shard,
- detection_id
- ) values (
- ?,
- ?,
- datetime('now'),
- ?,
- ?,
- ?,
- ?
- )
- `,
+ sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO topology_recovery (
+ recovery_id,
+ alias,
+ start_recovery,
+ analysis,
+ keyspace,
+ shard,
+ detection_id
+ ) VALUES (
+ ?,
+ ?,
+ DATETIME('now'),
+ ?,
+ ?,
+ ?,
+ ?
+ )`,
sqlutils.NilIfZero(topologyRecovery.ID),
analysisEntry.AnalyzedInstanceAlias,
string(analysisEntry.Analysis),
@@ -138,15 +135,16 @@ func AttemptRecoveryRegistration(analysisEntry *inst.ReplicationAnalysis) (*Topo
// ResolveRecovery is called on completion of a recovery process and updates the recovery status.
// It does not clear the "active period" as this still takes place in order to avoid flapping.
func writeResolveRecovery(topologyRecovery *TopologyRecovery) error {
- _, err := db.ExecVTOrc(`
- update topology_recovery set
- is_successful = ?,
- successor_alias = ?,
- all_errors = ?,
- end_recovery = datetime('now')
- where
- recovery_id = ?
- `, topologyRecovery.IsSuccessful,
+ _, err := db.ExecVTOrc(`UPDATE topology_recovery
+ SET
+ is_successful = ?,
+ successor_alias = ?,
+ all_errors = ?,
+ end_recovery = DATETIME('now')
+ WHERE
+ recovery_id = ?
+ `,
+ topologyRecovery.IsSuccessful,
topologyRecovery.SuccessorAlias,
strings.Join(topologyRecovery.AllErrors, "\n"),
topologyRecovery.ID,
@@ -160,26 +158,27 @@ func writeResolveRecovery(topologyRecovery *TopologyRecovery) error {
// readRecoveries reads recovery entry/audit entries from topology_recovery
func readRecoveries(whereCondition string, limit string, args []any) ([]*TopologyRecovery, error) {
res := []*TopologyRecovery{}
- query := fmt.Sprintf(`
- select
- recovery_id,
- alias,
- start_recovery,
- IFNULL(end_recovery, '') AS end_recovery,
- is_successful,
- ifnull(successor_alias, '') as successor_alias,
- analysis,
- keyspace,
- shard,
- all_errors,
- detection_id
- from
+ query := fmt.Sprintf(`SELECT
+ recovery_id,
+ alias,
+ start_recovery,
+ IFNULL(end_recovery, '') AS end_recovery,
+ is_successful,
+ IFNULL(successor_alias, '') AS successor_alias,
+ analysis,
+ keyspace,
+ shard,
+ all_errors,
+ detection_id
+ FROM
topology_recovery
%s
- order by
- recovery_id desc
+ ORDER BY recovery_id DESC
%s
- `, whereCondition, limit)
+ `,
+ whereCondition,
+ limit,
+ )
err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error {
topologyRecovery := *NewTopologyRecovery(inst.ReplicationAnalysis{})
topologyRecovery.ID = m.GetInt64("recovery_id")
@@ -211,11 +210,10 @@ func readRecoveries(whereCondition string, limit string, args []any) ([]*Topolog
// ReadActiveClusterRecoveries reads recoveries that are ongoing for the given cluster.
func ReadActiveClusterRecoveries(keyspace string, shard string) ([]*TopologyRecovery, error) {
- whereClause := `
- where
- end_recovery IS NULL
- and keyspace=?
- and shard=?`
+ whereClause := `WHERE
+ end_recovery IS NULL
+ AND keyspace = ?
+ AND shard = ?`
return readRecoveries(whereClause, ``, sqlutils.Args(keyspace, shard))
}
@@ -225,23 +223,30 @@ func ReadRecentRecoveries(page int) ([]*TopologyRecovery, error) {
whereClause := ""
var args []any
if len(whereConditions) > 0 {
- whereClause = fmt.Sprintf("where %s", strings.Join(whereConditions, " and "))
+ whereClause = fmt.Sprintf("WHERE %s", strings.Join(whereConditions, " AND "))
}
- limit := `
- limit ?
- offset ?`
+ limit := `LIMIT ? OFFSET ?`
args = append(args, config.AuditPageSize, page*config.AuditPageSize)
return readRecoveries(whereClause, limit, args)
}
// writeTopologyRecoveryStep writes down a single step in a recovery process
func writeTopologyRecoveryStep(topologyRecoveryStep *TopologyRecoveryStep) error {
- sqlResult, err := db.ExecVTOrc(`
- insert or ignore
- into topology_recovery_steps (
- recovery_step_id, recovery_id, audit_at, message
- ) values (?, ?, datetime('now'), ?)
- `, sqlutils.NilIfZero(topologyRecoveryStep.ID), topologyRecoveryStep.RecoveryID, topologyRecoveryStep.Message,
+ sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE
+ INTO topology_recovery_steps (
+ recovery_step_id,
+ recovery_id,
+ audit_at,
+ message
+ ) VALUES (
+ ?,
+ ?,
+ DATETIME('now'),
+ ?
+ )`,
+ sqlutils.NilIfZero(topologyRecoveryStep.ID),
+ topologyRecoveryStep.RecoveryID,
+ topologyRecoveryStep.Message,
)
if err != nil {
log.Error(err)
diff --git a/go/vt/vtorc/process/health.go b/go/vt/vtorc/process/health.go
index 87a11733f66..f72d7b05210 100644
--- a/go/vt/vtorc/process/health.go
+++ b/go/vt/vtorc/process/health.go
@@ -35,12 +35,17 @@ var ThisNodeHealth = &NodeHealth{}
// writeHealthToDatabase writes to the database and returns if it was successful.
func writeHealthToDatabase() bool {
- _, err := db.ExecVTOrc("delete from node_health")
+ _, err := db.ExecVTOrc("DELETE FROM node_health")
if err != nil {
log.Error(err)
return false
}
- sqlResult, err := db.ExecVTOrc(`insert into node_health (last_seen_active) values (datetime('now'))`)
+ sqlResult, err := db.ExecVTOrc(`INSERT
+ INTO node_health (
+ last_seen_active
+ ) VALUES (
+ DATETIME('now')
+ )`)
if err != nil {
log.Error(err)
return false
From 1f23496f0fd88159c43923f080c0af6a991f9413 Mon Sep 17 00:00:00 2001
From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Date: Tue, 26 Nov 2024 16:26:36 +0200
Subject: [PATCH 78/78] Multi-metrics throttler: adding InnoDB
`history_list_length` metric (#17262)
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
---
.../throttler_topo/throttler_test.go | 34 ++++++++++
.../tabletserver/throttle/base/metric_name.go | 1 +
.../throttle/base/metric_name_test.go | 4 +-
.../self_metric_innodb_history_list_length.go | 68 +++++++++++++++++++
.../tabletserver/throttle/throttler_test.go | 17 +++++
5 files changed, 123 insertions(+), 1 deletion(-)
create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go
diff --git a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
index f96069c81b8..d5a1053d77d 100644
--- a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
+++ b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go
@@ -175,6 +175,16 @@ func throttledApps(tablet *cluster.Vttablet) (resp *http.Response, respBody stri
return resp, respBody, err
}
+func vitessThrottleCheck(tablet *cluster.Vttablet, skipRequestHeartbeats bool) (*vtctldatapb.CheckThrottlerResponse, error) {
+ flags := &throttle.CheckFlags{
+ Scope: base.ShardScope,
+ SkipRequestHeartbeats: skipRequestHeartbeats,
+ MultiMetricsEnabled: true,
+ }
+ resp, err := throttler.CheckThrottler(clusterInstance, tablet, throttlerapp.VitessName, flags)
+ return resp, err
+}
+
func throttleCheck(tablet *cluster.Vttablet, skipRequestHeartbeats bool) (*vtctldatapb.CheckThrottlerResponse, error) {
flags := &throttle.CheckFlags{
Scope: base.ShardScope,
@@ -305,6 +315,17 @@ func TestInitialThrottler(t *testing.T) {
waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED)
})
t.Run("setting high threshold", func(t *testing.T) {
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.LoadAvgMetricName.String(), Threshold: 5555}
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
+ assert.NoError(t, err)
+ }
+ {
+ req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldLoadAvgMetricName.String(), Threshold: 5555}
+ _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
+ assert.NoError(t, err)
+ }
+
req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: extremelyHighThreshold.Seconds()}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
assert.NoError(t, err)
@@ -317,6 +338,19 @@ func TestInitialThrottler(t *testing.T) {
t.Run("validating OK response from throttler with high threshold", func(t *testing.T) {
waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK)
})
+ t.Run("validating vitess app throttler check", func(t *testing.T) {
+ resp, err := vitessThrottleCheck(primaryTablet, true)
+ require.NoError(t, err)
+ for _, metricName := range base.KnownMetricNames {
+ t.Run(metricName.String(), func(t *testing.T) {
+ assert.Contains(t, resp.Check.Metrics, metricName.String())
+ metric := resp.Check.Metrics[metricName.String()]
+ require.NotNil(t, metric)
+ assert.Equal(t, tabletmanagerdatapb.CheckThrottlerResponseCode_OK, metric.ResponseCode, "metric: %+v", metric)
+ })
+ }
+ })
+
t.Run("setting low threshold", func(t *testing.T) {
req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: throttler.DefaultThreshold.Seconds()}
_, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil)
diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
index 607192b9c0c..43bd2d17a8c 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go
@@ -65,6 +65,7 @@ const (
ThreadsRunningMetricName MetricName = "threads_running"
CustomMetricName MetricName = "custom"
LoadAvgMetricName MetricName = "loadavg"
+ HistoryListLengthMetricName MetricName = "history_list_length"
MysqldLoadAvgMetricName MetricName = "mysqld-loadavg"
MysqldDatadirUsedRatioMetricName MetricName = "mysqld-datadir-used-ratio"
)
diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
index ffd7f674cc2..c2e2b44b36f 100644
--- a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
+++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go
@@ -241,15 +241,17 @@ func TestKnownMetricNames(t *testing.T) {
assert.Contains(t, KnownMetricNames, LoadAvgMetricName)
assert.Contains(t, KnownMetricNames, CustomMetricName)
assert.Contains(t, KnownMetricNames, DefaultMetricName)
+ assert.Contains(t, KnownMetricNames, HistoryListLengthMetricName)
assert.Contains(t, KnownMetricNames, MysqldLoadAvgMetricName)
assert.Contains(t, KnownMetricNames, MysqldDatadirUsedRatioMetricName)
}
-func TestSingleWordCamelKnownMetricNames(t *testing.T) {
+func TestKnownMetricNamesPascalCase(t *testing.T) {
expectCases := map[MetricName]string{
LagMetricName: "Lag",
ThreadsRunningMetricName: "ThreadsRunning",
LoadAvgMetricName: "Loadavg",
+ HistoryListLengthMetricName: "HistoryListLength",
CustomMetricName: "Custom",
DefaultMetricName: "Default",
MysqldLoadAvgMetricName: "MysqldLoadavg",
diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go
new file mode 100644
index 00000000000..2696b1750ea
--- /dev/null
+++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go
@@ -0,0 +1,68 @@
+/*
+Copyright 2024 The Vitess Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package base
+
+import (
+ "context"
+ "math"
+ "sync/atomic"
+ "time"
+)
+
+var (
+ historyListLengthQuery = "select count as history_len from information_schema.INNODB_METRICS where name = 'trx_rseg_history_len'"
+
+ cachedHistoryListLengthMetric atomic.Pointer[ThrottleMetric]
+ historyListLengthCacheDuration = 5 * time.Second
+ historyListLengthDefaultThreshold = math.Pow10(9)
+)
+
+var _ SelfMetric = registerSelfMetric(&HistoryListLengthSelfMetric{})
+
+type HistoryListLengthSelfMetric struct {
+}
+
+func (m *HistoryListLengthSelfMetric) Name() MetricName {
+ return HistoryListLengthMetricName
+}
+
+func (m *HistoryListLengthSelfMetric) DefaultScope() Scope {
+ return SelfScope
+}
+
+func (m *HistoryListLengthSelfMetric) DefaultThreshold() float64 {
+ return historyListLengthDefaultThreshold
+}
+
+func (m *HistoryListLengthSelfMetric) RequiresConn() bool {
+ return true
+}
+
+func (m *HistoryListLengthSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric {
+ // This function will be called sequentially, and therefore does not need strong mutex protection. Still, we use atomics
+ // to ensure correctness in case an external goroutine tries to read the metric concurrently.
+ metric := cachedHistoryListLengthMetric.Load()
+ if metric != nil {
+ return metric
+ }
+ metric = ReadSelfMySQLThrottleMetric(ctx, params.Conn, historyListLengthQuery)
+ cachedHistoryListLengthMetric.Store(metric)
+ time.AfterFunc(historyListLengthCacheDuration, func() {
+ cachedHistoryListLengthMetric.Store(nil)
+ })
+ return metric
+}
diff --git a/go/vt/vttablet/tabletserver/throttle/throttler_test.go b/go/vt/vttablet/tabletserver/throttle/throttler_test.go
index 0a1162b02d3..352e641fa35 100644
--- a/go/vt/vttablet/tabletserver/throttle/throttler_test.go
+++ b/go/vt/vttablet/tabletserver/throttle/throttler_test.go
@@ -71,6 +71,12 @@ var (
Value: 2.718,
Err: nil,
},
+ base.HistoryListLengthMetricName: &base.ThrottleMetric{
+ Scope: base.SelfScope,
+ Alias: "",
+ Value: 5,
+ Err: nil,
+ },
base.MysqldLoadAvgMetricName: &base.ThrottleMetric{
Scope: base.SelfScope,
Alias: "",
@@ -105,6 +111,11 @@ var (
ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
Value: 5.1,
},
+ base.HistoryListLengthMetricName.String(): {
+ StatusCode: http.StatusOK,
+ ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
+ Value: 6,
+ },
base.MysqldLoadAvgMetricName.String(): {
StatusCode: http.StatusOK,
ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK,
@@ -1853,6 +1864,7 @@ func TestChecks(t *testing.T) {
assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set
assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set
assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set
+ assert.EqualValues(t, 5, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // self value, because flags.Scope is set
assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because flags.Scope is set
assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because flags.Scope is set
for _, metric := range checkResult.Metrics {
@@ -1914,6 +1926,7 @@ func TestChecks(t *testing.T) {
assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set
assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set
assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set
+ assert.EqualValues(t, 6, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // shard value, because flags.Scope is set
assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set
assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, because flags.Scope is set
for _, metric := range checkResult.Metrics {
@@ -1948,6 +1961,7 @@ func TestChecks(t *testing.T) {
assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running
assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom
assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
+ assert.EqualValues(t, 5, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because "self" is the default scope for loadavg
assert.EqualValues(t, base.ShardScope.String(), checkResult.Metrics[base.LagMetricName.String()].Scope)
@@ -1970,6 +1984,7 @@ func TestChecks(t *testing.T) {
base.MetricName("custom"),
base.MetricName("shard/loadavg"),
base.MetricName("shard/mysqld-loadavg"),
+ base.MetricName("self/history_list_length"),
base.MetricName("self/mysqld-datadir-used-ratio"),
base.MetricName("default"),
}
@@ -1986,6 +2001,7 @@ func TestChecks(t *testing.T) {
assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name
assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set
assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set
+ assert.EqualValues(t, 6, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // shard value, even though scope name is in metric name
assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set
assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, even though scope name is in metric name
for _, metric := range checkResult.Metrics {
@@ -2257,6 +2273,7 @@ func TestReplica(t *testing.T) {
assert.Error(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold)
assert.ErrorIs(t, metricResult.Error, base.ErrThresholdExceeded)
case base.ThreadsRunningMetricName,
+ base.HistoryListLengthMetricName,
base.MysqldLoadAvgMetricName,
base.MysqldDatadirUsedRatioMetricName:
assert.NoError(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold)