feat(sqllab): Adds refresh button to table metadata in SQL Lab (#29974)

This commit is contained in:
Usiel Riedl
2024-08-23 08:07:59 +08:00
committed by GitHub
parent 17eecb1981
commit 9d5268ab6d
3 changed files with 53 additions and 8 deletions

View File

@@ -32,6 +32,7 @@ import {
syncTable,
} from 'src/SqlLab/actions/sqlLab';
import {
tableApiUtil,
useTableExtendedMetadataQuery,
useTableMetadataQuery,
} from 'src/hooks/apiResources';
@@ -107,7 +108,7 @@ const TableElement = ({ table, ...props }: TableElementProps) => {
const {
currentData: tableMetadata,
isSuccess: isMetadataSuccess,
isLoading: isMetadataLoading,
isFetching: isMetadataFetching,
isError: hasMetadataError,
} = useTableMetadataQuery(
{
@@ -177,6 +178,13 @@ const TableElement = ({ table, ...props }: TableElementProps) => {
setSortColumns(prevState => !prevState);
};
const refreshTableMetadata = () => {
dispatch(
tableApiUtil.invalidateTags([{ type: 'TableMetadatas', id: name }]),
);
dispatch(syncTable(table, tableData));
};
const renderWell = () => {
let partitions;
let metadata;
@@ -268,6 +276,11 @@ const TableElement = ({ table, ...props }: TableElementProps) => {
}
`}
>
<IconTooltip
className="fa fa-refresh pull-left m-l-2 pointer"
onClick={refreshTableMetadata}
tooltip={t('Refresh table schema')}
/>
{keyLink}
<IconTooltip
className={
@@ -341,7 +354,7 @@ const TableElement = ({ table, ...props }: TableElementProps) => {
</Tooltip>
<div className="pull-right header-right-side">
{isMetadataLoading || isExtraMetadataLoading ? (
{isMetadataFetching || isExtraMetadataLoading ? (
<Loading position="inline" />
) : (
<Fade