Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit f721170

Browse files
committed
common: Record the memory used by live SQLite queries
This should let us analyse memory usage over time, to better ensure we're not hitting any unexpected limits (etc)
1 parent f6b2d6d commit f721170

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

common/sqlite.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -1629,16 +1629,25 @@ func SQLiteRunQueryLive(baseDir, dbOwner, dbName, loggedInUser, query string) (r
16291629
}
16301630
defer sdb.Close()
16311631

1632-
// TODO: Probably add in the before and after logging info at some point (as per function above),
1633-
// so we can analyse query execution times
1632+
// Log the SQL query (prior to executing it)
1633+
logID, err := LogSQLiteQueryBefore("LIVE api", dbOwner, dbName, loggedInUser, "-", "-", query)
1634+
if err != nil {
1635+
return SQLiteRecordSet{}, err
1636+
}
16341637

16351638
// Execute the SQLite select query (or queries)
1636-
_, _, records, err = SQLiteRunQuery(sdb, QuerySourceAPI, query, false, false)
1639+
memUsed, memHighWater, records, err := SQLiteRunQuery(sdb, QuerySourceAPI, query, false, false)
16371640
if err != nil {
1638-
log.Printf("Error when preparing statement by '%s' for LIVE database (%s/%s): '%s'", SanitiseLogString(loggedInUser),
1641+
log.Printf("Error when running LIVE query by '%s' for LIVE database (%s/%s): '%s'", SanitiseLogString(loggedInUser),
16391642
SanitiseLogString(dbOwner), SanitiseLogString(dbName), SanitiseLogString(err.Error()))
16401643
return SQLiteRecordSet{}, err
16411644
}
1645+
1646+
// Add the SQLite execution stats to the log record
1647+
err = LogSQLiteQueryAfter(logID, memUsed, memHighWater)
1648+
if err != nil {
1649+
return SQLiteRecordSet{}, err
1650+
}
16421651
return
16431652
}
16441653

0 commit comments

Comments
 (0)