示例#1
0
 private void shardingKeyIndex() {
   // create shardingKey index
   if (ruleColumns != null) {
     ArrayList<Index> indexes = getIndexes();
     boolean isMatch = false;
     for (Index index : indexes) {
       Column[] columns = index.getColumns();
       if (columns.length != ruleColumns.length) {
         continue;
       }
       boolean shardingKeyIndex = true;
       for (int idx = 0; idx < columns.length; idx++) {
         if (columns[idx] != ruleColumns[idx]) {
           shardingKeyIndex = false;
           break;
         }
       }
       if (shardingKeyIndex) {
         index.getIndexType().shardingKeyIndex();
         isMatch = true;
       }
     }
     if (!isMatch) {
       List<Column> asList = Arrays.asList(ruleColumns);
       addIndex("$shardingKey", New.arrayList(asList), IndexType.createShardingKey(false));
     }
   }
 }