Make sure these boxes are checked before submitting your issue - thank you!

- [X ] I have checked the superset logs for python stacktraces and included it 
here as text if any
- [X] I have reproduced the issue with at least the latest released version of 
superset
- [X] I have checked the issue tracker for the same issue and I haven't found 
one similar


### Superset version
0.28.0rc5

### Expected results
The button displayed in the SQL Lab view's hover text corresponds with the 
actual type of execution that will happen. SqlEditor.runQuery() passes the 
proper argument into SqlEditor.startQuery()

### Actual results
When you have a database that has both "Allow Run Sync" and "Allow Run Async" 
enabled, src/SqlLab/components/RunQueryActionButton.jsx:L67 will render the 
asyncBtn. The asyncBtn has the onClick action of SqlEditor.runQuery(true). This 
method, if I understand SqlEditor:L136 correctly, doesn't actually accept that 
parameter to do anything. Instead, it calls startQuery(!(this.props.database || 
{}).allow_run_sync). If you have allow_run_sync enabled, it runs 
startQuery(runAsync = false). Meaning that even though you have enabled async 
running on the database configuration, it still runs as sync. Basically, if I'm 
understanding the code correctly, this means that the "Allow Run Async" option 
is essentially useless, as it will always just execute 
!database.allow_run_sync. 

However, if you toggle sync to effect the method of execution, the button 
rendered won't update to the correct version, meaning you can very easily end 
up with situations where the hover on the button says "Run Query 
Asynchronously" and it runs synchronously, or "Run Query Synchronously" and it 
runs async. This is confusing behavior.

I'll caveat all of this with a giant "I'm not great at JS" sticker however, so 
I very well could have misunderstood what's happening, even though I'm 
confident that the behavior is wrong.


### Steps to reproduce
Set up an async backend. Create a datasource. Mark both "async" and "sync" in 
the database config. Run a SQL Lab query. Even though the button's hover text 
says "async", the arg passed in the form in POST for runAsync will be set to 
"false"



[ Full content available at: 
https://github.com/apache/incubator-superset/issues/5836 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to