diff --git a/app/models.py b/app/models.py index 8ffdca798efde..38da123d5dd3f 100644 --- a/app/models.py +++ b/app/models.py @@ -41,6 +41,8 @@ class Database(Model, AuditMixin): database_name = Column(String(256), unique=True) sqlalchemy_uri = Column(String(1024)) + baselink = "datasourcemodelview" + def __repr__(self): return self.database_name @@ -59,11 +61,16 @@ class Table(Model, Queryable, AuditMixin): __tablename__ = 'tables' id = Column(Integer, primary_key=True) table_name = Column(String(256), unique=True) + main_datetime_column_id = Column(Integer, ForeignKey('table_columns.id')) + main_datetime_column = relationship( + 'TableColumn', foreign_keys=[main_datetime_column_id]) default_endpoint = Column(Text) database_id = Column(Integer, ForeignKey('dbs.id')) database = relationship( 'Database', backref='tables', foreign_keys=[database_id]) + baselink = "tableview" + @property def name(self): return self.table_name @@ -151,7 +158,7 @@ def query( "SELECT\n" " {select_exprs}\n" "FROM {self.table_name}\n" - "{limiting_join}\n" + "{limiting_join}" "WHERE\n" " {where_clause}\n" "GROUP BY\n" @@ -221,6 +228,8 @@ class TableColumn(Model, AuditMixin): filterable = Column(Boolean, default=False) description = Column(Text, default='') + def __repr__(self): + return self.column_name class Cluster(Model, AuditMixin): __tablename__ = 'clusters' @@ -350,6 +359,7 @@ def query( timeseries_limit=15, row_limit=None): qry_start_dttm = datetime.now() + query_str = "" aggregations = { m.metric_name: m.json_obj for m in self.metrics if m.metric_name in metrics @@ -409,6 +419,7 @@ def query( }], } client.groupby(**pre_qry) + query_str += json.dumps(client.query_dict, indent=2) + "\n" df = client.export_pandas() if not df is None and not df.empty: dims = qry['dimensions'] @@ -435,9 +446,12 @@ def query( qry['limit_spec'] = None client.groupby(**qry) + query_str += json.dumps(client.query_dict, indent=2) df = client.export_pandas() return QueryResult( - df=df, query="", duration=datetime.now() - qry_start_dttm) + df=df, + query=query_str, + duration=datetime.now() - qry_start_dttm) #class Metric(Model, AuditMixin): diff --git a/app/templates/panoramix/datasource.html b/app/templates/panoramix/datasource.html index 217c9e7bf82e1..5bed7d9c512df 100644 --- a/app/templates/panoramix/datasource.html +++ b/app/templates/panoramix/datasource.html @@ -20,6 +20,7 @@ max-width: 350px; //width: 350px; } + {% endblock %} {% block content_fluid %} @@ -30,7 +31,7 @@

{% if datasource.description %} {% endif %} - +

@@ -39,11 +40,20 @@


{{ viz.verbose_name }} {{ "{0:0.2f}".format(results.duration.total_seconds()) }} s - query + query


{% block viz %} @@ -98,6 +106,22 @@

Latest Segment Metadata

{% endif %}
+ {% endblock %} {% block tail_js %} diff --git a/app/views.py b/app/views.py index 80ed7289cda15..25b3f51a11a67 100644 --- a/app/views.py +++ b/app/views.py @@ -124,7 +124,7 @@ class TableView(ModelView, DeleteMixin): datamodel = SQLAInterface(models.Table) list_columns = ['table_link', 'database'] add_columns = ['table_name', 'database', 'default_endpoint'] - edit_columns = add_columns + edit_columns = ['table_name', 'database', 'main_datetime_column', 'default_endpoint'] related_views = [TableColumnInlineView, SqlMetricInlineView] def post_insert(self, table):