Skip to content

Commit

Permalink
fix(sqllab): Invalid start date (apache#25133)
Browse files Browse the repository at this point in the history
  • Loading branch information
justinpark authored Sep 1, 2023
1 parent e391a1b commit 8b2a408
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
15 changes: 14 additions & 1 deletion superset-frontend/src/SqlLab/reducers/getInitialState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions superset-frontend/src/SqlLab/reducers/sqlLab.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 9 additions & 1 deletion superset-frontend/src/SqlLab/reducers/sqlLab.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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', () => {
Expand Down

0 comments on commit 8b2a408

Please sign in to comment.