Bug #27798 bookmarks changes are not savedwhen multiple query browser instances are present
Submitted: 13 Apr 2007 2:04 Modified: 27 Apr 2007 14:10
Reporter: avi weiss Email Updates:
Status: Won't fix Impact on me:
Category:MySQL Query Browser Severity:S3 (Non-critical)
Version:1.2.11 OS:Windows (windows XP)
Assigned to: CPU Architecture:Any

[13 Apr 2007 2:04] avi weiss
when 2 or more instances of QB are running, any changes (add/delete) made to bookmarks in one instance are effective only in that QB instance, they do not appear in any other instances, and most important, the changes are not saved after exiting the QB.

How to repeat:
start QB. create new instance connection. make bookmark changes in a instance. quit instances. restart QB. last changes made will not be visible

Suggested fix:
make sure that bookmark changes are visible in all instances, and are saved immediately.
[13 Apr 2007 6:19] Valeriy Kravchuk
Thank you for a bug report. Verified just as described.
[27 Apr 2007 13:55] Michael G. Zinner
QB will store it's Bookmarks on exit. So the last QB closed will overwrite the changes written by the other ones.

I have now added Popup Menu items to the Bookmark tree to Save / Load the bookmarks during runtime.

Please use these as a workaround when you have created bookmarks in another instance of QB.
[27 Apr 2007 14:10] avi weiss
I dont think that is the best fix. the workaround assumes the user is aware of the issue to use the controls.

A better fix would be to have a "global" changlist for bookmark items, which is "shared" by all QB instances, rather than the current way of having each QB manage its own bookmark changes. Then, on exit, the single "global" list of bookmark changes are written out. I realize this may require a bit of extra coding, but it completely solves the problem, and does not requires users to proactively work around an issue they may not know (or remember) exists.
[27 Apr 2007 14:16] Michael G. Zinner
I understand that the solution you propose would be the best but it is not possible by design. The QB instances do not know of each other so major re-coding would be required to introduce this functionality. While it would be useful, I see the coding time better spent on crashing bugs (P1) and serious bugs (P2) especially if there is no workaround. I hope you can follow my logic. Of course, we are happily accepting patches if you would find time to send one in :)
[3 Oct 2008 20:15] Stefan Zielinski
I recently downloaded and installed the mysql-gui-tools5.0-r12-win32.msi installer (although when I actually run QB, it shows me "version 1.2.12" on the Help => About screen), and I am still seeing this behavior -- having the save/load menu option (which wasn't available in 1.2.9) does help some for bookmarks.

One suggestion that I did not see in the comments is this:

The primary reason that I run multiple copies of QB at the same time is that I need to be connected to different database servers at the same time - the only way to do this is to have one QB session per connection (with multiple query tabs per connection as needed).

So, it seems to me that one solution that would reduce the problem would be to store history and bookmarks on a per-connection basis, rather than a single global list - i.e., mysqlqb_conn1_bookmarks.xml and mysqlqb_conn2_bookmarks.xml - which seems like it would be relatively easy to implement.

This would also be applicable to query history as well (e.g., mysqlqb_conn_id_history.xml)