@Override
  public int compare(PrimaryKeyColumn left, PrimaryKeyColumn right) {

    int comparison = left.type().compareTo(right.type());

    comparison =
        (comparison != 0 ? comparison : Integer.valueOf(left.ordinal()).compareTo(right.ordinal()));
    comparison = (comparison != 0 ? comparison : left.name().compareTo(right.name()));
    comparison = (comparison != 0 ? comparison : left.ordering().compareTo(right.ordering()));

    return comparison;
  }
 public static String getPk(Table table) {
   PrimaryKey pk = table.getPrimaryKey();
   StringBuffer buf = new StringBuffer();
   buf.append("{\n");
   printJsonValue(buf, "pkName", pk.getPrimaryKeyName(), false);
   buf.append("\"columns\": [\n");
   int i = 1;
   int size = pk.getPrimaryKeyColumns().size();
   for (PrimaryKeyColumn col : pk.getPrimaryKeyColumns()) {
     buf.append("{\n");
     printJsonValue(buf, "name", col.getColumnName(), true);
     buf.append("}\n");
     if (i != size) {
       buf.append(",");
     }
     i++;
   }
   buf.append("]\n");
   buf.append("}\n");
   return buf.toString();
 }