Tests self reference of a data.table
selfref.ok.RdIn rare situations, as presented in examples below, a data.table object may lose its internal attribute that holds a self-reference. This function tests just that.
It is not expected that many end users will have need for this highly technical function about data.table internals.
Examples
d1 = list(V1=1L)
class(d1) = c("data.table", "data.frame")
.selfref.ok(d1)
#> [1] FALSE
setDT(d1)
.selfref.ok(d1)
#> [1] TRUE
saveRDS(d1, f<-tempfile())
d2 = readRDS(f)
.selfref.ok(d2)
#> [1] FALSE
invisible(file.remove(f))
setDT(d2)
.selfref.ok(d2)
#> [1] TRUE
d3 = unserialize(serialize(d2, NULL))
.selfref.ok(d3)
#> [1] FALSE
setDT(d3)
.selfref.ok(d3)
#> [1] TRUE