mloyanich commented on issue #17072:
URL: https://github.com/apache/superset/issues/17072#issuecomment-986282140


   I have the same issue. It will also fail if you have different databases 
with the same table name, no matter what's the schema
   
   attaching Superset log:
   ```
   2021-12-05 
10:36:47,253:DEBUG:superset.models.core:Database.get_sqla_engine(). Masked URL: 
postgresql+psycopg2://postgres:XXXXXXXXXX@database-connection-details:5432/postgres
   2021-12-05 10:36:53,947:WARNING:superset.datasets.commands.create:(raised as 
a result of Query-invoked autoflush; consider using a session.no_autoflush 
block if this flush is occurring prematurely)
   (sqlite3.IntegrityError) UNIQUE constraint failed: tables.table_name
   [SQL: INSERT INTO tables (uuid, created_on, changed_on, description, 
default_endpoint, is_featured, filter_select_enabled, "offset", cache_timeout, 
params, perm, schema_perm, table_name, main_dttm_col, database_id, 
fetch_values_predicate, schema, sql, is_sqllab_view, template_params, extra, 
created_by_fk, changed_by_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?, ?, ?, ?, ?, ?, ?, ?, ?)]
   [parameters: (<memory at 0x121789880>, '2021-12-05 10:36:53.947410', 
'2021-12-05 10:36:53.947417', None, None, 0, 0, 0, None, None, None, None, 
'new_table', None, 3, None, 'public', None, 0, None, None, 1, 1)]
   (Background on this error at: http://sqlalche.me/e/13/gkpj)
   Traceback (most recent call last):
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1276, in _execute_context
       self.dialect.do_execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 608, in do_execute
       cursor.execute(statement, parameters)
   sqlite3.IntegrityError: UNIQUE constraint failed: tables.table_name
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "SUPERSET_LOCATION/superset/superset/datasets/commands/create.py", 
line 51, in run
       dataset.fetch_metadata(commit=False)
     File "SUPERSET_LOCATION/superset/superset/connectors/sqla/models.py", line 
1527, in fetch_metadata
       old_columns_by_name: Dict[str, TableColumn] = {
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", 
line 3534, in __iter__
       self.session._autoflush()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 1633, in _autoflush
       util.raise_(e, with_traceback=sys.exc_info()[2])
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 1622, in _autoflush
       self.flush()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2540, in flush
       self._flush(objects)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2682, in _flush
       transaction.rollback(_capture_exception=True)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py",
 line 68, in __exit__
       compat.raise_(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2642, in _flush
       flush_context.execute()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py",
 line 422, in execute
       rec.execute(self)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py",
 line 586, in execute
       persistence.save_obj(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py",
 line 239, in save_obj
       _emit_insert_statements(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py",
 line 1135, in _emit_insert_statements
       result = cached_connections[connection].execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1011, in execute
       return meth(self, multiparams, params)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py",
 line 298, in _execute_on_connection
       return connection._execute_clauseelement(self, multiparams, params)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1124, in _execute_clauseelement
       ret = self._execute_context(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1316, in _execute_context
       self._handle_dbapi_exception(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1510, in _handle_dbapi_exception
       util.raise_(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1276, in _execute_context
       self.dialect.do_execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 608, in do_execute
       cursor.execute(statement, parameters)
   sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked 
autoflush; consider using a session.no_autoflush block if this flush is 
occurring prematurely)
   (sqlite3.IntegrityError) UNIQUE constraint failed: tables.table_name
   [SQL: INSERT INTO tables (uuid, created_on, changed_on, description, 
default_endpoint, is_featured, filter_select_enabled, "offset", cache_timeout, 
params, perm, schema_perm, table_name, main_dttm_col, database_id, 
fetch_values_predicate, schema, sql, is_sqllab_view, template_params, extra, 
created_by_fk, changed_by_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?, ?, ?, ?, ?, ?, ?, ?, ?)]
   [parameters: (<memory at 0x121789880>, '2021-12-05 10:36:53.947410', 
'2021-12-05 10:36:53.947417', None, None, 0, 0, 0, None, None, None, None, 
'new_table', None, 3, None, 'public', None, 0, None, None, 1, 1)]
   (Background on this error at: http://sqlalche.me/e/13/gkpj)
   2021-12-05 10:36:53,965:ERROR:superset.datasets.api:Error creating model 
DatasetRestApi: Dataset could not be created.
   Traceback (most recent call last):
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1276, in _execute_context
       self.dialect.do_execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 608, in do_execute
       cursor.execute(statement, parameters)
   sqlite3.IntegrityError: UNIQUE constraint failed: tables.table_name
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "SUPERSET_LOCATION/superset/superset/datasets/commands/create.py", 
line 51, in run
       dataset.fetch_metadata(commit=False)
     File "SUPERSET_LOCATION/superset/superset/connectors/sqla/models.py", line 
1527, in fetch_metadata
       old_columns_by_name: Dict[str, TableColumn] = {
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/query.py", 
line 3534, in __iter__
       self.session._autoflush()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 1633, in _autoflush
       util.raise_(e, with_traceback=sys.exc_info()[2])
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 1622, in _autoflush
       self.flush()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2540, in flush
       self._flush(objects)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2682, in _flush
       transaction.rollback(_capture_exception=True)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py",
 line 68, in __exit__
       compat.raise_(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", 
line 2642, in _flush
       flush_context.execute()
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py",
 line 422, in execute
       rec.execute(self)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py",
 line 586, in execute
       persistence.save_obj(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py",
 line 239, in save_obj
       _emit_insert_statements(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py",
 line 1135, in _emit_insert_statements
       result = cached_connections[connection].execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1011, in execute
       return meth(self, multiparams, params)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py",
 line 298, in _execute_on_connection
       return connection._execute_clauseelement(self, multiparams, params)
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1124, in _execute_clauseelement
       ret = self._execute_context(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1316, in _execute_context
       self._handle_dbapi_exception(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1510, in _handle_dbapi_exception
       util.raise_(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", 
line 182, in raise_
       raise exception
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", 
line 1276, in _execute_context
       self.dialect.do_execute(
     File 
"SUPERSET_LOCATION/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py",
 line 608, in do_execute
       cursor.execute(statement, parameters)
   sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked 
autoflush; consider using a session.no_autoflush block if this flush is 
occurring prematurely)
   (sqlite3.IntegrityError) UNIQUE constraint failed: tables.table_name
   [SQL: INSERT INTO tables (uuid, created_on, changed_on, description, 
default_endpoint, is_featured, filter_select_enabled, "offset", cache_timeout, 
params, perm, schema_perm, table_name, main_dttm_col, database_id, 
fetch_values_predicate, schema, sql, is_sqllab_view, template_params, extra, 
created_by_fk, changed_by_fk) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?, ?, ?, ?, ?, ?, ?, ?, ?)]
   [parameters: (<memory at 0x121789880>, '2021-12-05 10:36:53.947410', 
'2021-12-05 10:36:53.947417', None, None, 0, 0, 0, None, None, None, None, 
'new_table', None, 3, None, 'public', None, 0, None, None, 1, 1)]
   (Background on this error at: http://sqlalche.me/e/13/gkpj)
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "SUPERSET_LOCATION/superset/superset/datasets/api.py", line 252, in 
post
       new_model = CreateDatasetCommand(g.user, item).run()
     File "SUPERSET_LOCATION/superset/superset/datasets/commands/create.py", 
line 65, in run
       raise DatasetCreateFailedError() from ex
   superset.datasets.commands.exceptions.DatasetCreateFailedError: Dataset 
could not be created.
   2021-12-05 10:36:53,981:DEBUG:superset.stats_logger:[stats_logger] (incr) 
DatasetRestApi.post.error
   2021-12-05 10:36:53,982:DEBUG:superset.stats_logger:[stats_logger] (timing) 
DatasetRestApi.post.time | 6880.805107
   2021-12-05 10:36:53,982:INFO:werkzeug:127.0.0.1 - - [05/Dec/2021 10:36:53] 
"POST /api/v1/dataset/ HTTP/1.1" 422 -
   ```
   
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to