From 9bc49cce6de8938641a8683ce9b9fa3dd2136b08 Mon Sep 17 00:00:00 2001 From: Nishant Date: Thu, 4 May 2017 00:41:44 +0530 Subject: [PATCH] [HIVE-16576] properly encode intervals in URL for fetching candidates for select query --- .../org/apache/hadoop/hive/druid/io/DruidQueryBasedInputFormat.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/druid-handler/src/java/org/apache/hadoop/hive/druid/io/DruidQueryBasedInputFormat.java b/druid-handler/src/java/org/apache/hadoop/hive/druid/io/DruidQueryBasedInputFormat.java index fe6c901..53624e1 100644 --- a/druid-handler/src/java/org/apache/hadoop/hive/druid/io/DruidQueryBasedInputFormat.java +++ b/druid-handler/src/java/org/apache/hadoop/hive/druid/io/DruidQueryBasedInputFormat.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -213,7 +214,7 @@ private static String createSelectStarQuery(String dataSource) throws IOExceptio StringUtils.join(query.getIntervals(), ","); // Comma-separated intervals without brackets final String request = String.format( "http://%s/druid/v2/datasources/%s/candidates?intervals=%s", - address, query.getDataSource().getNames().get(0), intervals); + address, query.getDataSource().getNames().get(0), URLEncoder.encode(intervals, "UTF-8")); final InputStream response; try { response = DruidStorageHandlerUtils.submitRequest(client, new Request(HttpMethod.GET, new URL(request))); -- 2.8.4 (Apple Git-73)