add communicator api

This commit is contained in:
hebo
2019-09-05 20:27:49 +08:00
parent d06ca1131e
commit c9f514feed
18 changed files with 1490 additions and 42 deletions

View File

@@ -24,6 +24,7 @@ type MysqlSession struct {
packageOffset int64
expectReceiveSize int
coverRanges []*jigsaw
coverRange *jigsaw
expectSendSize int
prepareInfo *prepareInfo
cachedPrepareStmt map[int][]byte
@@ -137,6 +138,7 @@ func mergeRanges(currRange *jigsaw, pkgRanges []*jigsaw) (mergedRange *jigsaw, n
return currRange, newPkgRanges
} else if len(pkgRanges) == 1 {
//
nextRange = pkgRanges[0]
} else {
@@ -253,6 +255,7 @@ func (ms *MysqlSession) GenerateQueryPiece() (qp model.QueryPiece) {
ms.expectSendSize = 0
ms.prepareInfo = nil
ms.coverRanges = make([]*jigsaw, 0, 4)
ms.coverRange = nil
ms.lastSeq = -1
ms.ignoreAckID = -1
ms.sendSize = 0
@@ -267,6 +270,11 @@ func (ms *MysqlSession) GenerateQueryPiece() (qp model.QueryPiece) {
return
}
if len(ms.cachedStmtBytes) > maxSQLLen {
log.Warn("sql in cache is too long, ignore it")
return
}
var mqp *model.PooledMysqlQueryPiece
var querySQLInBytes []byte
if ms.cachedStmtBytes[0] > 32 {
@@ -327,7 +335,6 @@ func (ms *MysqlSession) GenerateQueryPiece() (qp model.QueryPiece) {
}
}
if strictMode && mqp != nil && mqp.VisitUser == nil {
user, db, err := querySessionInfo(ms.serverPort, mqp.SessionID)
if err != nil {