mariuz / flamerobin

FlameRobin is a database administration tool for Firebird RDBMS. Our goal is to build a tool that is: lightweight (small footprint, fast execution) cross-platform (Linux, Windows, Mac OS X, FreeBSD) dependent only on other Open Source software
http://flamerobin.org
MIT License
214 stars 66 forks source link

Add some multi-threading? #125

Open vpArth opened 4 years ago

vpArth commented 4 years ago

Can you consider to add some multithreading into app? Thread per SQL Editor would be great, but if it's too complex, at least thread per database/connection?

It's bad when one sql query in one window makes all other app windows unresponsible.

arvanus commented 3 years ago

It would be awesome to add multi-threading, but it'd need some efforts and probably a lot of bug-hunting after this change 🔮 I'd add a "help wanted" to this, because right now, I think that the priority would be to fix bugs, update FR to Fb3 and Fb4... , do some minor improvements and then take a look at other new features. But anyway thanks for the suggestion, and if you know C++ (or want to learn) consider this an excellent opportunity to help the community!

Thanks!

arvanus commented 3 years ago

How would this work? If I'm not mistaken, we'll need to run the SQL in another DB connection... So, every DDL would run out-scope of the current connection, this would result in an unesppected behavior to the user related to triggers, SPs...

Else, what would occur if there is an active transaction in that specific window? Should we disable this background run button? When commit/rollback enable the BG button?

Any suggestions? Thanks