diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index e6549260d00e7..06261fc5c6415 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -47,8 +47,10 @@ def query(self, query_obj): error_message = None qry = db.session.query(Annotation) qry = qry.filter(Annotation.layer_id == query_obj['filter'][0]['val']) - qry = qry.filter(Annotation.start_dttm >= query_obj['from_dttm']) - qry = qry.filter(Annotation.end_dttm <= query_obj['to_dttm']) + if query_obj['from_dttm']: + qry = qry.filter(Annotation.start_dttm >= query_obj['from_dttm']) + if query_obj['to_dttm']: + qry = qry.filter(Annotation.end_dttm <= query_obj['to_dttm']) status = QueryStatus.SUCCESS try: df = pd.read_sql_query(qry.statement, db.engine) diff --git a/superset/viz.py b/superset/viz.py index 30e8e80da1cda..59dd70b179bd0 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -382,7 +382,8 @@ def get_df_payload(self, query_obj=None): if query_obj and not is_loaded: try: df = self.get_df(query_obj) - if hasattr(self.datasource.database, 'db_engine_spec'): + if hasattr(self.datasource, 'database') and \ + hasattr(self.datasource.database, 'db_engine_spec'): db_engine_spec = self.datasource.database.db_engine_spec df = db_engine_spec.adjust_df_column_names(df, self.form_data) if self.status != utils.QueryStatus.FAILED: