Le 14/06/2021 à 10:54, Simon Perkins a écrit :
  > The reason why I am being nit-picky here is I think that having a first
class type indicates that it should eventually be supported by all
reference implementations.  An "well known" extension type I think offers
less guarantees which makes it seem more suitable for niche types.

What are the requirements imposed on downstream projects by adding new types
such as Complex Numbers and Intervals? Hypothetically, does a new
first-class
type impose a requirement to provide full support for it downstream?

This is not a requirement for downstream projects (for example a dataframe implementation or a database connector), but for Arrow implementations, that is (mostly) the code that lives in the Apache Arrow repository. There are a number of them:
https://arrow.apache.org/docs/status.html

Or, does adding a type simply involve exposing a new Arrow Type (the
representation)
in the respective language (C++/Java/Rust) that downstream projects may
choose to support or ignore?

Yes.

Java/Rust may not have a native Complex Type for example, but this isn't
Arrow's responsibility -- it simply provides it's own
type that the language/project should interpret.

Having a native complex type isn't a requirement. A complex type is trivially expressed in (almost?) any language as a struct, anyway.

Regards

Antoine.

Reply via email to