From 9e5285199a77b4f78178d6932d6bf58e9e3d08b0 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 5 Sep 2023 18:03:59 +0000 Subject: [PATCH 1/4] fix dml --- superset/sql_lab.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/superset/sql_lab.py b/superset/sql_lab.py index cb8da3ef0444c..c0269fab6131a 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -217,6 +217,7 @@ def execute_sql_statement( # pylint: disable=too-many-arguments,too-many-statem ) sql = parsed_query.stripped() + # This is a test to see if the query is being # limited by either the dropdown or the sql. # We are testing to see if more rows exist than the limit. @@ -271,7 +272,7 @@ def execute_sql_statement( # pylint: disable=too-many-arguments,too-many-statem session.commit() with stats_timing("sqllab.query.time_executing_query", stats_logger): logger.debug("Query %d: Running query: %s", query.id, sql) - db_engine_spec.execute(cursor, sql, async_=True) + db_engine_spec.execute(cursor, sql, async_=False) logger.debug("Query %d: Handling cursor", query.id) db_engine_spec.handle_cursor(cursor, query, session) @@ -512,8 +513,16 @@ def execute_sql_statements( ex, query, session, payload, prefix_message ) return payload - # Commit the connection so CTA queries will create the table. - if apply_ctas: + + # Commit the connection so CTA queries will create the table and any DML. + should_commit = ( + any( + not db_engine_spec.is_select_query(statement) + for statement in parsed_query.get_statements() + ) + or apply_ctas + ) + if should_commit: conn.commit() # Success, updating the query entry in database From 2fa2a062cfc96a40b8f891c876d8568beaba702c Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 5 Sep 2023 18:26:39 +0000 Subject: [PATCH 2/4] refactor --- superset/sql_lab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/sql_lab.py b/superset/sql_lab.py index c0269fab6131a..bf0afee2360f9 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -272,7 +272,7 @@ def execute_sql_statement( # pylint: disable=too-many-arguments,too-many-statem session.commit() with stats_timing("sqllab.query.time_executing_query", stats_logger): logger.debug("Query %d: Running query: %s", query.id, sql) - db_engine_spec.execute(cursor, sql, async_=False) + db_engine_spec.execute(cursor, sql) logger.debug("Query %d: Handling cursor", query.id) db_engine_spec.handle_cursor(cursor, query, session) From 3371fa53c1e0a30d4d886988cefad63c406cc7dc Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 5 Sep 2023 20:42:41 +0000 Subject: [PATCH 3/4] reafctor --- superset/sql_lab.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/superset/sql_lab.py b/superset/sql_lab.py index bf0afee2360f9..dcc47c05c5250 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -516,10 +516,7 @@ def execute_sql_statements( # Commit the connection so CTA queries will create the table and any DML. should_commit = ( - any( - not db_engine_spec.is_select_query(statement) - for statement in parsed_query.get_statements() - ) + not db_engine_spec.is_select_query(parsed_query) # check if query is DML or apply_ctas ) if should_commit: From 58749c3ebb6b52ddf40598e0a53ed1d82ef70fd5 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 5 Sep 2023 20:49:54 +0000 Subject: [PATCH 4/4] ok --- superset/sql_lab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/sql_lab.py b/superset/sql_lab.py index dcc47c05c5250..196b48b1d2155 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -272,7 +272,7 @@ def execute_sql_statement( # pylint: disable=too-many-arguments,too-many-statem session.commit() with stats_timing("sqllab.query.time_executing_query", stats_logger): logger.debug("Query %d: Running query: %s", query.id, sql) - db_engine_spec.execute(cursor, sql) + db_engine_spec.execute(cursor, sql, async_=True) logger.debug("Query %d: Handling cursor", query.id) db_engine_spec.handle_cursor(cursor, query, session)