SigmundDali opened a new issue #5836: Confusing interface when both "Allow run 
Sync" and "Allow run Async" checked for datasource
URL: https://github.com/apache/incubator-superset/issues/5836
 
 
   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"
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on 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]

Reply via email to