JuliaData / JuliaDB.jl

Parallel analytical database in pure Julia
http://juliadb.org/
Other
766 stars 61 forks source link

Interval indexing on Distributed NDSparse doesn't work #192

Open simonbyrne opened 6 years ago

simonbyrne commented 6 years ago

I can't get interval indexing to work on the TrueFX demo. I can't quite figure out the issue, but here's the stacktrace:

MethodError: no method matching isless(::IntervalSets.ClosedInterval{DateTime}, ::DateTime)
Closest candidates are:
  isless(::Missings.Missing, ::Any) at /home/simonbyrne/.julia/v0.6/Missings/src/Missings.jl:74
  isless(::DataValues.DataValue{Union{}}, ::Any) at /home/simonbyrne/.julia/v0.6/DataValues/src/scalar/core.jl:257
  isless(::T<:Base.Dates.TimeType, ::T<:Base.Dates.TimeType) where T<:Base.Dates.TimeType at dates/types.jl:342
  ...

Stacktrace:
 [1] in at /home/simonbyrne/.julia/v0.6/JuliaDB/src/interval.jl:19 [inlined]
 [2] (::Base.##3#4{Base.#in})(::Tuple{IntervalSets.ClosedInterval{DateTime},JuliaDB.Interval{DateTime}}) at ./generator.jl:36
 [3] collect_to!(::Array{Bool,1}, ::Base.Generator{Base.Iterators.Zip2{Tuple{Array{String,1},IntervalSets.ClosedInterval{DateTime}},NamedTuples._NT_pair_timestamp{JuliaDB.Interval{String},JuliaDB.Interval{DateTime}}},Base.##3#4{Base.#in}}, ::Int64, ::Tuple{Int64,Int64}) at ./array.jl:508
 [4] collect(::Base.Generator{Base.Iterators.Zip2{Tuple{Array{String,1},IntervalSets.ClosedInterval{DateTime}},NamedTuples._NT_pair_timestamp{JuliaDB.Interval{String},JuliaDB.Interval{DateTime}}},Base.##3#4{Base.#in}}) at ./array.jl:476
 [5] (::JuliaDB.##243#245{Tuple{Array{String,1},IntervalSets.ClosedInterval{DateTime}}})(::JuliaDB.Interval{NamedTuples._NT_pair_timestamp{String,DateTime}}) at /home/simonbyrne/.julia/v0.6/JuliaDB/src/indexing.jl:49
 [6] find(::JuliaDB.##243#245{Tuple{Array{String,1},IntervalSets.ClosedInterval{DateTime}}}, ::Array{JuliaDB.Interval{NamedTuples._NT_pair_timestamp{String,DateTime}},1}) at ./array.jl:1521
 [7] _getindex(::JuliaDB.DNDSparse{NamedTuples._NT_pair_timestamp{String,DateTime},NamedTuples._NT_bid_ask{Float32,Float32}}, ::Tuple{Array{String,1},IntervalSets.ClosedInterval{DateTime}}) at /home/simonbyrne/.julia/v0.6/JuliaDB/src/indexing.jl:49
 [8] getindex(::JuliaDB.DNDSparse{NamedTuples._NT_pair_timestamp{String,DateTime},NamedTuples._NT_bid_ask{Float32,Float32}}, ::Array{String,1}, ::IntervalSets.ClosedInterval{DateTime}) at /home/simonbyrne/.julia/v0.6/JuliaDB/src/indexing.jl:17
simonbyrne commented 6 years ago

Notebook now available here: https://github.com/JuliaComputing/TrueFX

amanica commented 6 years ago

When I ran into this, I was able to use a filter as a workaround..

(I know it is a bit late but maybe it is useful to somebody)