DRILL-8255: Update Drill-Calcite version to include fix for CALCITE-4992 (#2591)
diff --git a/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/ElasticsearchStorageConfig.java b/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/ElasticsearchStorageConfig.java
index d0275ce..cc1c165 100644
--- a/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/ElasticsearchStorageConfig.java
+++ b/contrib/storage-elasticsearch/src/main/java/org/apache/drill/exec/store/elasticsearch/ElasticsearchStorageConfig.java
@@ -30,6 +30,7 @@
import org.apache.drill.exec.store.security.UsernamePasswordCredentials;
import org.apache.drill.shaded.guava.com.google.common.collect.ImmutableMap;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -41,22 +42,41 @@
private static final ObjectWriter OBJECT_WRITER = new ObjectMapper().writerFor(List.class);
+ private static final String HOSTS = "hosts";
+
+ private static final String PATH_PREFIX = "pathPrefix";
+
+ private static final String USERNAME = "username";
+
+ private static final String PASSWORD = "password";
+
+ public static final String CREDENTIALS_PROVIDER = "credentialsProvider";
+
+ private static final String EMPTY_STRING = "";
+
private final List<String> hosts;
+ private final String pathPrefix;
@JsonCreator
public ElasticsearchStorageConfig(
- @JsonProperty("hosts") List<String> hosts,
- @JsonProperty("username") String username,
- @JsonProperty("password") String password,
- @JsonProperty("credentialsProvider") CredentialsProvider credentialsProvider) {
+ @JsonProperty(HOSTS) List<String> hosts,
+ @JsonProperty(USERNAME) String username,
+ @JsonProperty(PASSWORD) String password,
+ @JsonProperty(PATH_PREFIX) String pathPrefix,
+ @JsonProperty(CREDENTIALS_PROVIDER) CredentialsProvider credentialsProvider) {
super(CredentialProviderUtils.getCredentialsProvider(username, password, credentialsProvider), credentialsProvider == null);
this.hosts = hosts;
+ this.pathPrefix = pathPrefix;
}
public List<String> getHosts() {
return hosts;
}
+ public String getPathPrefix() {
+ return pathPrefix;
+ }
+
public String getUsername() {
if (!directCredentials) {
return null;
@@ -85,10 +105,16 @@
@JsonIgnore
public Map<String, Object> toConfigMap()
throws JsonProcessingException {
+ Map<String, String> credentials = new HashMap<>(credentialsProvider.getCredentials());
ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
- builder.put("hosts", OBJECT_WRITER.writeValueAsString(hosts));
+ builder.put(HOSTS, OBJECT_WRITER.writeValueAsString(hosts));
+ builder.put(PATH_PREFIX, pathPrefix != null ? pathPrefix : EMPTY_STRING);
+ builder.put(USERNAME, credentials.getOrDefault(USERNAME, EMPTY_STRING));
+ builder.put(PASSWORD, credentials.getOrDefault(PASSWORD, EMPTY_STRING));
- builder.putAll(credentialsProvider.getCredentials());
+ credentials.remove(USERNAME);
+ credentials.remove(PASSWORD);
+ builder.putAll(credentials);
return builder.build();
}
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticComplexTypesTest.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticComplexTypesTest.java
index 9f4f52d..f777d38 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticComplexTypesTest.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticComplexTypesTest.java
@@ -56,7 +56,8 @@
startCluster(ClusterFixture.builder(dirTestWatcher));
ElasticsearchStorageConfig config = new ElasticsearchStorageConfig(
- Collections.singletonList(TestElasticsearchSuite.getAddress()), null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
+ Collections.singletonList(TestElasticsearchSuite.getAddress()),
+ null, null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
config.setEnabled(true);
cluster.defineStoragePlugin("elastic", config);
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticInfoSchemaTest.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticInfoSchemaTest.java
index aa4dae4..4edd3ed 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticInfoSchemaTest.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticInfoSchemaTest.java
@@ -51,7 +51,8 @@
startCluster(ClusterFixture.builder(dirTestWatcher));
ElasticsearchStorageConfig config = new ElasticsearchStorageConfig(
- Collections.singletonList(TestElasticsearchSuite.getAddress()), null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
+ Collections.singletonList(TestElasticsearchSuite.getAddress()),
+ null, null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
config.setEnabled(true);
cluster.defineStoragePlugin("elastic", config);
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchPlanTest.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchPlanTest.java
index db81edf..c654d3f 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchPlanTest.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchPlanTest.java
@@ -49,7 +49,8 @@
startCluster(ClusterFixture.builder(dirTestWatcher));
ElasticsearchStorageConfig config = new ElasticsearchStorageConfig(
- Collections.singletonList(TestElasticsearchSuite.getAddress()), null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
+ Collections.singletonList(TestElasticsearchSuite.getAddress()),
+ null, null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
config.setEnabled(true);
cluster.defineStoragePlugin("elastic", config);
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
index 374c449..727e831 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
@@ -57,7 +57,8 @@
startCluster(ClusterFixture.builder(dirTestWatcher));
ElasticsearchStorageConfig config = new ElasticsearchStorageConfig(
- Collections.singletonList(TestElasticsearchSuite.getAddress()), null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
+ Collections.singletonList(TestElasticsearchSuite.getAddress()),
+ null, null, null, PlainCredentialsProvider.EMPTY_CREDENTIALS_PROVIDER);
config.setEnabled(true);
cluster.defineStoragePlugin("elastic", config);
diff --git a/pom.xml b/pom.xml
index 5564b36..545e8cf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,7 +61,7 @@
avoid_bad_dependencies plugin found in the file.
-->
<calcite.groupId>com.github.vvysotskyi.drill-calcite</calcite.groupId>
- <calcite.version>1.21.0-drill-r8</calcite.version>
+ <calcite.version>1.21.0-drill-r9</calcite.version>
<avatica.version>1.17.0</avatica.version>
<janino.version>3.1.7</janino.version>
<sqlline.version>1.12.0</sqlline.version>