>
> It would still be desirable to maintain the memory layout of C/C++/NumPy to
> maintain zero-copy.
> FixedList[2] maintains this layout, while a Struct[re, im] does not.


I noted this before but there are some gaps in Parquet support for
FixedSizeList around null handling.  Just something to be aware of if this
is use-case that we think will be encountered.

On Mon, Jun 14, 2021 at 2:02 AM Antoine Pitrou <anto...@python.org> wrote:

>
> 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