diff --git a/superset/assets/javascripts/SqlLab/components/VisualizeModal.jsx b/superset/assets/javascripts/SqlLab/components/VisualizeModal.jsx index 0536068ee19e2..e612c9f97e97e 100644 --- a/superset/assets/javascripts/SqlLab/components/VisualizeModal.jsx +++ b/superset/assets/javascripts/SqlLab/components/VisualizeModal.jsx @@ -27,10 +27,9 @@ const defaultProps = { class VisualizeModal extends React.PureComponent { constructor(props) { super(props); - const uniqueId = shortid.generate(); this.state = { chartType: CHART_TYPES[0], - datasourceName: uniqueId, + datasourceName: this.datasourceName(), columns: {}, hints: [], }; @@ -54,6 +53,17 @@ class VisualizeModal extends React.PureComponent { }); this.setState({ columns }); } + datasourceName() { + const { query } = this.props; + const uniqueId = shortid.generate(); + let datasourceName = uniqueId; + if (query) { + datasourceName = query.user ? `${query.user}-` : ''; + datasourceName += query.db ? `${query.db}-` : ''; + datasourceName += `${query.tab}-${uniqueId}`; + } + return datasourceName; + } validate() { const hints = []; const cols = this.mergedColumns();