|
|
@@ -474,10 +474,22 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
|
|
.then(this.transformToSegments({}))
|
|
|
.catch(this.handleQueryError.bind(this));
|
|
|
case 'right':
|
|
|
- return this.datasource
|
|
|
- .metricFindQuery(this.metaBuilder.buildValueQuery(part.params[0]))
|
|
|
- .then(this.transformToSegments({ addTemplateVars: true, templateQuoter: this.queryModel.quoteLiteral }))
|
|
|
- .catch(this.handleQueryError.bind(this));
|
|
|
+ if (['int4', 'int8', 'float4', 'float8', 'timestamp', 'timestamptz'].indexOf(part.datatype) > -1) {
|
|
|
+ // don't do value lookups for numerical fields
|
|
|
+ return this.$q.when([]);
|
|
|
+ } else {
|
|
|
+ return this.datasource
|
|
|
+ .metricFindQuery(this.metaBuilder.buildValueQuery(part.params[0]))
|
|
|
+ .then(
|
|
|
+ this.transformToSegments({
|
|
|
+ addTemplateVars: true,
|
|
|
+ templateQuoter: (v: string) => {
|
|
|
+ return this.queryModel.quoteLiteral(v);
|
|
|
+ },
|
|
|
+ })
|
|
|
+ )
|
|
|
+ .catch(this.handleQueryError.bind(this));
|
|
|
+ }
|
|
|
case 'op':
|
|
|
return this.$q.when(this.uiSegmentSrv.newOperators(['=', '!=', '<', '<=', '>', '>=', 'IN', 'NOT IN']));
|
|
|
default:
|
|
|
@@ -485,6 +497,11 @@ export class PostgresQueryCtrl extends QueryCtrl {
|
|
|
}
|
|
|
}
|
|
|
case 'part-param-changed': {
|
|
|
+ this.datasource.metricFindQuery(this.metaBuilder.buildDatatypeQuery(part.params[0])).then((d: any) => {
|
|
|
+ if (d.length === 1) {
|
|
|
+ part.datatype = d[0].text;
|
|
|
+ }
|
|
|
+ });
|
|
|
this.panelCtrl.refresh();
|
|
|
break;
|
|
|
}
|