This is an automated email from the ASF dual-hosted git repository. dzamo pushed a commit to branch 1.20 in repository https://gitbox.apache.org/repos/asf/drill.git
commit 65ca8ff649a730ae7a3f504e7024d6526ece209b Author: Volodymyr Vysotskyi <[email protected]> AuthorDate: Tue Jul 12 07:23:43 2022 +0300 DRILL-8255: Update Drill-Calcite version to include fix for CALCITE-4992 (#2591) --- .../elasticsearch/ElasticsearchStorageConfig.java | 38 ++++++++++++++++++---- .../elasticsearch/ElasticComplexTypesTest.java | 3 +- .../store/elasticsearch/ElasticInfoSchemaTest.java | 3 +- .../store/elasticsearch/ElasticSearchPlanTest.java | 3 +- .../elasticsearch/ElasticSearchQueryTest.java | 3 +- pom.xml | 2 +- 6 files changed, 41 insertions(+), 11 deletions(-) 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 9e84635076..8d1f50da17 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.common.logical.security.CredentialsProvider; 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; @@ -40,22 +41,41 @@ public class ElasticsearchStorageConfig extends AbstractSecuredStoragePluginConf 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 getUsernamePasswordCredentials().getUsername(); @@ -78,10 +98,16 @@ public class ElasticsearchStorageConfig extends AbstractSecuredStoragePluginConf @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 9f4f52dafa..f777d38481 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 @@ public class ElasticComplexTypesTest extends ClusterTest { 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 aa4dae47b9..4edd3ed77a 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 @@ public class ElasticInfoSchemaTest extends ClusterTest { 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 db81edf592..c654d3fa1a 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 @@ public class ElasticSearchPlanTest extends ClusterTest { 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 374c449107..727e8314dc 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 @@ public class ElasticSearchQueryTest extends ClusterTest { 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 bc845a5ab5..fc4a343c91 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,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.0.11</janino.version> <sqlline.version>1.12.0</sqlline.version>
