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

    https://github.com/apache/incubator-trafodion/pull/508#discussion_r65471952
  
    --- Diff: 
core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/T4DatabaseMetaData.java ---
    @@ -3092,27 +3090,40 @@ public boolean 
dataDefinitionIgnoredInTransactions() throws SQLException {
                        // dropped from the search."
                        procedureNamePattern = "%";
     
    +           }else{
    +                   procedureNamePattern = 
sqlValueFormat(procedureNamePattern);
    +           }
    +           MetadataHolder mdHolder = this.connection_.mdHolder_;
    +           int retryCnt = 0;
    +           while(retryCnt < 3 ) {
    +                   try {
    +                           PreparedStatement ps = 
mdHolder.getPStatement(SQL_API_SQLPROCEDURES, this.connection_);
    +                           ps.setObject(1, schemaPattern);
    +                           ps.setObject(2, procedureNamePattern);
    +                           return ps.executeQuery();
    +                   } catch (SQLException e) {
    +                           
mdHolder.removePStatement(SQL_API_SQLPROCEDURES);
    +                           ++retryCnt;
    +                           if( retryCnt >= 3 ) {
    +                                   throw e;
    +                           }
    +                   }
                }
    -           getSQLCatalogsInfo(connection_.getServerHandle(), // Server 
Handle
    -                           SQL_API_SQLPROCEDURES, // catalogAPI
    -                           catalogNm, // catalog
    -                           schemaNm, // schema
    -                           procedureNamePattern, // table name
    -                           "", // tableTypeList
    -                           "", // cloumn name
    -                           (int) 0, // cloumnType
    -                           (int) 0, // rowIdScope
    -                           (long) 0, // nullable
    -                           (int) 0, // uniqueness
    -                           (int) 0, // accuracy
    -                           (short) 0, // sqlType
    -                           (int) 0, // metadataId
    -                           "", // fcatalog
    -                           "", // fschema
    -                           "" // ftable
    -           );
    +           return null;
    +   }
    --- End diff --
    
    For ODBC: https://msdn.microsoft.com/en-us/library/ms715368(v=vs.85).aspx
    For JDBC: http://docs.oracle.com/javase/8/docs/api/     java.sql -> 
DatabaseMetaData -> getProcedures(..)
    As you see, it's different between JDK1.7 and ODBC3.0. Do you want to add 
if-else on server-side? If any changes, I think it's pretty easy to upgrade 
drivers instead of server for customer, right? It should be nice for server to 
treat it as a common SELECT command instead of extra maintenance work. My 
suggestion is to put it into drivers, not sure how many differences they will 
have between driver in the future.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to