【发布时间】:2020-04-15 15:39:27
【问题描述】:
对于那些知道 Presto API for plugins 的人的问题。
我实现了 BigQuery 插件。 BigQuery 支持struct 类型,在 Presto 中可以表示为RowType 类。
RowType 在RowType::createBlockBuilder 中创建RowBlockBuilder,它有RowBlockBuilder::appendStructure 方法,需要只接受AbstractSingleRowBlock 类的实例。
这意味着在我实现 Presto 的 RecordCursor BigQueryRecordCursor::getObject 方法时,我必须为类型为 RowType 的字段返回 AbstractSingleRowBlock。
但是AbstractSingleRowBlock 有包私有抽象方法,这阻止了我实现这个类。唯一的孩子SingleRowBlock 有包私有构造函数,没有工厂或构建器可以为我构建实例。
如何在BigQueryRecordCursor::getObject 中实现struct 支持?
(提醒:BigQueryRecordCursor 是RecordCursor 的孩子)。
【问题讨论】: