[
https://issues.apache.org/jira/browse/TAJO-2103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15287902#comment-15287902
]
ASF GitHub Bot commented on TAJO-2103:
--------------------------------------
Github user hyunsik commented on the pull request:
https://github.com/apache/tajo/pull/990#issuecomment-219886726
Could you explain the purpose of this patch?
See setDatabase() in the below. The variable 'database' already contains
'mapped_dbname'.
```
public JdbcTablespace(String name, URI uri, JSONObject config) {
super(name, uri, config);
setDatabase();
setJdbcProperties();
}
private void setDatabase() {
if (config.containsKey(CONFIG_KEY_MAPPED_DATABASE)) {
database = this.config.getAsString(CONFIG_KEY_MAPPED_DATABASE);
} else {
database = ConnectionInfo.fromURI(uri).database();
}
}
```
But, your patch changes as the below. It's a duplicate.
```
public MetadataProvider getMetadataProvider() {
return new PgSQLMetadataProvider(this, database,
ConnectionInfo.fromURI(uri).database());
}
```
> JdbcMetadataProviderBase need to differentiate between database name in DBMS
> and database name in Tajo.
> -------------------------------------------------------------------------------------------------------
>
> Key: TAJO-2103
> URL: https://issues.apache.org/jira/browse/TAJO-2103
> Project: Tajo
> Issue Type: Bug
> Components: JDBC Storage
> Reporter: Jaehwa Jung
> Assignee: Jaehwa Jung
>
> When using {{mapped_database}} configuration in JDBCTablespace, users can map
> actual database name in RDBMS to virtual database name in Tajo. If users set
> tajo-storage.json as follow:
> {code:xml}
> {
> "spaces": {
> "pgsql_db1": {
> "uri": "jdbc:postgresql://hostname:port/db1",
> "configs": {
> "mapped_database": "tajo_db1",
> "connection_properties": {
> "user": "tajo",
> "password": "xxxx"
> }
> }
> }
> }
> }
> {code}
> In above example, the database db1 in PostgreSQL will be mapped the database
> tajo_db1 in Tajo. And users can write select statement, for example, "SELECT
> * from tajo_db1.Xyz".
> But actually, if mapped database name is not equals to actual database name,
> users won't be able to get table in Tajo because {{JdbcMetadataProviderBase}}
> always get table with mapped database name. The provider need to
> differentiate between database name in DBMS and database name in Tajo.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)