2022-11-01 23:30:35 -05:00
|
|
|
import { ScopedVars } from '@grafana/data';
|
|
|
|
import { TemplateSrv } from '@grafana/runtime';
|
|
|
|
import { applyQueryDefaults } from 'app/features/plugins/sql/defaults';
|
|
|
|
import { SQLQuery, SqlQueryModel } from 'app/features/plugins/sql/types';
|
2022-11-16 07:55:31 -06:00
|
|
|
import { FormatRegistryID } from 'app/features/scenes/variables/interpolation/formatRegistry';
|
2022-11-01 23:30:35 -05:00
|
|
|
|
|
|
|
export class PostgresQueryModel implements SqlQueryModel {
|
|
|
|
target: SQLQuery;
|
|
|
|
templateSrv?: TemplateSrv;
|
|
|
|
scopedVars?: ScopedVars;
|
|
|
|
|
|
|
|
constructor(target?: SQLQuery, templateSrv?: TemplateSrv, scopedVars?: ScopedVars) {
|
|
|
|
this.target = applyQueryDefaults(target || { refId: 'A' });
|
|
|
|
this.templateSrv = templateSrv;
|
|
|
|
this.scopedVars = scopedVars;
|
|
|
|
}
|
|
|
|
|
|
|
|
interpolate() {
|
|
|
|
return this.templateSrv?.replace(this.target.rawSql, this.scopedVars, FormatRegistryID.sqlString) || '';
|
|
|
|
}
|
|
|
|
|
|
|
|
quoteLiteral(value: string) {
|
|
|
|
return "'" + value.replace(/'/g, "''") + "'";
|
|
|
|
}
|
|
|
|
}
|