| 827 | } |
| 828 | |
| 829 | void SubstraitBoltPlanConverter::constructFunctionMap( |
| 830 | const ::substrait::Plan& substraitPlan) { |
| 831 | // Construct the function map based on the Substrait representation. |
| 832 | for (const auto& sExtension : substraitPlan.extensions()) { |
| 833 | if (!sExtension.has_extension_function()) { |
| 834 | continue; |
| 835 | } |
| 836 | const auto& sFmap = sExtension.extension_function(); |
| 837 | auto id = sFmap.function_anchor(); |
| 838 | auto name = sFmap.name(); |
| 839 | functionMap_[id] = name; |
| 840 | } |
| 841 | } |
| 842 | |
| 843 | bool SubstraitBoltPlanConverter::checkTypeExtension( |
| 844 | const ::substrait::Plan& substraitPlan) { |