You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ms...@apache.org on 2025/06/27 08:28:37 UTC
(superset) 01/01: feat(Table): add infrastructure to override time shifts
This is an automated email from the ASF dual-hosted git repository.
msyavuz pushed a commit to branch msyavuz/feat/add-timeshift-overrides-capability
in repository https://gitbox.apache.org/repos/asf/superset.git
commit fb64db8829c3caa6b81f64f7c1ef580df1f91024
Author: Mehmet Salih Yavuz <sa...@proton.me>
AuthorDate: Fri Jun 27 11:27:23 2025 +0300
feat(Table): add infrastructure to override time shifts
---
superset-frontend/packages/superset-ui-core/src/query/constants.ts | 1 +
superset-frontend/packages/superset-ui-core/src/query/types/Query.ts | 2 ++
.../packages/superset-ui-core/src/query/types/QueryFormData.ts | 5 +++--
superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts | 4 ++++
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/superset-frontend/packages/superset-ui-core/src/query/constants.ts b/superset-frontend/packages/superset-ui-core/src/query/constants.ts
index 7976e87a4a..0c2df20d3a 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/constants.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/constants.ts
@@ -48,6 +48,7 @@ export const EXTRA_FORM_DATA_OVERRIDE_REGULAR_MAPPINGS: Record<
time_column: 'time_column',
time_grain: 'time_grain',
time_range: 'time_range',
+ time_compare: 'time_compare',
};
export const EXTRA_FORM_DATA_OVERRIDE_REGULAR_KEYS = Object.keys(
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/Query.ts b/superset-frontend/packages/superset-ui-core/src/query/types/Query.ts
index 49fc4b4363..5929fcec15 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/Query.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/Query.ts
@@ -71,6 +71,8 @@ export type QueryObjectExtras = Partial<{
where?: string;
/** Instant Time Comparison */
instant_time_comparison_range?: string;
+
+ time_compare?: string;
}>;
export type ResidualQueryObjectData = {
diff --git a/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts b/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
index ddc467b2c4..4982a908f2 100644
--- a/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
+++ b/superset-frontend/packages/superset-ui-core/src/query/types/QueryFormData.ts
@@ -122,7 +122,7 @@ export type ExtraFormDataAppend = {
* filter clauses can't be overridden */
export type ExtraFormDataOverrideExtras = Pick<
QueryObjectExtras,
- 'relative_start' | 'relative_end' | 'time_grain_sqla'
+ 'relative_start' | 'relative_end' | 'time_grain_sqla' | 'time_compare'
>;
/** These parameters override those already present in the form data/query object */
@@ -131,7 +131,7 @@ export type ExtraFormDataOverrideRegular = Partial<
> &
Partial<Pick<SqlaFormData, 'granularity'>> &
Partial<Pick<BaseFormData, 'time_range'>> &
- Partial<Pick<QueryObject, 'time_column' | 'time_grain'>>;
+ Partial<Pick<QueryObject, 'time_column' | 'time_grain' | 'time_compare'>>;
/** These parameters override those already present in the form data/query object */
export type ExtraFormDataOverride = ExtraFormDataOverrideRegular &
@@ -187,6 +187,7 @@ export interface BaseFormData extends TimeRange, FormDataResidual {
series_columns?: QueryFormColumn[];
series_limit?: number;
series_limit_metric?: QueryFormMetric;
+ time_compare?: [string];
}
/**
diff --git a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
index e269dbb370..4e9f5655b3 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
@@ -116,6 +116,10 @@ const buildQuery: BuildQuery<TableChartFormData> = (
}
}
+ if (extra_form_data?.time_compare) {
+ timeOffsets = [extra_form_data.time_compare];
+ }
+
let temporalColumnAdded = false;
let temporalColumn = null;