THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block |
---|
/** Dynamic parameter provider. */ @PublicEvolving public interface SourceDynamicParameterProvider { /** * Provide dynamic parameters for sources in {@link SourceDynamicParameter}. * * @param context The context for provider. * @return The source dynamic parameters. */ SourceDynamicParameter getDynamicParameter(Context context); /** Context for parameter provider. */ interface ContextSourceContext { /** * Sources for the given job. * * @return Source identifiers. */ Set<ObjectIdentifier> sources(); /** * Catalog options help provider to get dynamic parameters, for example, they have the location where the parameters stored in the catalog. * * @param catalog The name of catalog. * @return The catalog options. */ @Nullable Map<String, String> catalogOptions(String catalog); } } /** Factory to create dynamic parameter provider. */ @PublicEvolving public interface SourceDynamicParameterProviderFactory extends Factory { SourceDynamicParameterProvider createProvider(Context context); /** Context for dynamic parameter provider factory. */ interface Context { Map<String, String> configReadableConfig getConfiguration(); ClassLoader classLoadergetClassLoader(); } } /** Dynamic parameters for sources. */ @PublicEvloving public class SourceDynamicParameter { private final Map<ObjectIdentifier, Map<String, String>> dynamicParameters; private final Map<String, String> commonParameters; /** * Get dynamic parameters for each source, different sources may have different parameters. * * @return dynamic parameters for each source. */ public Map<ObjectIdentifier, Map<String, String>> dynamicParameters(); /** * Get common parameters for all sources. * * @return the common parameters. */ public Map<String, String> commonParameters(); } |
...
Code Block |
---|
table.plan.source-dynamic-parameter-provider-factory: {provider factory class identifier} |
Proposed Changes
We will add the following steps in PlannerBase.translateToExecNodeGraph
to support dynamic parameters for sources
...