docs: @TimerJ
      public TableMetadataBuilder addIndex(IndexType indType, String indexName, String... fields) throws ExecutionException {
  
          IndexName indName = new IndexName(tableName.getName(), tableName.getName(), indexName);
  
          Map<ColumnName, ColumnMetadata> columnsMetadata = new HashMap<ColumnName, ColumnMetadata>(fields.length);
          // recover the columns from the table metadata
          for (String field : fields) {
              ColumnMetadata cMetadata = columns.get(new ColumnName(tableName, field));
              if (cMetadata == null) {
                  throw new ExecutionException("Trying to index a not existing column: " + field);
              }
              columnsMetadata.put(new ColumnName(tableName, field), cMetadata);
          }
          IndexMetadata indMetadata = new IndexMetadata(indName, columnsMetadata, indType, null);
          indexes.put(indName, indMetadata);
          return this;
      }