[ 
https://issues.apache.org/jira/browse/TAJO-1109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14206230#comment-14206230
 ] 

ASF GitHub Bot commented on TAJO-1109:
--------------------------------------

Github user hyunsik commented on a diff in the pull request:

    https://github.com/apache/tajo/pull/216#discussion_r20141159
  
    --- Diff: 
tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
 ---
    @@ -176,42 +202,47 @@ public Connection getConnection() {
         return conn;
       }
     
    -  private void verifySchemaVersion() throws CatalogException {
    +  private int getSchemaVersion() {
         Connection conn = null;
         PreparedStatement pstmt = null;
         ResultSet result = null;
    +    int schemaVersion = -1;
    +    
    +    String sql = "SELECT version FROM META";
    +    if (LOG.isDebugEnabled()) {
    +      LOG.debug(sql.toString());
    +    }
     
         try {
    -      String sql = "SELECT version FROM META";
    -      if (LOG.isDebugEnabled()) {
    -        LOG.debug(sql.toString());
    -      }
    -
           conn = getConnection();
           pstmt = conn.prepareStatement(sql);
           result = pstmt.executeQuery();
     
    -      boolean noVersion = !result.next();
    -
    -      int schemaVersion = result.getInt(1);
    -      if (noVersion || schemaVersion != getDriverVersion()) {
    -        LOG.error(String.format("Catalog version (%d) and current driver 
version (%d) are mismatch to each other",
    -            schemaVersion, getDriverVersion()));
    -        
LOG.error("=========================================================================");
    -        LOG.error("|                Catalog Store Migration Is Needed      
                |");
    -        
LOG.error("=========================================================================");
    -        LOG.error("| You might downgrade or upgrade Apache Tajo. 
Downgrading or upgrading  |");
    -        LOG.error("| Tajo without migration process is only available in 
some versions.    |");
    -        LOG.error("| In order to learn how to migration Apache Tajo 
instance,              |");
    -        LOG.error("| please refer http://s.apache.org/0_8_migration.       
                |");
    -        
LOG.error("=========================================================================");
    -        throw new CatalogException("Migration Needed. Please refer 
http://s.apache.org/0_8_migration.";);
    +      if (result.next()) {
    +        schemaVersion = result.getInt("VERSION");
           }
         } catch (SQLException e) {
    -      throw new CatalogException(e);
    +      throw new CatalogException(e.getMessage(), e);
         } finally {
           CatalogUtil.closeQuietly(pstmt, result);
         }
    +    
    +    return schemaVersion;
    +  }
    +
    +  private void verifySchemaVersion() throws CatalogException {
    +    int schemaVersion = -1;
    +
    +    schemaVersion = getSchemaVersion();
    +
    +    if (schemaVersion == -1 || schemaVersion != getDriverVersion()) {
    +      LOG.info(String.format("Catalog version (%d) and current driver 
version (%d) are mismatch to each other",
    +          schemaVersion, getDriverVersion()));
    +      LOG.info("It will start upgrade process on catalog stores.");
    +      
    +      catalogSchemaManager.upgradeBaseSchema(getConnection(), 
schemaVersion);
    --- End diff --
    
    I agree with your point. Your suggestion would be very helpful to engineers 
who don't want to manage RDBMSs. When our catalog becomes stable, we can add 
the upgrade approach. 


> Separate SQL Statements from Catalog Stores
> -------------------------------------------
>
>                 Key: TAJO-1109
>                 URL: https://issues.apache.org/jira/browse/TAJO-1109
>             Project: Tajo
>          Issue Type: Improvement
>          Components: catalog
>            Reporter: Jihun Kang
>            Assignee: Jihun Kang
>            Priority: Minor
>             Fix For: 0.9.1
>
>         Attachments: DBMSSchemaDefinition.xsd, derby.xml
>
>
> When developing the additional catalog stores for another database systems, 
> it is needed to add additional sql statements such as triggers and indexes. 
> These sql statements could increase the code size of catalog store, and when 
> database schema has changed, it may affect the catalog store source codes. I 
> feel that it is needed to separate the sql statements from the java source 
> codes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to