Skip to content

Qt5 blocker: DB4S + Qt5 + OSX == not all data shown #750

Closed

Description

@justinclift

Details for the issue

When built with Qt5 on OSX, DB4S isn't showing all of the table data.

The table info shows the correct total number of records, but the scroll bar isn't correctly scrolling to the bottom of them, and the page buttons don't work properly either.

It's a bit hard to describe using just words, so I'll do some screenrecording later today to show the problem in action.

This doesn't happen on Windows, and it also doesn't happen for Qt4 on OSX. So, there's possibly something OSX specific about the problem.

This is a blocker to going Qt5 only. 😦

Useful extra information

I'm opening this issue because:

  • DB4S is crashing
  • DB4S has a bug
  • DB4S needs a feature
  • DB4S has another problem

I'm using DB4S on:

  • Windows
  • Linux: ( distro: ___ )
  • Mac OS
  • Other: ___

Activity

  1. added
    bugConfirmed bugs or reports that are very likely to be bugs.
    on Aug 28, 2016
  2. MarqueIV commented on Aug 30, 2016

    @MarqueIV

    Hi Justin! This was the same issue I described to you earlier. As mentioned, while in QT4 you can see all the data, the paging controls are wonky there too (i.e. I don't know of any version where they work correctly.)

  3. justinclift commented on Aug 31, 2016

    @justinclift
    MemberAuthor

    Yep, this is the one. Figured it best to put in a separate issue, so we can track this one down as it's own thing.

    Which reminds me, this really needs some screenrecording things of the bug in action to properly convey the problem.

    Don't suppose you'd have the time/interest to do some? If not, no worries, I will get around to it. 😄

  4. MarqueIV commented on Aug 31, 2016

    @MarqueIV

    OddPagingInDbBrowser.mov.zip
    Movie attached. You can see that while only eight rows are shown (sizing changes this amount), it's still paging by up to 100 places, meaning if you want to see anything between 9 and 90, you can't use the paging controls. Paging size should match the shown number of rows, always.

  5. justinclift commented on Aug 31, 2016

    @justinclift
    MemberAuthor

    Ahhh. I'm suspecting this is a different issue, though probably related. But, both should be looked into.

  6. MarqueIV commented on Aug 31, 2016

    @MarqueIV

    Yes, different than the QT5 issue of not seeing all the rows, which I did see as well. This issue exists in both QT4 and QT5 versions.

  7. MKleusberg commented on Oct 8, 2016

    @MKleusberg
    Member

    @justinclift Did you have a chance to do a screen recording of the scrolling behaviour yet?
    Also, does this happen for each table in every database, or just for some of them? Does it depend on the number of rows in a table or the size of the window (i.e. the number of rows shown on the screen)? Is it sort of random or are always the same rows missing?

    Lots of questions, I know 😉 But I'm trying to narrow this down for easiest debugging since I don't have a OS X system available here.

  8. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    Ahhh yeah, I really need to get around to that.

    It happens for every table in the database, regardless of # of rows, table size, window size, etc.

    My suspicion is it's something to do with the way we're paging things in the backend. But no more idea than that.

    Give me a bit, I'll compile it again and record it now.

  9. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor
  10. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    There is only one table in the database, so I wasn't able to show it with multiple tables, but it should be clear enough to show the problem.

    Can provide the database too if that helps. 😄

  11. MKleusberg commented on Oct 8, 2016

    @MKleusberg
    Member

    Ah interesting 😃 Not entirely sure how to track this down though. Can you do me a favour and tell me the value in Preferences -> Database -> Prefetch block size as well as recording this again with the SQL log opened?

  12. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    Yep, can do. 1 min. 😄

    Prefetch block size is "50000".

    I'll do another recording now with the SQL log open.

  13. 20 remaining items

  14. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    Same problem. Damn. 😦

    And the output from it, just to verify the prefetch is 1/2 mill:

    PRAGMA foreign_keys = "1";
    SELECT type,name,sql,tbl_name FROM sqlite_master UNION SELECT type,name,sql,tbl_name FROM sqlite_temp_master;
    PRAGMA encoding
    SELECT COUNT(*) FROM (SELECT `_rowid_`,* FROM `download_counts` ORDER BY `_rowid_` ASC);
    SELECT `_rowid_`,* FROM `download_counts` ORDER BY `_rowid_` ASC LIMIT 0, 500000;
    ExtendedTableWidget::updateGeometries -> totalRowCount=499723, numVisibleRows=14.
    ExtendedTableWidget::updateGeometries -> totalRowCount=499723, numVisibleRows=14.
    ExtendedTableWidget::updateGeometries -> totalRowCount=499723, numVisibleRows=14.
    ExtendedTableWidget::updateGeometries -> totalRowCount=499723, numVisibleRows=14.
    ExtendedTableWidget::updateGeometries -> totalRowCount=499723, numVisibleRows=14.
    
  15. MKleusberg commented on Oct 8, 2016

    @MKleusberg
    Member

    And there are no more appearances of ExtendedTableWidget::vscrollbarChanged lines in the log I guess? Also I'm now online in Gitter, so we can chat there 😃

  16. MarqueIV commented on Oct 8, 2016

    @MarqueIV

    Just jumping in here with zero experience with this code, but reading the thread so far, could it be an issue of an internal window's frame not being properly constrained by the outer 'viewport' window (and by 'window' I mean control, whatever). I've seen cases where people have tried implementing their own scrolling mechanism and the math has gotten mixed up between what you're seeing, what you're supposed to see, and what was actually going on behind the scenes, but was obscured visually.

    Again, just a complete guess, but based on something similar I'd seen in the past, so again, check the actual bounds of the various windows/frames.

  17. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    @MarqueIV Makes sense to me. 😄

  18. MKleusberg commented on Oct 8, 2016

    @MKleusberg
    Member

    I was thinking about something similar, too. But it looks like we're not really interfering with the scrolling in any way. As long as the window isn't resized and there are no prefetches to be made (we disabled that by setting the block size to 500k), we're not doing anything that would affect scrolling. At least I think so.

  19. vtronko commented on Oct 8, 2016

    @vtronko
    Member

    @MKleusberg ahaha 😄 I was just saying.

  20. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    🎉 Fixed by @revolter in e5bca9d. 🎉 😁

  21. MarqueIV commented on Oct 8, 2016

    @MarqueIV

    So is the fact that the other bug was closed also saying this one is now too? If so, when are the next binaries going to be made available?

  22. justinclift commented on Oct 8, 2016

    @justinclift
    MemberAuthor

    Well, there are the nightly builds.

    Are you waiting on something in particular? 😄

    There is a possibility of us doing a 3.9.2 release in the near future, with stuff like this + memory leaks and some other minor stuff included. But, that's not guaranteed to happen, it's just an idea being considered. 😄

  23. MarqueIV commented on Oct 9, 2016

    @MarqueIV

    No, no rush. Just wondering! :)

    [Sent from my... wait... does anyone really read this part?!?]

    On Oct 8, 2016, at 6:26 PM, Justin Clift notifications@github.com wrote:

    Well, there are the nightly builds.

    Are you waiting on something in particular? 😄

    There is a possibility of us doing a 3.9.2 release in the near future, with stuff like this + memory leaks and some other minor stuff included. But, that's not guaranteed to happen, it's just an idea being considered. 😄

    —
    You are receiving this because you were mentioned.
    Reply to this email directly, view it on GitHub, or mute the thread.

  24. justinclift commented on Oct 9, 2016

    @justinclift
    MemberAuthor

    No worries at all. 😄

    Aside from a potential 3.9.2 release, the next major release will be 3.10.0, and we don't really have a firm timeline for that yet. The main thing's we're wanting to get into 3.10.x are better foreign key/constraint support, and also "reasonably ok" integration with our new DBHub.io project.

    Coding on DBHub.io hasn't even begun, so it's hard to tell. Probably have the very first alpha(s) in a few weeks though (~start of November?), mostly to get people testing DBHub integration + report back bugs / suggestions. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugConfirmed bugs or reports that are very likely to be bugs.osx

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions