fix(sqllab): Inefficient SqlaTable query (#24343) (#24344)

This commit is contained in:
Rob Moore
2023-06-12 10:14:07 +01:00
committed by GitHub
parent 0e3f1f638c
commit 6d9df432c1
2 changed files with 19 additions and 2 deletions

View File

@@ -17,6 +17,8 @@
import logging
from typing import Any, cast
from sqlalchemy.orm import lazyload, load_only
from superset.commands.base import BaseCommand
from superset.connectors.sqla.models import SqlaTable
from superset.databases.commands.exceptions import (
@@ -74,10 +76,18 @@ class TablesDatabaseCommand(BaseCommand):
extra_dict_by_name = {
table.name: table.extra_dict
for table in (
db.session.query(SqlaTable).filter(
db.session.query(SqlaTable)
.filter(
SqlaTable.database_id == self._model.id,
SqlaTable.schema == self._schema_name,
)
.options(
load_only(
SqlaTable.schema, SqlaTable.table_name, SqlaTable.extra
),
lazyload(SqlaTable.columns),
lazyload(SqlaTable.metrics),
)
).all()
}