Round Spinner timings to 3 decimal places.
This commit is contained in:
parent
9f6eb142d2
commit
4d47b9c594
1 changed files with 16 additions and 12 deletions
|
@ -206,7 +206,7 @@ internal class SpinnerServer(
|
||||||
val action: String = session.parameters["action"]?.get(0).toString()
|
val action: String = session.parameters["action"]?.get(0).toString()
|
||||||
val rawQuery: String = session.parameters["query"]?.get(0).toString()
|
val rawQuery: String = session.parameters["query"]?.get(0).toString()
|
||||||
val query = if (action == "analyze") "EXPLAIN QUERY PLAN $rawQuery" else rawQuery
|
val query = if (action == "analyze") "EXPLAIN QUERY PLAN $rawQuery" else rawQuery
|
||||||
val startTime = System.currentTimeMillis()
|
val startTimeNanos = System.nanoTime()
|
||||||
|
|
||||||
return renderTemplate(
|
return renderTemplate(
|
||||||
"query",
|
"query",
|
||||||
|
@ -217,7 +217,7 @@ internal class SpinnerServer(
|
||||||
databases = databases.keys.toList(),
|
databases = databases.keys.toList(),
|
||||||
plugins = plugins.values.toList(),
|
plugins = plugins.values.toList(),
|
||||||
query = rawQuery,
|
query = rawQuery,
|
||||||
queryResult = dbConfig.db.query(query).use { it.toQueryResult(queryStartTime = startTime, columnTransformers = dbConfig.columnTransformers) }
|
queryResult = dbConfig.db.query(query).use { it.toQueryResult(queryStartTimeNanos = startTimeNanos, columnTransformers = dbConfig.columnTransformers) }
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -261,7 +261,7 @@ internal class SpinnerServer(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Cursor.toQueryResult(queryStartTime: Long = 0, columnTransformers: List<ColumnTransformer> = emptyList()): QueryResult {
|
private fun Cursor.toQueryResult(queryStartTimeNanos: Long = 0, columnTransformers: List<ColumnTransformer> = emptyList()): QueryResult {
|
||||||
val numColumns = this.columnCount
|
val numColumns = this.columnCount
|
||||||
val columns = mutableListOf<String>()
|
val columns = mutableListOf<String>()
|
||||||
val transformers = mutableListOf<ColumnTransformer>()
|
val transformers = mutableListOf<ColumnTransformer>()
|
||||||
|
@ -279,11 +279,11 @@ internal class SpinnerServer(
|
||||||
transformers += customTransformer ?: DefaultColumnTransformer
|
transformers += customTransformer ?: DefaultColumnTransformer
|
||||||
}
|
}
|
||||||
|
|
||||||
var timeOfFirstRow = 0L
|
var timeOfFirstRowNanos = 0L
|
||||||
val rows = mutableListOf<List<String>>()
|
val rows = mutableListOf<List<String>>()
|
||||||
while (moveToNext()) {
|
while (moveToNext()) {
|
||||||
if (timeOfFirstRow == 0L) {
|
if (timeOfFirstRowNanos == 0L) {
|
||||||
timeOfFirstRow = System.currentTimeMillis()
|
timeOfFirstRowNanos = System.nanoTime()
|
||||||
}
|
}
|
||||||
|
|
||||||
val row = mutableListOf<String>()
|
val row = mutableListOf<String>()
|
||||||
|
@ -299,18 +299,22 @@ internal class SpinnerServer(
|
||||||
rows += row
|
rows += row
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeOfFirstRow == 0L) {
|
if (timeOfFirstRowNanos == 0L) {
|
||||||
timeOfFirstRow = System.currentTimeMillis()
|
timeOfFirstRowNanos = System.nanoTime()
|
||||||
}
|
}
|
||||||
|
|
||||||
return QueryResult(
|
return QueryResult(
|
||||||
columns = columns,
|
columns = columns,
|
||||||
rows = rows,
|
rows = rows,
|
||||||
timeToFirstRow = max(timeOfFirstRow - queryStartTime, 0),
|
timeToFirstRow = (max(timeOfFirstRowNanos - queryStartTimeNanos, 0) / 1_000_000.0f).roundForDisplay(3),
|
||||||
timeToReadRows = max(System.currentTimeMillis() - timeOfFirstRow, 0)
|
timeToReadRows = (max(System.nanoTime() - timeOfFirstRowNanos, 0) / 1_000_000.0f).roundForDisplay(3)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Float.roundForDisplay(decimals: Int = 2): String {
|
||||||
|
return "%.${decimals}f".format(this)
|
||||||
|
}
|
||||||
|
|
||||||
private fun Cursor.toTableInfo(): List<TableInfo> {
|
private fun Cursor.toTableInfo(): List<TableInfo> {
|
||||||
val tables = mutableListOf<TableInfo>()
|
val tables = mutableListOf<TableInfo>()
|
||||||
|
|
||||||
|
@ -450,8 +454,8 @@ internal class SpinnerServer(
|
||||||
val columns: List<String>,
|
val columns: List<String>,
|
||||||
val rows: List<List<String>>,
|
val rows: List<List<String>>,
|
||||||
val rowCount: Int = rows.size,
|
val rowCount: Int = rows.size,
|
||||||
val timeToFirstRow: Long,
|
val timeToFirstRow: String,
|
||||||
val timeToReadRows: Long,
|
val timeToReadRows: String,
|
||||||
)
|
)
|
||||||
|
|
||||||
data class TableInfo(
|
data class TableInfo(
|
||||||
|
|
Loading…
Add table
Reference in a new issue