grafana/public/app/features/plugins/sql/utils/useSqlChange.ts
Zoltán Bedi 62c30dea4d
MySQL: Quote identifiers that include special characters (#61135)
* SQL: toRawSQL required and escape table

* Fix autocomplete for MySQL

* Change the way we escape for builder

* Rework escape ident to be smart instead

* Fix A11y for alias

* Add first e2e test

* Add test for code editor

* Add doc

* Review comments

* Move functions to sqlUtil
2023-01-31 18:16:28 +01:00

24 lines
639 B
TypeScript

import { useCallback } from 'react';
import { DB, SQLExpression, SQLQuery } from '../types';
interface UseSqlChange {
db: DB;
query: SQLQuery;
onQueryChange: (query: SQLQuery) => void;
}
export function useSqlChange({ query, onQueryChange, db }: UseSqlChange) {
const onSqlChange = useCallback(
(sql: SQLExpression) => {
const toRawSql = db.toRawSql;
const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });
const newQuery: SQLQuery = { ...query, sql, rawSql };
onQueryChange(newQuery);
},
[db, onQueryChange, query]
);
return { onSqlChange };
}