You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by Ying Zhou <yz...@gmail.com> on 2020/12/18 13:39:37 UTC

[C++] Includes and failing checks in Python and C Glib & Ruby

Hi,

As I try to finalize this pull request (https://github.com/apache/arrow/pull/8648 <https://github.com/apache/arrow/pull/8648>) I found that a single necessary ORC include (liborc::WriterOptions) in arrow/adapters/orc/adapter.h broke one Python check and two C Glib & Ruby checks. Since there is nothing wrong with including liborc::WriterOptions into arrow/adapters/orc/adapter.h so that users who write Arrow Tables into ORC files can specify ORC writer options there seem to be three paths forward:

1. Include “orc/OrcFile.hh” in a way that does not offend the three checks.
2. Make changes to Arrow C Glib & Python so that the checks recognize the inclusion.
3. A combination of 1 and 2.

What’s the best approach here?

Thanks,
Ying

Re: [C++] Includes and failing checks in Python and C Glib & Ruby

Posted by Sutou Kouhei <ko...@clear-code.com>.
Hi,

arrow::fs::S3Options may help you:
  https://github.com/apache/arrow/blob/master/cpp/src/arrow/filesystem/s3fs.h#L44

It hides aws-sdk-cpp details.


Thanks,
--
kou

In <CA...@mail.gmail.com>
  "Re: [C++] Includes and failing checks in Python and C Glib & Ruby" on Fri, 18 Dec 2020 12:45:03 -0600,
  Wes McKinney <we...@gmail.com> wrote:

> As a matter of development policy, we do not permit Arrow's public /
> non-internal headers to transitively include the header files of any
> build or runtime dependencies. So I would suggest creating a
> self-contained way to specify the ORC write options when using from
> Arrow-land.
> 
> On Fri, Dec 18, 2020 at 7:40 AM Ying Zhou <yz...@gmail.com> wrote:
>>
>> Hi,
>>
>> As I try to finalize this pull request (https://github.com/apache/arrow/pull/8648 <https://github.com/apache/arrow/pull/8648>) I found that a single necessary ORC include (liborc::WriterOptions) in arrow/adapters/orc/adapter.h broke one Python check and two C Glib & Ruby checks. Since there is nothing wrong with including liborc::WriterOptions into arrow/adapters/orc/adapter.h so that users who write Arrow Tables into ORC files can specify ORC writer options there seem to be three paths forward:
>>
>> 1. Include “orc/OrcFile.hh” in a way that does not offend the three checks.
>> 2. Make changes to Arrow C Glib & Python so that the checks recognize the inclusion.
>> 3. A combination of 1 and 2.
>>
>> What’s the best approach here?
>>
>> Thanks,
>> Ying

Re: [C++] Includes and failing checks in Python and C Glib & Ruby

Posted by Wes McKinney <we...@gmail.com>.
As a matter of development policy, we do not permit Arrow's public /
non-internal headers to transitively include the header files of any
build or runtime dependencies. So I would suggest creating a
self-contained way to specify the ORC write options when using from
Arrow-land.

On Fri, Dec 18, 2020 at 7:40 AM Ying Zhou <yz...@gmail.com> wrote:
>
> Hi,
>
> As I try to finalize this pull request (https://github.com/apache/arrow/pull/8648 <https://github.com/apache/arrow/pull/8648>) I found that a single necessary ORC include (liborc::WriterOptions) in arrow/adapters/orc/adapter.h broke one Python check and two C Glib & Ruby checks. Since there is nothing wrong with including liborc::WriterOptions into arrow/adapters/orc/adapter.h so that users who write Arrow Tables into ORC files can specify ORC writer options there seem to be three paths forward:
>
> 1. Include “orc/OrcFile.hh” in a way that does not offend the three checks.
> 2. Make changes to Arrow C Glib & Python so that the checks recognize the inclusion.
> 3. A combination of 1 and 2.
>
> What’s the best approach here?
>
> Thanks,
> Ying