[ https://issues.apache.org/jira/browse/DRILL-8328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17613183#comment-17613183 ]
ASF GitHub Bot commented on DRILL-8328: --------------------------------------- cgivre commented on code in PR #2668: URL: https://github.com/apache/drill/pull/2668#discussion_r985723123 ########## contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/util/SimpleHttp.java: ########## @@ -832,8 +835,36 @@ public static List<String> buildParameterList(NullableVarCharHolder[] inputReade return inputArguments; } - public static HttpApiConfig getEndpointConfig(String endpoint, HttpStoragePluginConfig pluginConfig) { - HttpApiConfig endpointConfig = pluginConfig.getConnection(endpoint); + /** + * This function is used to obtain the configuration information for a given API in the HTTP UDF. + * If aliasing is enabled, this function will resolve aliases for connections. + * @param endpoint The name of the endpoint. Should be a {@link String} + * @param context The {@link DrillbitContext} from the current query. + * @param info {@link ContextInformation} from the current query. + * @param pluginConfig The {@link HttpStoragePluginConfig} the configuration from the plugin + * @return The {@link HttpApiConfig} corresponding with the endpoint. + */ + public static HttpApiConfig getEndpointConfig(String endpoint, + DrillbitContext context, + ContextInformation info, + HttpStoragePluginConfig pluginConfig) { + String queryUser = info.getQueryUser(); + AliasRegistryProvider aliasRegistryProvider = context.getAliasRegistryProvider(); Review Comment: > To my knowledge, this is the only UDF that accesses the storage layer. I was thinking the same thing however, but if the user doesn't know that aliasing is being used, they'd get a lot of strange errors and not necessarily know what to do. ########## contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/util/SimpleHttp.java: ########## @@ -832,8 +835,36 @@ public static List<String> buildParameterList(NullableVarCharHolder[] inputReade return inputArguments; } - public static HttpApiConfig getEndpointConfig(String endpoint, HttpStoragePluginConfig pluginConfig) { - HttpApiConfig endpointConfig = pluginConfig.getConnection(endpoint); + /** + * This function is used to obtain the configuration information for a given API in the HTTP UDF. + * If aliasing is enabled, this function will resolve aliases for connections. + * @param endpoint The name of the endpoint. Should be a {@link String} + * @param context The {@link DrillbitContext} from the current query. + * @param info {@link ContextInformation} from the current query. + * @param pluginConfig The {@link HttpStoragePluginConfig} the configuration from the plugin + * @return The {@link HttpApiConfig} corresponding with the endpoint. + */ + public static HttpApiConfig getEndpointConfig(String endpoint, + DrillbitContext context, + ContextInformation info, + HttpStoragePluginConfig pluginConfig) { + String queryUser = info.getQueryUser(); + AliasRegistryProvider aliasRegistryProvider = context.getAliasRegistryProvider(); Review Comment: > Good point regarding splitting the logic. I would propose to move it instead of UDF to another place, before the `http_request` is evaluated, for example to `RexToDrill.getDrillFunctionFromOptiqCall` (or another location), so it could have a consistent behavior for regular aliases and aliases for this function when query plans contain actual storage name instead of the aliases. I like the idea. I was almost thinking of doing it in the `StoragePluginRegistry`. What do you think? Could we make that a separate JIRA as I imagine that is considerably more complex? I should mention that this will still work if there are no aliases. The order is first check to see if there is a user alias, if not, then check to see if there is a public alias, and finally if neither, use the actual text. > HTTP UDF Not Resolving Storage Aliases > -------------------------------------- > > Key: DRILL-8328 > URL: https://issues.apache.org/jira/browse/DRILL-8328 > Project: Apache Drill > Issue Type: Bug > Components: Storage - HTTP > Affects Versions: 1.20.0 > Reporter: Charles Givre > Assignee: Charles Givre > Priority: Blocker > Fix For: 1.20.3 > > > The http_request function currently does not resolve plugin aliases > correctly. This PR fixes that issue. -- This message was sent by Atlassian Jira (v8.20.10#820010)