mirror of https://github.com/apache/superset.git
[sql lab] preserve schema through visualize flow (#4742)
* [sql lab] preserve schema through visualize flow https://github.com/apache/incubator-superset/pull/4696 got tangled into refactoring views out of views/core.py and onto views/sql_lab.py This is the same PR without the refactoring. * Fix lint
This commit is contained in:
parent
9a79d33e0d
commit
3b7e0a951a
|
@ -13,7 +13,7 @@ const $ = window.$ = require('jquery');
|
|||
|
||||
const propTypes = {
|
||||
actions: PropTypes.object.isRequired,
|
||||
height: PropTypes.number.isRequired,
|
||||
height: PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
class QuerySearch extends React.PureComponent {
|
||||
|
|
|
@ -31,6 +31,7 @@ const propTypes = {
|
|||
onHide: PropTypes.func,
|
||||
query: PropTypes.object,
|
||||
show: PropTypes.bool,
|
||||
schema: PropTypes.string,
|
||||
datasource: PropTypes.string,
|
||||
errorMessage: PropTypes.string,
|
||||
timeout: PropTypes.number,
|
||||
|
@ -48,6 +49,7 @@ class VisualizeModal extends React.PureComponent {
|
|||
chartType: CHART_TYPES[0],
|
||||
datasourceName: this.datasourceName(),
|
||||
columns: this.getColumnFromProps(),
|
||||
schema: props.query ? props.query.schema : null,
|
||||
hints: [],
|
||||
};
|
||||
}
|
||||
|
@ -126,6 +128,7 @@ class VisualizeModal extends React.PureComponent {
|
|||
buildVizOptions() {
|
||||
return {
|
||||
chartType: this.state.chartType.value,
|
||||
schema: this.state.schema,
|
||||
datasourceName: this.state.datasourceName,
|
||||
columns: this.state.columns,
|
||||
sql: this.props.query.sql,
|
||||
|
|
|
@ -269,6 +269,7 @@ describe('VisualizeModal', () => {
|
|||
chartType: wrapper.state().chartType.value,
|
||||
datasourceName: wrapper.state().datasourceName,
|
||||
columns: wrapper.state().columns,
|
||||
schema: 'test_schema',
|
||||
sql: wrapper.instance().props.query.sql,
|
||||
dbId: wrapper.instance().props.query.dbId,
|
||||
});
|
||||
|
|
|
@ -197,7 +197,7 @@ export const queries = [
|
|||
rows: 42,
|
||||
endDttm: 1476910566798,
|
||||
limit_reached: false,
|
||||
schema: null,
|
||||
schema: 'test_schema',
|
||||
errorMessage: null,
|
||||
db: 'main',
|
||||
user: 'admin',
|
||||
|
|
|
@ -2160,6 +2160,7 @@ class Superset(BaseSupersetView):
|
|||
if not table:
|
||||
table = SqlaTable(table_name=table_name)
|
||||
table.database_id = data.get('dbId')
|
||||
table.schema = data.get('schema')
|
||||
q = SupersetQuery(data.get('sql'))
|
||||
table.sql = q.stripped()
|
||||
db.session.add(table)
|
||||
|
|
|
@ -226,6 +226,37 @@ class SqlLabTests(SupersetTestCase):
|
|||
self.assertEquals(len(data), cdf.size)
|
||||
self.assertEquals(len(cols), len(cdf.columns))
|
||||
|
||||
def test_sqllab_viz(self):
|
||||
payload = {
|
||||
'chartType': 'dist_bar',
|
||||
'datasourceName': 'test_viz_flow_table',
|
||||
'schema': 'superset',
|
||||
'columns': {
|
||||
'viz_type': {
|
||||
'is_date': False,
|
||||
'type': 'STRING',
|
||||
'nam:qe': 'viz_type',
|
||||
'is_dim': True,
|
||||
},
|
||||
'ccount': {
|
||||
'is_date': False,
|
||||
'type': 'OBJECT',
|
||||
'name': 'ccount',
|
||||
'is_dim': True,
|
||||
'agg': 'sum',
|
||||
},
|
||||
},
|
||||
'sql': """\
|
||||
SELECT viz_type, count(1) as ccount
|
||||
FROM slices
|
||||
WHERE viz_type LIKE '%%a%%'
|
||||
GROUP BY viz_type""",
|
||||
'dbId': 1,
|
||||
}
|
||||
data = {'data': json.dumps(payload)}
|
||||
resp = self.get_json_resp('/superset/sqllab_viz/', data=data)
|
||||
self.assertIn('table_id', resp)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in New Issue