Skip to content

[EPIC] A collection of items to improve DataFuson stability (reduce effort required to upgrade)聽#13648

Description

@alamb

Is your feature request related to a problem or challenge?

This is broken out from a more general ticket here

馃コ In my opinion DataFusion is now good enough (performance and feature wise) for many people to have buit real systems and products

However, as more people build "real" systems using DataFusion, our historic "move fast and break things and hope you can keep up" mentality likely needs to adjust to a more mature "move as fast as possible, but minimize breakages" type response.

My summary of the discussion on #13525 from @findepi @scsmithr @waynexia @timsaucer @Rachelint @Omega359 @jonmmease @Dandandan and @andygrove was that many existing heavy users of DataFusion spend a lot of time during upgrades from one DataFusion release to another

Specifically, I think the core challenge I heard was NOT the mechnical API changes required, but the effort required to diagnose more suble issues such as:

  • Queries that used to work stopped working

Describe the solution you'd like

I would like to improve the ease of upgrading DataFusion versions

There are many ways to do so and I would like to use this ticket to capture / organize the work in this area

Related Items

Additional testing

More Context:

Activity

  1. jonathanc-n commented on Dec 4, 2024

    @jonathanc-n
    Contributor

    Yes, I think one of the comments in that discussion mentioned that certain changes that would cause breakage should be mentioned in every release. So before release, we should list out the possible changes that would need to be made if a upgrade were to happen during the development process.

  2. alamb commented on Dec 4, 2024

    @alamb
    ContributorAuthor

    So before release, we should list out the possible changes that would need to be made if a upgrade were to happen during the development process.

    I think it is a great idea. The challenge will be identifying such changes I thunk

  3. comphead commented on Dec 4, 2024

    @comphead
    Contributor

    There is an interesting approach at MariaDB, they generate queries with different syntaxes to find regressions.
    Basically we can take their main.sql file which is 7MB of different queries including join queries and adapt it to DF.

    There is no answers check, just smoke test that query can run successfully

    The example can be found https://github.com/mariadb-corporation/mariadb-qa/tree/master/pquery

    @alamb WDYT? it looks like a low hanging fruit, we can take the file and run it in latest datafusion CLI as part of CI or major release verification process

  4. alamb commented on Dec 4, 2024

    @alamb
    ContributorAuthor

    @alamb WDYT? it looks like a low hanging fruit, we can take the file and run it in latest datafusion CLI as part of CI or major release verification process

    I think in general the more testing we have the better. This idea sounds good to me -- I think more fully leveraging @2010YOUY01 's integration into sqlancer is also quite interesting.

    Let's try and write some tickets to capture these ideas too - I can spend some time working on this over the next day or two

  5. Omega359 commented on Dec 4, 2024

    @Omega359
    Contributor

    There is an interesting approach at MariaDB, they generate queries with different syntaxes to find regressions. Basically we can take their main.sql file which is 7MB of different queries including join queries and adapt it to DF.

    There is no answers check, just smoke test that query can run successfully

    The example can be found https://github.com/mariadb-corporation/mariadb-qa/tree/master/pquery

    @alamb WDYT? it looks like a low hanging fruit, we can take the file and run it in latest datafusion CLI as part of CI or major release verification process

    Almost absolutely NOT. https://github.com/mariadb-corporation/mariadb-qa/blob/master/LICENSE.md

    https://www.apache.org/legal/resolved.html#category-x

  6. comphead commented on Dec 4, 2024

    @comphead
    Contributor

    Thats frustrating. Lets see if sqlancer can generate something similar.

  7. crepererum commented on Dec 5, 2024

    @crepererum
    Contributor

    I would like to propose #13665 as well.

  8. comphead commented on Dec 5, 2024

    @comphead
    Contributor

    Here is a cockroachDB article that might be found interesting on fuzz testing the DB with generating random(valid/not valid) statements through SQLSmith

    https://www.cockroachlabs.com/blog/sqlsmith-randomized-sql-testing/
    https://www.cockroachlabs.com/blog/testing-random-valid-sql-in-cockroachdb/

    I understand SQLancer is the way, but we may consider this as an alternative just in case

  9. alamb commented on Dec 20, 2024

    @alamb
    ContributorAuthor

    I found a good previous discussion by @andygrove about potential patch releases:

  10. alamb commented on Jun 30, 2025

    @alamb
    ContributorAuthor
  11. jonmmease commented on Jun 30, 2025

    @jonmmease
    Contributor

    As I've come to use Claude Code more for development, I've found that it's pretty good at performing version updates for Rust crates using Release Note + Compiler Errors + Tests. If each breaking change were required to have migration instructions, with examples, in the release notes (or a separate migration guide), I think the upgrade process could be pretty reliable and automated with LLM assistance. And of course this would be useful for the humans as well.

  12. alamb commented on Jun 30, 2025

    @alamb
    ContributorAuthor

    That is a great idea @jonmmease -- I wonder if you have seen the new upgrade notes for the last few releases

  13. jonmmease commented on Jun 30, 2025

    @jonmmease
    Contributor

    Thanks, no I hadn't come across these, and the look great!. My habit was just to search for the CHANGELOG when upgrading. I'll definitely review these for the next upgrade, and they certainly look like great LLM context as well.

  14. alamb commented on Jun 30, 2025

    @alamb
    ContributorAuthor

    We should probably update the changelog generator script to include a link to the upgrade guide 馃 (filed in #16626)

  15. added
    EPICA larger project, actively underway, with sub tasks
    PROPOSAL EPICA proposal being discussed that is not yet fully underway
    and removed
    EPICA larger project, actively underway, with sub tasks
    on Aug 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    PROPOSAL EPICA proposal being discussed that is not yet fully underwayenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions