Remove limitation in the query

This commit is contained in:
ismail simsek
2023-09-29 14:55:01 +02:00
parent 61b856c7dc
commit 8a347bc487
3 changed files with 7 additions and 2 deletions
@@ -15,6 +15,7 @@ import { VisualEditor } from './visual-query-builder/VisualEditor';
interface SqlQueryEditorProps extends QueryEditorProps<SqlDatasource, SQLQuery, SQLOptions> { interface SqlQueryEditorProps extends QueryEditorProps<SqlDatasource, SQLQuery, SQLOptions> {
queryHeaderProps?: Pick<QueryHeaderProps, 'isPostgresInstance'>; queryHeaderProps?: Pick<QueryHeaderProps, 'isPostgresInstance'>;
overrideQueryDefaults?: Partial<SQLQuery>;
} }
export function SqlQueryEditor({ export function SqlQueryEditor({
@@ -24,6 +25,7 @@ export function SqlQueryEditor({
onRunQuery, onRunQuery,
range, range,
queryHeaderProps, queryHeaderProps,
overrideQueryDefaults,
}: SqlQueryEditorProps) { }: SqlQueryEditorProps) {
const [isQueryRunnable, setIsQueryRunnable] = useState(true); const [isQueryRunnable, setIsQueryRunnable] = useState(true);
const db = datasource.getDB(); const db = datasource.getDB();
@@ -38,7 +40,7 @@ export function SqlQueryEditor({
}; };
}, [datasource]); }, [datasource]);
const queryWithDefaults = applyQueryDefaults(query); const queryWithDefaults = applyQueryDefaults(query, overrideQueryDefaults);
const [queryRowFilter, setQueryRowFilter] = useState<QueryRowFilter>({ const [queryRowFilter, setQueryRowFilter] = useState<QueryRowFilter>({
filter: !!queryWithDefaults.sql?.whereString, filter: !!queryWithDefaults.sql?.whereString,
group: !!queryWithDefaults.sql?.groupBy?.[0]?.property.name, group: !!queryWithDefaults.sql?.groupBy?.[0]?.property.name,
+3 -1
View File
@@ -3,7 +3,7 @@ import { EditorMode } from '@grafana/experimental';
import { QueryFormat, SQLQuery } from './types'; import { QueryFormat, SQLQuery } from './types';
import { createFunctionField, setGroupByField } from './utils/sql.utils'; import { createFunctionField, setGroupByField } from './utils/sql.utils';
export function applyQueryDefaults(q?: SQLQuery): SQLQuery { export function applyQueryDefaults(q?: SQLQuery, override: Partial<SQLQuery> = { sql: {} }): SQLQuery {
let editorMode = q?.editorMode || EditorMode.Builder; let editorMode = q?.editorMode || EditorMode.Builder;
// Switching to code editor if the query was created before visual query builder was introduced. // Switching to code editor if the query was created before visual query builder was introduced.
@@ -17,10 +17,12 @@ export function applyQueryDefaults(q?: SQLQuery): SQLQuery {
format: q?.format !== undefined ? q.format : QueryFormat.Table, format: q?.format !== undefined ? q.format : QueryFormat.Table,
rawSql: q?.rawSql || '', rawSql: q?.rawSql || '',
editorMode, editorMode,
...override,
sql: q?.sql ?? { sql: q?.sql ?? {
columns: [createFunctionField()], columns: [createFunctionField()],
groupBy: [setGroupByField()], groupBy: [setGroupByField()],
limit: 50, limit: 50,
...override?.sql,
}, },
}; };
@@ -90,6 +90,7 @@ class UnthemedSQLQueryEditor extends PureComponent<Props> {
query={this.transformQuery(query)} query={this.transformQuery(query)}
onRunQuery={onRunSQLQuery} onRunQuery={onRunSQLQuery}
onChange={onSQLChange} onChange={onSQLChange}
overrideQueryDefaults={{ sql: { limit: undefined } }}
/> />
<div className={cx('gf-form-inline', styles.editorActions)}> <div className={cx('gf-form-inline', styles.editorActions)}>
<LinkButton <LinkButton