mirror of https://gitee.com/bigwinds/arangodb
show query string length and cacheability in explain output (#9768)
This commit is contained in:
parent
3592af0b79
commit
dfafae42b8
|
@ -1,6 +1,8 @@
|
||||||
v3.5.1 (XXXX-XX-XX)
|
v3.5.1 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* Show query string length and cacheability information in query explain output.
|
||||||
|
|
||||||
* The AQL functions `FULLTEXT`, `NEAR`, `WITHIN` and `WITHIN_RECTANGLE` are now
|
* The AQL functions `FULLTEXT`, `NEAR`, `WITHIN` and `WITHIN_RECTANGLE` are now
|
||||||
marked as cacheable, so they can be used in conjunction with the AQL query
|
marked as cacheable, so they can be used in conjunction with the AQL query
|
||||||
results cache on a single server.
|
results cache on a single server.
|
||||||
|
|
|
@ -162,17 +162,18 @@ function pad(n) {
|
||||||
/* print functions */
|
/* print functions */
|
||||||
|
|
||||||
/* print query string */
|
/* print query string */
|
||||||
function printQuery(query) {
|
function printQuery(query, cacheable) {
|
||||||
'use strict';
|
'use strict';
|
||||||
// restrict max length of printed query to avoid endless printing for
|
// restrict max length of printed query to avoid endless printing for
|
||||||
// very long query strings
|
// very long query strings
|
||||||
var maxLength = 4096;
|
var maxLength = 4096, headline = 'Query String (' + query.length + ' chars';
|
||||||
if (query.length > maxLength) {
|
if (query.length > maxLength) {
|
||||||
stringBuilder.appendLine(section('Query String (truncated):'));
|
headline += ' - truncated...';
|
||||||
query = query.substr(0, maxLength / 2) + ' ... ' + query.substr(query.length - maxLength / 2);
|
query = query.substr(0, maxLength / 2) + ' ... ' + query.substr(query.length - maxLength / 2);
|
||||||
} else {
|
|
||||||
stringBuilder.appendLine(section('Query String:'));
|
|
||||||
}
|
}
|
||||||
|
headline += ', cacheable: ' + (cacheable ? 'true' : 'false');
|
||||||
|
headline += '):';
|
||||||
|
stringBuilder.appendLine(section(headline));
|
||||||
stringBuilder.appendLine(' ' + value(stringBuilder.wrap(query, 100)));
|
stringBuilder.appendLine(' ' + value(stringBuilder.wrap(query, 100)));
|
||||||
stringBuilder.appendLine();
|
stringBuilder.appendLine();
|
||||||
}
|
}
|
||||||
|
@ -1718,7 +1719,7 @@ function processQuery(query, explain, planIndex) {
|
||||||
};
|
};
|
||||||
|
|
||||||
if (planIndex === undefined) {
|
if (planIndex === undefined) {
|
||||||
printQuery(query);
|
printQuery(query, explain.cacheable);
|
||||||
}
|
}
|
||||||
|
|
||||||
stringBuilder.appendLine(section('Execution plan:'));
|
stringBuilder.appendLine(section('Execution plan:'));
|
||||||
|
|
Loading…
Reference in New Issue