This is an automated email from the ASF dual-hosted git repository. himanshug pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push: new 0ef435a add postgresql meta db table schema configuration property (#7137) (#7183) 0ef435a is described below commit 0ef435a16c511181bb97f61b230eeadf50d63535 Author: Jinseon Lee <lovelyjins...@gmail.com> AuthorDate: Thu May 9 04:56:30 2019 +0900 add postgresql meta db table schema configuration property (#7137) (#7183) * add postgresql meta db table schema configuration property (#7137) If the postgresql db schema changes, you must set the configuration values. You do not need to set it if there is no change from the default schema 'public'. druid.metadata.postgres.dbTableSchema=public * create postgresql metadb table schema configuration property (#7137) If the postgresql db schema changes, you must set the configuration values. You do not need to set it if there is no change from the default schema 'public'. druid.metadata.postgres.dbTableSchema=public check PostgreSQLTablesConfig.java * modify postgresql readme file. - metadb table schema (#7137) If the postgresql db schema changes, you must set the configuration values. You do not need to set it if there is no change from the default schema 'public'. druid.metadata.postgres.dbTableSchema=public check PostgreSQLTablesConfig.java --- .../development/extensions-core/postgresql.md | 2 ++ .../storage/postgresql/PostgreSQLConnector.java | 11 ++++-- .../PostgreSQLMetadataStorageModule.java | 1 + .../storage/postgresql/PostgreSQLTablesConfig.java | 41 ++++++++++++++++++++++ .../postgresql/PostgreSQLConnectorTest.java | 3 +- 5 files changed, 54 insertions(+), 4 deletions(-) diff --git a/docs/content/development/extensions-core/postgresql.md b/docs/content/development/extensions-core/postgresql.md index 07a2a78..26f77fc 100644 --- a/docs/content/development/extensions-core/postgresql.md +++ b/docs/content/development/extensions-core/postgresql.md @@ -83,3 +83,5 @@ In most cases, the configuration options map directly to the [postgres jdbc conn | `druid.metadata.postgres.ssl.sslRootCert` | The full path to the root certificate. | none | no | | `druid.metadata.postgres.ssl.sslHostNameVerifier` | The classname of the hostname verifier. | none | no | | `druid.metadata.postgres.ssl.sslPasswordCallback` | The classname of the SSL password provider. | none | no | +| `druid.metadata.postgres.dbTableSchema` | druid meta table schema | `public` | no | + diff --git a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java index e234a15..a474a0b 100644 --- a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java +++ b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnector.java @@ -48,11 +48,14 @@ public class PostgreSQLConnector extends SQLMetadataConnector private volatile Boolean canUpsert; + private final String dbTableSchema; + @Inject public PostgreSQLConnector( Supplier<MetadataStorageConnectorConfig> config, Supplier<MetadataStorageTablesConfig> dbTables, - PostgreSQLConnectorConfig connectorConfig + PostgreSQLConnectorConfig connectorConfig, + PostgreSQLTablesConfig tablesConfig ) { super(config, dbTables); @@ -104,7 +107,8 @@ public class PostgreSQLConnector extends SQLMetadataConnector } this.dbi = new DBI(datasource); - + this.dbTableSchema = tablesConfig.getDbTableSchema(); + log.info("Configured PostgreSQL as metadata storage"); } @@ -146,8 +150,9 @@ public class PostgreSQLConnector extends SQLMetadataConnector public boolean tableExists(final Handle handle, final String tableName) { return !handle.createQuery( - "SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public' AND tablename ILIKE :tableName" + "SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = :dbTableSchema AND tablename ILIKE :tableName" ) + .bind("dbTableSchema", dbTableSchema) .bind("tableName", tableName) .map(StringMapper.FIRST) .list() diff --git a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLMetadataStorageModule.java b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLMetadataStorageModule.java index f10de65..9506edd 100644 --- a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLMetadataStorageModule.java +++ b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLMetadataStorageModule.java @@ -67,6 +67,7 @@ public class PostgreSQLMetadataStorageModule extends SQLMetadataStorageDruidModu super.configure(binder); JsonConfigProvider.bind(binder, "druid.metadata.postgres.ssl", PostgreSQLConnectorConfig.class); + JsonConfigProvider.bind(binder, "druid.metadata.postgres", PostgreSQLTablesConfig.class); PolyBind .optionBinder(binder, Key.get(MetadataStorageProvider.class)) diff --git a/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLTablesConfig.java b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLTablesConfig.java new file mode 100644 index 0000000..82d4543 --- /dev/null +++ b/extensions-core/postgresql-metadata-storage/src/main/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLTablesConfig.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.druid.metadata.storage.postgresql; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class PostgreSQLTablesConfig +{ + @JsonProperty + private String dbTableSchema = "public"; + + public String getDbTableSchema() + { + return dbTableSchema; + } + + @Override + public String toString() + { + return "PostgreSQLTablesConfig{" + + ", dbTableSchema='" + dbTableSchema + '\'' + + '}'; + } +} diff --git a/extensions-core/postgresql-metadata-storage/src/test/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnectorTest.java b/extensions-core/postgresql-metadata-storage/src/test/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnectorTest.java index 222e5d5..bb885d7 100644 --- a/extensions-core/postgresql-metadata-storage/src/test/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnectorTest.java +++ b/extensions-core/postgresql-metadata-storage/src/test/java/org/apache/druid/metadata/storage/postgresql/PostgreSQLConnectorTest.java @@ -50,7 +50,8 @@ public class PostgreSQLConnectorTest null ) ), - new PostgreSQLConnectorConfig() + new PostgreSQLConnectorConfig(), + new PostgreSQLTablesConfig() ); Assert.assertTrue(connector.isTransientException(new SQLException("bummer, connection problem", "08DIE"))); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org