mirror of https://github.com/apache/superset.git
fix(sqllab): Invalid start date (#25133)
This commit is contained in:
parent
e391a1b49e
commit
8b2a408dea
|
@ -80,6 +80,7 @@ function QueryAutoRefresh({
|
|||
SupersetClient.get({
|
||||
endpoint: `/api/v1/query/updated_since?q=${params}`,
|
||||
timeout: QUERY_TIMEOUT_LIMIT,
|
||||
parseMethod: 'json-bigint',
|
||||
})
|
||||
.then(({ json }) => {
|
||||
if (json) {
|
||||
|
|
|
@ -213,7 +213,7 @@ const QueryTable = ({
|
|||
{q.db}
|
||||
</Button>
|
||||
);
|
||||
q.started = moment(q.startDttm).format('HH:mm:ss');
|
||||
q.started = moment(q.startDttm).format('L HH:mm:ss');
|
||||
q.querylink = (
|
||||
<Button
|
||||
buttonSize="small"
|
||||
|
|
|
@ -161,7 +161,7 @@ export const SaveDatasetModal = ({
|
|||
);
|
||||
|
||||
const getDefaultDatasetName = () =>
|
||||
`${datasource?.name || UNTITLED} ${moment().format('MM/DD/YYYY HH:mm:ss')}`;
|
||||
`${datasource?.name || UNTITLED} ${moment().format('L HH:mm:ss')}`;
|
||||
const [datasetName, setDatasetName] = useState(getDefaultDatasetName());
|
||||
const [newOrOverwrite, setNewOrOverwrite] = useState(
|
||||
DatasetRadioState.SAVE_NEW,
|
||||
|
|
|
@ -130,7 +130,20 @@ export default function getInitialState({
|
|||
});
|
||||
}
|
||||
|
||||
const queries = { ...queries_ };
|
||||
const queries = Object.fromEntries(
|
||||
Object.entries(queries_ || {}).map(([queryId, query]) => [
|
||||
queryId,
|
||||
{
|
||||
...query,
|
||||
...(query.startDttm && {
|
||||
startDttm: Number(query.startDttm),
|
||||
}),
|
||||
...(query.endDttm && {
|
||||
endDttm: Number(query.endDttm),
|
||||
}),
|
||||
},
|
||||
]),
|
||||
);
|
||||
|
||||
/**
|
||||
* If the `SQLLAB_BACKEND_PERSISTENCE` feature flag is off, or if the user
|
||||
|
|
|
@ -626,6 +626,12 @@ export default function sqlLabReducer(state = {}, action) {
|
|||
newQueries[id] = {
|
||||
...state.queries[id],
|
||||
...changedQuery,
|
||||
...(changedQuery.startDttm && {
|
||||
startDttm: Number(changedQuery.startDttm),
|
||||
}),
|
||||
...(changedQuery.endDttm && {
|
||||
endDttm: Number(changedQuery.endDttm),
|
||||
}),
|
||||
// race condition:
|
||||
// because of async behavior, sql lab may still poll a couple of seconds
|
||||
// when it started fetching or finished rendering results
|
||||
|
|
|
@ -364,16 +364,24 @@ describe('sqlLabReducer', () => {
|
|||
expect(Object.keys(newState.queries)).toHaveLength(0);
|
||||
});
|
||||
it('should refresh queries when polling returns new results', () => {
|
||||
const startDttmInStr = '1693433503447.166992';
|
||||
const endDttmInStr = '1693433503500.23132';
|
||||
newState = sqlLabReducer(
|
||||
{
|
||||
...newState,
|
||||
queries: { abcd: {} },
|
||||
},
|
||||
actions.refreshQueries({
|
||||
abcd: query,
|
||||
abcd: {
|
||||
...query,
|
||||
startDttm: startDttmInStr,
|
||||
endDttm: endDttmInStr,
|
||||
},
|
||||
}),
|
||||
);
|
||||
expect(newState.queries.abcd.changed_on).toBe(DENORMALIZED_CHANGED_ON);
|
||||
expect(newState.queries.abcd.startDttm).toBe(Number(startDttmInStr));
|
||||
expect(newState.queries.abcd.endDttm).toBe(Number(endDttmInStr));
|
||||
expect(newState.queriesLastUpdate).toBe(CHANGED_ON_TIMESTAMP);
|
||||
});
|
||||
it('should refresh queries when polling returns empty', () => {
|
||||
|
|
Loading…
Reference in New Issue