villebro commented on a change in pull request #9370: Add visualization flow to
the CTA queries
URL:
https://github.com/apache/incubator-superset/pull/9370#discussion_r399209171
##########
File path: superset/views/base.py
##########
@@ -145,6 +156,38 @@ def get_datasource_exist_error_msg(full_name):
return __("Datasource %(name)s already exists", name=full_name)
+def validate_sqlatable(table: models.SqlaTable) -> None:
+ """Checks the table existence in the database."""
+ with db.session.no_autoflush:
+ table_query = db.session.query(models.SqlaTable).filter(
+ models.SqlaTable.table_name == table.table_name,
+ models.SqlaTable.schema == table.schema,
+ models.SqlaTable.database_id == table.database_id,
+ )
+ if db.session.query(table_query.exists()).scalar():
+ raise Exception(get_datasource_exist_error_msg(table.full_name))
+
+ # Fail before adding if the table can't be found
+ try:
+ table.get_sqla_table_object()
+ except Exception as e:
+ logger.exception(f"Got an error in pre_add for {table.name}")
+ raise Exception(
+ _(
+ "Table [{}] could not be found, "
+ "please double check your "
+ "database connection, schema, and "
+ "table name, error: {}"
+ ).format(table.name, str(e))
+ )
Review comment:
This should be `raise Exception(_("Table [%{table}s]..., error: %{error}",
table=table_name, error=str(e))` to not burn in the variables into the i18n
string.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]