Uploaded image for project: 'MariaDB Connector/ODBC'
  1. MariaDB Connector/ODBC
  2. ODBC-196

Optimize ODBC-120 issue for the case of array fetch

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • None
    • 3.1.5
    • General
    • None

    Attachments

      Activity

        Lawrin Lawrin Novitsky created issue -
        dcory Dan Cory added a comment -

        Tableau uses array fetch of a forward only cursor, to read the data as quickly as possible.

        Unfortunately the driver's implementation of array fetch causes the MySQL library to traverse its list of rows from the beginning, every time a new block is fetched. This becomes O(n^2) in the number of rows.

        Since a user of a forward only cursor is always going to read the next block, the driver should be able to cache the cursor for the last row in the block and then move onto the next without starting again at the beginning.

        Turning off Tableau's use of array fetch avoids this problem, but means more driver overhead since SQLFetch now must be called for every row.

        dcory Dan Cory added a comment - Tableau uses array fetch of a forward only cursor, to read the data as quickly as possible. Unfortunately the driver's implementation of array fetch causes the MySQL library to traverse its list of rows from the beginning, every time a new block is fetched. This becomes O(n^2) in the number of rows. Since a user of a forward only cursor is always going to read the next block, the driver should be able to cache the cursor for the last row in the block and then move onto the next without starting again at the beginning. Turning off Tableau's use of array fetch avoids this problem, but means more driver overhead since SQLFetch now must be called for every row.
        Lawrin Lawrin Novitsky made changes -
        Field Original Value New Value
        Fix Version/s 3.1.5 [ 23920 ]

        Connector does not do redundant data seeks in case of FORWARD_ONLY cursor. Also optimized other cursor types in case of array fetch, where it was possible.

        Lawrin Lawrin Novitsky added a comment - Connector does not do redundant data seeks in case of FORWARD_ONLY cursor. Also optimized other cursor types in case of array fetch, where it was possible.
        Lawrin Lawrin Novitsky made changes -
        issue.field.resolutiondate 2019-09-24 15:24:59.0 2019-09-24 15:24:59.417
        Lawrin Lawrin Novitsky made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Closed [ 6 ]
        serg Sergei Golubchik made changes -
        Workflow MariaDB v3 [ 90417 ] MariaDB v4 [ 135492 ]

        People

          Lawrin Lawrin Novitsky
          Lawrin Lawrin Novitsky
          Votes:
          1 Vote for this issue
          Watchers:
          2 Start watching this issue

          Dates

            Created:
            Updated:
            Resolved:

            Git Integration

              Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.