@@ -48,6 +48,8 @@ class ParquetColumnAdapter
4848 virtual void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol = {} ) = 0;
4949 // NOTE: This API is only defined for ListType Column Adapters
5050 virtual void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) = 0;
51+ // NOTE: This API is only used to add subscriber for ListType column adapters in cases where there is no ManagedSimInputAdapter
52+ virtual void addSubscriber ( csp::adapters::utils::ValueDispatcher<const DialectGenericType&>::SubscriberType subscriber, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) = 0;
5153
5254 virtual void dispatchValue ( const utils::Symbol *symbol ) = 0;
5355
@@ -124,6 +126,10 @@ class MissingColumnAdapter : public ParquetColumnAdapter
124126
125127 virtual void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol = {} ) override {};
126128 virtual void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override {};
129+ virtual void addSubscriber ( csp::adapters::utils::ValueDispatcher<const DialectGenericType&>::SubscriberType subscriber, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override
130+ {
131+ CSP_THROW (TypeError, " Trying to add DIALECT_GENERIC subscriber on non container type" );
132+ }
127133
128134 virtual void dispatchValue ( const utils::Symbol *symbol ) override {};
129135
@@ -172,6 +178,10 @@ class BaseTypedColumnAdapter : public ParquetColumnAdapter
172178 void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol = {} ) override ;
173179 void addSubscriber ( ManagedSimInputAdapter *inputAdapter,
174180 std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override ;
181+ virtual void addSubscriber ( csp::adapters::utils::ValueDispatcher<const DialectGenericType&>::SubscriberType subscriber, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override
182+ {
183+ CSP_THROW (TypeError, " Trying to add DIALECT_GENERIC subscriber on non container type" );
184+ }
175185 void dispatchValue ( const utils::Symbol *symbol ) override ;
176186
177187 void ensureType ( CspType::Ptr cspType ) override ;
@@ -288,9 +298,11 @@ class BaseListColumnAdapter : public BaseTypedColumnAdapter<DialectGenericType,
288298public:
289299 using BaseTypedColumnAdapter<DialectGenericType, ArrowListArrayType>::BaseTypedColumnAdapter;
290300 using BaseTypedColumnAdapter<DialectGenericType, ArrowListArrayType>::getColumnName;
301+ using BaseTypedColumnAdapter<DialectGenericType, ArrowListArrayType>::m_dispatcher;
291302 void addSubscriber ( ManagedSimInputAdapter *inputAdapter, std::optional<utils::Symbol> symbol = {} ) override ;
292303 void addSubscriber ( ManagedSimInputAdapter *inputAdapter,
293304 std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override ;
305+ void addSubscriber ( csp::adapters::utils::ValueDispatcher<const DialectGenericType&>::SubscriberType subscriber, std::optional<utils::Symbol> symbol, const DialectGenericListReaderInterface::Ptr &listReader ) override ;
294306 CspTypePtr getNativeCspType () const override {return nullptr ;}
295307 bool isListType () const override { return true ; };
296308 CspTypePtr getContainerValueType () const override { return CspType::fromCType<ValueType>::type (); }
0 commit comments