[fix] Enforcing main dttm column (#5584)

This commit is contained in:
John Bodley 2018-08-13 13:54:55 -07:00 committed by GitHub
parent 50981dbc69
commit 2685ab4f1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 9 deletions

View File

@ -832,22 +832,23 @@ export const controls = {
'column in the table. Also note that the ' +
'filter below is applied against this column or ' +
'expression'),
default: (c) => {
if (c.options && c.options.length > 0) {
return c.options[0].column_name;
}
return null;
},
default: control => control.default,
clearable: false,
optionRenderer: c => <ColumnOption column={c} showType />,
valueRenderer: c => <ColumnOption column={c} />,
valueKey: 'column_name',
mapStateToProps: (state) => {
const newState = {};
const props = {};
if (state.datasource) {
newState.options = state.datasource.columns.filter(c => c.is_dttm);
props.options = state.datasource.columns.filter(c => c.is_dttm);
props.default = null;
if (state.datasource.main_dttm_col) {
props.default = state.datasource.main_dttm_col;
} else if (props.options && props.options.length > 0) {
props.default = props.options[0].column_name;
}
}
return newState;
return props;
},
},

View File

@ -410,6 +410,7 @@ class SqlaTable(Model, BaseDatasource):
grains = [(g.duration, g.name) for g in grains]
d['granularity_sqla'] = utils.choicify(self.dttm_cols)
d['time_grain_sqla'] = grains
d['main_dttm_col'] = self.main_dttm_col
return d
def values_for_column(self, column_name, limit=10000):