public boolean isAutoIncrement(
      Connection connection,
      String catalogName,
      String schemaName,
      String tableName,
      String columnName)
      throws SQLException {
    String fullTableName = TableUtil.buildFullTableName(catalogName, schemaName, tableName);
    String sql = "select " + columnName + " from " + fullTableName + " where 1 = 0";
    logger.debug(sql);

    PreparedStatement ps = ConnectionUtil.prepareStatement(connection, sql);
    try {
      ResultSet rs = ps.executeQuery();
      try {
        ResultSetMetaData rsMetaData = rs.getMetaData();
        return rsMetaData.isAutoIncrement(1);
      } finally {
        ResultSetUtil.close(rs);
      }
    } finally {
      StatementUtil.close(ps);
    }
  }
 /**
  * 標準名を組み立てます。
  *
  * @param catalog カタログ名
  * @param schema スキーマ名
  * @param name テーブル名
  * @return 完全な名前
  */
 protected String buildCanonicalName(String catalog, String schema, String name) {
   return TableUtil.buildCanonicalTableName(dialect, catalog, schema, name);
 }
 /**
  * 標準名を組み立てます。
  *
  * @param tableMeta テーブルメタデータ
  * @return 標準名
  */
 protected String buildCanonicalName(TableMeta tableMeta) {
   return TableUtil.buildCanonicalTableName(
       dialect, tableMeta.getCatalog(), tableMeta.getSchema(), tableMeta.getName());
 }