JuliaDatabases / JDBC.jl

Julia interface to Java database drivers
Other
38 stars 19 forks source link

upcoming deprecation of `Nullable` #33

Closed ExpandingMan closed 6 years ago

ExpandingMan commented 6 years ago

Instances of Nullable{T} should be replaced with Union{T, Void} as Nullable will become deprecated in 0.7.

I'll make a PR for this at some point but let's get #32 squared away first.

aviks commented 6 years ago

As far as I know, Union{T, Void} will be slow in 0.6, so this might need to be version bound to 0.7? Although, having said that, JDBC is not the fastest it could be right now in any case.

ExpandingMan commented 6 years ago

As far as I can tell, Nullable is only used to describe the presence of fields in data structures and these only need to be checked as part of initializations and never in loops for pulling data. Any degradation in performance resulting from a switch to Union{T, Void} should therefore be trivial. (In fact, since the underlying objects are non bits types and they are never used in arrays there may be no performance impact at all.)

The single biggest performance issue in JDBC.jl seems to be the unboxing of functions that are looked up in a Dict, but because of the way that JDBC pulls data (i.e. getFloat, getString etc) this may not really be fixable. I don't think there's anything else that should be slow (though I'm pretty ignorant about how JavaCall works).

ExpandingMan commented 6 years ago

This has been done.