Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Logical TypeJavaC++JavaScriptNotes
NullNoNoNo
  • C++ has NullType, NullArray type
BooleanYesYesYes
Signed Integers

Yes

Yes

Yes
  • TODO: Use strings for 64-bit integers
Unsigned IntegersNoYesYes (question)
  • TODO: Use strings for 64-bit integers
  • Unsigned integers are being generated in the integration test suite (code), but Java's interpretation of them may be incorrect
Half Precision FPNoNoNo
  • C++ supports HalfFloat container type / NumPy interop
Single Precision FP

Yes

YesYes
Double Precision FPYesYesYes
Variable BinaryYesYesYes
Variable String (UTF8)YesYesYes
Fixed Size BinaryYesYesYes
Variable ListYesYesYes
Fixed Size ListNoNoNo
  • Java and JS have FSL container type, C++ does not yet
  • Integration tests not being generated yet
Decimal 128-bitYesYesYes (question)
  • Q: What is JavaScript's level of support for this?
TimestampYesYesYes (question)
Date (32/64-bit varieties)YesYesYes (question)
TimeYesYesYes (question)
Interval MONTH_DAYNoYesNoYesNoSee discussion below
Interval DAY_TIME (Timedelta)NoYesNoYesNoSee discussion below
DurationYesYesNo
Dictionary-encoded TypesYesYesYes
StructYesYesYes
Dense UnionNoNoNoSee discussion below
Sparse UnionNoNoNoSee discussion below
MapNoNoNo

...

  • Not implemented in one or more reference implementations
  • Implemented in different ways, or only supporting a subset of the desired specification
  • Not being integration tested; binary compatibility between implementations not being validated

Interval / Timedelta

UPDATE (2019-05-16): This was resolved in ARROW-835 https://github.com/apache/arrow/commit/6f80ea4928f0d26ca175002f2e9f511962c8b012

Presently, the Interval metadata type is as follows:

...