diff --git a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx b/superset/assets/javascripts/explorev2/components/ChartContainer.jsx
index 640527427c7..f6ea3469fb0 100644
--- a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx
+++ b/superset/assets/javascripts/explorev2/components/ChartContainer.jsx
@@ -263,8 +263,8 @@ class ChartContainer extends React.PureComponent {
{this.props.chartStatus === 'success' &&
- this.props.queryResponse &&
- this.props.queryResponse.is_cached &&
+ this.props.queryResponse &&
+ this.props.queryResponse.is_cached &&
cached
-
+
}
{
- this.setState({
- language: data.language,
- query: data.query,
- isLoading: false,
- });
- },
- error: data => {
- this.setState({
- error: data.error,
- isLoading: false,
- });
- },
- });
- }
setStateFromQueryResponse() {
const qr = this.props.queryResponse;
this.setState({
@@ -56,6 +36,26 @@ export default class DisplayQueryButton extends React.PureComponent {
isLoading: false,
});
}
+ fetchQuery() {
+ this.setState({ isLoading: true });
+ $.ajax({
+ type: 'GET',
+ url: this.props.queryEndpoint,
+ success: (data) => {
+ this.setState({
+ language: data.language,
+ query: data.query,
+ isLoading: false,
+ });
+ },
+ error: (data) => {
+ this.setState({
+ error: data.error,
+ isLoading: false,
+ });
+ },
+ });
+ }
beforeOpen() {
if (this.props.chartStatus === 'loading' || this.props.chartStatus === null) {
this.fetchQuery();
diff --git a/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx b/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx
index 43268508935..bdff00e777d 100644
--- a/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx
+++ b/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx
@@ -3,7 +3,7 @@ import { expect } from 'chai';
import { describe, it } from 'mocha';
import { mount } from 'enzyme';
import { Modal } from 'react-bootstrap';
-import ModalTrigger from './../../../../javascripts/components/ModalTrigger.jsx';
+import ModalTrigger from './../../../../javascripts/components/ModalTrigger';
import DisplayQueryButton from '../../../../javascripts/explorev2/components/DisplayQueryButton';
diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py
index bb211d92fa9..2d6d28d7e9c 100644
--- a/superset/db_engine_specs.py
+++ b/superset/db_engine_specs.py
@@ -429,18 +429,6 @@ class PrestoEngineSpec(BaseEngineSpec):
row['table_schema'], row['table_name']))
return result_sets
- @classmethod
- def extract_error_message(cls, e):
- """Extract error message for queries"""
- logging.error(e)
- print("-="*100)
- print("-="*100)
- print("-="*100)
- print("-="*100)
- print(type(e))
- print(dir(e))
- return error_msg_from_exception(e)
-
@classmethod
def extra_table_metadata(cls, database, table_name, schema_name):
indexes = database.get_indexes(table_name, schema_name)