Skip to content

ruby: don't use adbc-arrow-glib #3178

@kou

Description

@kou

What feature or improvement would you like to see?

red-adbc depends on red-arrow and adbc-arrow-glib.

red-arrow depends on libarrow-glib.so.XXXX/libarrow.so.XXXX.

adbc-arrow-glib also depends on libarrow-glib.so.XXXX/libarrow.so.XXXX.

red-adbc uses the latest red-arrow by default. But pre-compiled adbc-arrow-glib (deb/rpm) may not use the latest libarrow-glib.so.XXXX/libarrow.so.XXXX.

For example, red-arrow uses libarrow-glib.so.2100/libarrow.so.2100 and pre-compiled adbc-arrow-glib uses libarrow-glib.so.2000/libarrow.so.2000 (Because Apache Arrow C++/GLib 20.0.0 was the latest release when adbc-arrow-glib 19 was compiled.)

If we install red-adbc, we mixes libarrow.so.2000 and libarrow.so.2100. It causes some problems such as:

https://github.com/red-data-tools/activerecord-adbc-adapter/actions/runs/16369975125/job/46255794753#step:6:7

[libprotobuf ERROR google/protobuf/descriptor_database.cc:642] File already exists in database: orc_proto.proto
[libprotobuf FATAL google/protobuf/descriptor.cc:1988] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size): 
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size): 

If we use adbc-glib+C Data interface not adbc-arrow-glib, we can avoid the situation. Because adbc-glib doesn't depend on libarrow-glib.so/libarrow.so.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions