Skip to content

Extend auto indexing to multiple columns #1453

Closed

Description

@arunsrinivasan

(and eventually to any type of logical operation). This would be very efficient as the number of condition increases (as binary search reduces the search space with every condition).

Activity

  1. added this to the v1.9.8 milestone on Nov 30, 2015
  2. franknarf1 commented on Feb 16, 2016

    @franknarf1
    Contributor

    This came up on SO: http://stackoverflow.com/q/35438190/1191259 Might want to post an answer there when this is implemented.

    Another (though it might get deleted): http://stackoverflow.com/q/43635968/

  3. jangorecki commented on Feb 16, 2016

    @jangorecki
    Member

    without binary search it could be done now, if using under the hood with Reduce over x[i = ..., which = TRUE] many queries with indexes and combined.

  4. modified the milestones: , v1.9.8 on Mar 9, 2016
  5. arunsrinivasan commented on Mar 9, 2016

    @arunsrinivasan
    MemberAuthor

    Moving this to next release (should be straightforward after non-equijoins are done (hopefully)).

  6. MarkusBonsch commented on Nov 22, 2017

    @MarkusBonsch
    Contributor

    My PR #2494 addresses the optimized subsetting on multiple columns with & connection like DT[a==1 & b == 2]. Additionally, support for the %chin% operator was introduced. However, <, <=, >, >= are not yet supported. Neither are queries that are connected by | like DT[a==2 | b==3].

  7. removed this from the milestone on May 10, 2018
  8. jangorecki commented on Apr 3, 2020

    @jangorecki
    Member

    I am not sure if we should keep this issue open. Auto index has been extended to work on multiple columns by @MarkusBonsch PR. The OR operator is not yet there, but as per initial comment

    as binary search reduces the search space with every condition

    It was not really asking for | but for &.

    Unless there is an idea to address other stuff, I would close the issue, it is quite broadly defined and biggest part of it has been already addressed. If we want to keep it open, it is best to list precisely what is to be done, so it will be clear what is left.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions