-
Notifications
You must be signed in to change notification settings - Fork 173
Description
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:
[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.