[ 
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)

Reply via email to