diff --git a/database/mariadb/mariadb.go b/database/mariadb/mariadb.go index b44e565..c2b7c41 100644 --- a/database/mariadb/mariadb.go +++ b/database/mariadb/mariadb.go @@ -119,6 +119,11 @@ func (db *Database) parseMariaDBHeader(line string, q *query.Query) { } else if strings.Contains(part, "schema:") { q.Schema = parts[idx+1] + } else if strings.Contains(part, "QC_hit") { + q.QC_hit = true + if parts[idx+1] == "No" { + q.QC_hit = false + } } else if strings.Contains(part, "last_errno:") { q.LastErrNo, err = strconv.Atoi(parts[idx+1]) if err != nil { diff --git a/database/mariadb/mariadb_test.go b/database/mariadb/mariadb_test.go index bd974d8..cdc8343 100644 --- a/database/mariadb/mariadb_test.go +++ b/database/mariadb/mariadb_test.go @@ -43,13 +43,14 @@ func TestDatabase_parseMariaDBHeader(t *testing.T) { }, }, { - name: "id, schema", // QC_Hit is not parsed yet + name: "id, schema, QC hit", args: args{ line: "# Thread_id: 12794 Schema: QC_hit: No", }, refQuery: query.Query{ ID: 12794, Schema: "", + QC_hit: false, }, }, { @@ -167,6 +168,7 @@ func TestDatabase_ParseBlocs(t *testing.T) { RowsAffected: 0, BytesSent: 11, Query: "SET timestamp=1616499117;SET NAMES utf8mb4;", + QC_hit: false, }, }, } diff --git a/query/query.go b/query/query.go index a61deac..4f1c699 100644 --- a/query/query.go +++ b/query/query.go @@ -18,4 +18,5 @@ type Query struct { Host string Schema string Query string + QC_hit bool }