Skip to content

Non equi joins special rare case bug when used with by=.EACHI #4388

@arunsrinivasan

Description

@arunsrinivasan

I've tested with 1.12.2, but looking at the code, I am quite sure this will break even with the current latest commit. I already fixed it. I'll be pushing the commit(s) directly later today.

The following code will segfault.

require(data.table) # 1.12.2
x <- data.table(
  id = "a", 
  t = as.ITime(c(31140L, 31920L, 31860L, 31680L, 31200L, 31380L, 31020L, 31260L, 31320L, 31560L, 31080L, 31800L, 31500L, 31440L, 31740L, 31620L)), 
  s = c(37.19, 37.10, 37.10, 37.10, 37.1, 24.81, 61.99, 37.1, 37.1, 37.38, 49.56, 73.89, 37.38, 24.81, 37.01, 37.38),
  val = c(40L, 53L, 52L, 49L, 41L, 44L, 38L, 42L, 43L, 47L, 39L, 51L, 46L, 45L, 50L, 48L)
)

y <- data.table(
  id = c("a", "b"),
  t1 = as.ITime(c(31020L, 42240L)),
  t2 = as.ITime(c(31920L, 43140L)), 
  s1 = c(0L, 0L),
  s2 = c(200, 200)
)
x[y, on=.(id, s >= s1, s <= s2, t >= t1, t <= t2), .(val), by=.EACHI, nomatch=0L, allow.cartesian=TRUE]

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions