Skip to content

Commit 2193687

Browse files
msyavuziankang
authored andcommitted
feat(Table): Add infrastructure to override time shifts (apache#33947)
1 parent 3ab10e9 commit 2193687

File tree

6 files changed

+16
-3
lines changed

6 files changed

+16
-3
lines changed

superset-frontend/packages/superset-ui-core/src/query/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export const EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS: Record<
4848
time_column: 'time_column',
4949
time_grain: 'time_grain',
5050
time_range: 'time_range',
51+
time_compare: 'time_compare',
5152
};
5253

5354
export const EXTRA_FORM_DATA_OVERRIDE_REGULAR_KEYS = Object.keys(

superset-frontend/packages/superset-ui-core/src/query/extractExtras.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ type ExtraFilterQueryField = {
3131
granularity_sqla?: string;
3232
time_grain_sqla?: TimeGranularity;
3333
granularity?: string;
34+
time_compare?: string;
3435
};
3536

3637
type ExtractedExtra = ExtraFilterQueryField & {
@@ -57,6 +58,7 @@ export default function extractExtras(formData: QueryFormData): ExtractedExtra {
5758
__time_col: 'granularity_sqla',
5859
__time_grain: 'time_grain_sqla',
5960
__granularity: 'granularity',
61+
__time_compare: 'time_compare',
6062
};
6163

6264
(formData.extra_filters || []).forEach(filter => {

superset-frontend/packages/superset-ui-core/src/query/types/Query.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ export type QueryObjectExtras = Partial<{
7171
where?: string;
7272
/** Instant Time Comparison */
7373
instant_time_comparison_range?: string;
74+
75+
time_compare?: string;
7476
}>;
7577

7678
export type ResidualQueryObjectData = {

superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export type ExtraFormDataAppend = {
122122
* filter clauses can't be overridden */
123123
export type ExtraFormDataOverrideExtras = Pick<
124124
QueryObjectExtras,
125-
'relative_start' | 'relative_end' | 'time_grain_sqla'
125+
'relative_start' | 'relative_end' | 'time_grain_sqla' | 'time_compare'
126126
>;
127127

128128
/** These parameters override those already present in the form data/query object */
@@ -131,7 +131,7 @@ export type ExtraFormDataOverrideRegular = Partial<
131131
> &
132132
Partial<Pick<SqlaFormData, 'granularity'>> &
133133
Partial<Pick<BaseFormData, 'time_range'>> &
134-
Partial<Pick<QueryObject, 'time_column' | 'time_grain'>>;
134+
Partial<Pick<QueryObject, 'time_column' | 'time_grain' | 'time_compare'>>;
135135

136136
/** These parameters override those already present in the form data/query object */
137137
export type ExtraFormDataOverride = ExtraFormDataOverrideRegular &

superset-frontend/packages/superset-ui-core/src/query/types/Time.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ export type TimeColumnConfigKey =
3030
| '__time_col'
3131
| '__time_grain'
3232
| '__time_range'
33-
| '__granularity';
33+
| '__granularity'
34+
| '__time_compare';
3435

3536
export type AppliedTimeExtras = Partial<
3637
Record<TimeColumnConfigKey, keyof QueryObject>

superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,13 @@ const buildQuery: BuildQuery<TableChartFormData> = (
115115
}
116116
}
117117

118+
if (
119+
extra_form_data?.time_compare &&
120+
!timeOffsets.includes(extra_form_data.time_compare)
121+
) {
122+
timeOffsets = [extra_form_data.time_compare];
123+
}
124+
118125
let temporalColumnAdded = false;
119126
let temporalColumn = null;
120127

0 commit comments

Comments
 (0)