@@ -744,7 +744,9 @@ def register_view(self, name: str, df: DataFrame) -> None:
744744 view = df .into_view ()
745745 self .ctx .register_table (name , view )
746746
747- def register_table (self , name : str , table : Table | TableProvider ) -> None :
747+ def register_table (
748+ self , name : str , table : Table | TableProvider | TableProviderExportable
749+ ) -> None :
748750 """Register a :py:class:`~datafusion.catalog.Table` or ``TableProvider``.
749751
750752 The registered table can be referenced from SQL statements executed against
@@ -754,10 +756,14 @@ def register_table(self, name: str, table: Table | TableProvider) -> None:
754756 convert them first with :meth:`datafusion.dataframe.DataFrame.into_view` or
755757 :meth:`datafusion.catalog.TableProvider.from_dataframe`.
756758
759+ Objects implementing ``__datafusion_table_provider__`` are also supported
760+ and treated as :class:`~datafusion.catalog.TableProvider` instances.
761+
757762 Args:
758763 name: Name of the resultant table.
759- table: DataFusion :class:`Table` or :class:`TableProvider` to add to the
760- session context.
764+ table: DataFusion :class:`Table`, :class:`TableProvider`, or any object
765+ implementing ``__datafusion_table_provider__`` to add to the session
766+ context.
761767 """
762768 if isinstance (table , Table ):
763769 self .ctx .register_table (name , table .table )
@@ -782,11 +788,14 @@ def register_catalog_provider(
782788 self .ctx .register_catalog_provider (name , provider )
783789
784790 def register_table_provider (
785- self , name : str , provider : TableProviderExportable | TableProvider
791+ self , name : str , provider : Table | TableProvider | TableProviderExportable
786792 ) -> None :
787793 """Register a table provider.
788794
789795 Deprecated: use :meth:`register_table` instead.
796+
797+ Objects implementing ``__datafusion_table_provider__`` are also supported
798+ and treated as :class:`~datafusion.catalog.TableProvider` instances.
790799 """
791800 warnings .warn (
792801 "register_table_provider is deprecated; use register_table" ,
0 commit comments