docs: private boolean getTableDefinition(Connection tbcon) throws SQLException {
          boolean defExists = false;
          boolean smallExists = false;
          boolean mediumExists = false;
          boolean largeExists = false;
  
          //informix size calculation doesn't
          //work. i.e rs1.getInt("COLUMN_SIZE") doesn't work
          //if (usingInformix)
          //    return false;
  
          DatabaseMetaData dmd = tbcon.getMetaData();
          String tbName = tableName;
          String qualifierName = null;
  
          if (usingAS400DB2 || usingDB2Connect) {
              tbName = TABLE_NAME.toUpperCase();
              if (collectionName != null)
                  qualifierName = collectionName;
          } else if (usingDB2 || usingDerby || usingOracle) { // cmd 162172
              tbName = tbName.toUpperCase();
              if (dbid != null) {
                  qualifierName = dbid.toUpperCase(); // cmd PQ81615
              }
  
              if (_smc.isUsingCustomSchemaName()) { //PM27191
                  if (usingDB2) {
                      java.sql.Statement s = null;
                      ResultSet rs1 = null;
                      s = tbcon.createStatement();
                      s.execute("VALUES (CURRENT SCHEMA)");
                      rs1 = s.getResultSet();
                      while (rs1.next()) {
                          qualifierNameWhenCustomSchemaIsSet = rs1.getString("1");
                      }
                      if (qualifierNameWhenCustomSchemaIsSet != null) {
                          qualifierName = qualifierNameWhenCustomSchemaIsSet;
                          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_TABLE_DEFINITION],
                                                                  "Database being used is DB2 and UsingCustomSchemaName is set to true. The following qualifier name obtained from " +
                                                                                  "running the query VALUES (CURRENT SCHEMA) will be used for subsequent queries in this method: "
                                                                                  + qualifierNameWhenCustomSchemaIsSet);
                          }
                      }
                  } // Oracle case to be handled later
              } //PM27191 END
          }
  
          ResultSet rs1 = dmd.getColumns(null, qualifierName, tbName, "%");
          try {
              while (rs1.next()) {
                  String columnname = rs1.getString("COLUMN_NAME");
                  int columnsize = rs1.getInt("COLUMN_SIZE");
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_TABLE_DEFINITION], "COLUMN_NAME = " + columnname + " COLUMN_SIZE = " + Integer.toString(columnsize));
                  }
                  if (columnname.equalsIgnoreCase("SMALL")) {
                      smallColSize = columnsize;
                      smallExists = true;
                  }
                  if (columnname.equalsIgnoreCase("MEDIUM")) {
                      if (!usingOracle) { // cmd 162172 long raw or Blob
                                          // does not give proper size from
                                          // COLUMN_SIZE data for Oracle
                          mediumColSize = columnsize;
                      }
                      mediumExists = true;
                  }
                  if (columnname.equalsIgnoreCase("LARGE")) {
                      largeColSize = columnsize;
                      largeExists = true;
                  }
                  defExists = true;
              }
  
              if (defExists) {
                  if (smallExists && mediumExists && largeExists) {
                      if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                          LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_TABLE_DEFINITION], "Table exists with all the required columns");
                      }
                  } else {
                      //Flag the error
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[GET_TABLE_DEFINITION], "DatabaseHashMap.wrongTableDef");
                  }
              }
          } finally {
              closeResultSet(rs1);
          }
          return defExists;
      }