Skip to content

Incorrect results: Bloom filters on UInt8, Int8, UInt16 and Int16 columns always return false negatives #9779

Open

Description

@progval

Describe the bug

Bloom filters on these columns always filter out every value.

To Reproduce

#9778 demonstrates this, through correct_bloom_filters: false as macro "parameter".

Expected behavior

No response

Additional context

No response

Activity

  1. progval commented on Mar 24, 2024

    @progval
    ContributorAuthor

    I just reproduced the bug in the parquet crate, so this isn't an issue in Datafusion: apache/arrow-rs#5550

  2. changed the title [-]Bloom filters on Int8 and Int16 columns always return false negatives[/-] [+]Bloom filters on `UInt8`, `Int8`, `UInt16` and `Int16` columns always return false negatives[/+] on Apr 1, 2024
  3. alamb commented on Apr 1, 2024

    @alamb
    Contributor

    It turns out that #9770 demonstrates that the unsigned variants are incorrect as well so I updated the title of this ticket

  4. progval commented on Apr 1, 2024

    @progval
    ContributorAuthor

    Not exactly: as long as #9770 is not merged, bloom filters are not used on UInt8 and UInt16.

    Now that I say it, I realize that I should probably amend that PR (and the existing code) to disable bloom filters entirely on these types; so Datafusion is slow instead of incorrect.

  5. changed the title [-]Bloom filters on `UInt8`, `Int8`, `UInt16` and `Int16` columns always return false negatives[/-] [+]Incorrect results: Bloom filters on `UInt8`, `Int8`, `UInt16` and `Int16` columns always return false negatives[/+] on Apr 2, 2024
  6. alamb commented on Apr 2, 2024

    @alamb
    Contributor

    It seems like #9770 was just merged .

    I filed #9914 to fix the problem by disabling this feature

  7. alamb commented on Apr 7, 2024

    @alamb
    Contributor

    @edmondop disabled this code #9969 🙏

  8. alamb commented on Apr 18, 2024

    @alamb
    Contributor

    This issue came up in the context of 37.1.0 release: #9904 and I wanted to cross post here

    Specifically, versions 34.0.0 through 37.0.0 have a bug where int8/int16 bloom filters can incorrectly filter out incorrect answers.

    The int8/int16 bloom filter support was added in #7821 / shipped as part of https://github.com/apache/arrow-datafusion/blob/main/dev/changelog/33.0.0.md

    We have disabled using bloom filters for int8/int16 columns as of datafusion 38.0.0 (until we fix the underlying issue)

  9. alamb commented on Nov 3, 2026

    @alamb
    Contributor
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

    bugSomething isn't workingwaiting-on-upstreamPR is waiting on an upstream dependency to be updated

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions