use of org.jooq.lambda.tuple.Tuple2 in project torodb by torodb.
the class ExclusiveWriteBackendTransactionImpl method copyMetaIndexColumns.
private List<Tuple2<String, Boolean>> copyMetaIndexColumns(MetaIdentifiedDocPartIndex fromMetaDocPartIndex, MutableMetaDocPartIndex toMetaDocPartIndex) {
List<Tuple2<String, Boolean>> identifiers = new ArrayList<>();
Iterator<? extends MetaDocPartIndexColumn> fromMetaDocPartIndexColumnIterator = fromMetaDocPartIndex.iteratorColumns();
while (fromMetaDocPartIndexColumnIterator.hasNext()) {
MetaDocPartIndexColumn fromMetaDocPartIndexColumn = fromMetaDocPartIndexColumnIterator.next();
toMetaDocPartIndex.addMetaDocPartIndexColumn(fromMetaDocPartIndexColumn.getIdentifier(), fromMetaDocPartIndexColumn.getOrdering());
identifiers.add(new Tuple2<>(fromMetaDocPartIndexColumn.getIdentifier(), fromMetaDocPartIndexColumn.getOrdering().isAscending()));
}
return identifiers;
}
use of org.jooq.lambda.tuple.Tuple2 in project torodb by torodb.
the class SharedWriteBackendTransactionImpl method addField.
@Override
public void addField(MetaDatabase db, MetaCollection col, MutableMetaDocPart docPart, MetaField newField) throws UserException {
Preconditions.checkState(!isClosed(), "This transaction is closed");
getSqlInterface().getMetaDataWriteInterface().addMetaField(getDsl(), db, col, docPart, newField);
getSqlInterface().getStructureInterface().addColumnToDocPartTable(getDsl(), db.getIdentifier(), docPart.getIdentifier(), newField.getIdentifier(), getSqlInterface().getDataTypeProvider().getDataType(newField.getType()));
List<Tuple2<MetaIndex, List<String>>> missingIndexes = col.getMissingIndexesForNewField(docPart, newField);
for (Tuple2<MetaIndex, List<String>> missingIndexEntry : missingIndexes) {
MetaIndex missingIndex = missingIndexEntry.v1();
List<String> identifiers = missingIndexEntry.v2();
MutableMetaDocPartIndex docPartIndex = docPart.getOrCreatePartialMutableDocPartIndexForMissingIndexAndNewField(missingIndex, identifiers, newField);
if (missingIndex.isMatch(docPart, identifiers, docPartIndex)) {
List<Tuple2<String, Boolean>> columnList = new ArrayList<>(docPartIndex.size());
for (String identifier : identifiers) {
MetaDocPartIndexColumn docPartIndexColumn = docPartIndex.getMetaDocPartIndexColumnByIdentifier(identifier);
columnList.add(new Tuple2<>(docPartIndexColumn.getIdentifier(), docPartIndexColumn.getOrdering().isAscending()));
}
MetaIdentifiedDocPartIndex identifiedDocPartIndex = docPartIndex.immutableCopy(identifierFactory.toIndexIdentifier(db, docPart.getIdentifier(), columnList));
getSqlInterface().getMetaDataWriteInterface().addMetaDocPartIndex(getDsl(), db, col, docPart, identifiedDocPartIndex);
for (String identifier : identifiers) {
MetaDocPartIndexColumn docPartIndexColumn = docPartIndex.getMetaDocPartIndexColumnByIdentifier(identifier);
getSqlInterface().getMetaDataWriteInterface().addMetaDocPartIndexColumn(getDsl(), db, col, docPart, identifiedDocPartIndex, docPartIndexColumn);
}
getSqlInterface().getStructureInterface().createIndex(getDsl(), identifiedDocPartIndex.getIdentifier(), db.getIdentifier(), docPart.getIdentifier(), columnList, docPartIndex.isUnique());
LOGGER.info("Created index {} for table {} associated to logical index {}.{}.{}", identifiedDocPartIndex.getIdentifier(), docPart.getIdentifier(), db.getName(), col.getName(), missingIndex.getName());
}
}
}
use of org.jooq.lambda.tuple.Tuple2 in project waltz by khartec.
the class AssetCostHarness method main.
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(DIConfiguration.class);
DSLContext dsl = ctx.getBean(DSLContext.class);
AssetCostService service = ctx.getBean(AssetCostService.class);
AssetCostStatsDao statsDao = ctx.getBean(AssetCostStatsDao.class);
AssetCostDao costDao = ctx.getBean(AssetCostDao.class);
ApplicationIdSelectorFactory selectorFactory = ctx.getBean(ApplicationIdSelectorFactory.class);
long st = System.currentTimeMillis();
System.out.println("-- start");
IdSelectionOptions appIdSelectionOptions = ImmutableIdSelectionOptions.builder().scope(HierarchyQueryScope.CHILDREN).entityReference(ImmutableEntityReference.builder().id(5600).kind(EntityKind.ORG_UNIT).build()).build();
List<Tuple2<Long, BigDecimal>> costs = service.calculateCombinedAmountsForSelector(appIdSelectionOptions);
System.out.println("-- end, dur: " + (System.currentTimeMillis() - st));
System.out.println(costs);
System.out.println(costs.size());
}
use of org.jooq.lambda.tuple.Tuple2 in project georocket by georocket.
the class GeoJsonSplitterTest method split.
private List<Tuple2<GeoJsonChunkMeta, JsonObject>> split(String file) throws IOException {
byte[] json = IOUtils.toByteArray(GeoJsonSplitterTest.class.getResource(file));
List<Tuple2<GeoJsonChunkMeta, JsonObject>> chunks = new ArrayList<>();
StringWindow window = new StringWindow();
GeoJsonSplitter splitter = new GeoJsonSplitter(window);
Observable.just(json).map(Buffer::buffer).doOnNext(window::append).lift(new JsonParserOperator()).flatMap(splitter::onEventObservable).toBlocking().forEach(result -> {
JsonObject o = new JsonObject(result.getChunk());
chunks.add(Tuple.tuple((GeoJsonChunkMeta) result.getMeta(), o));
});
return chunks;
}
use of org.jooq.lambda.tuple.Tuple2 in project georocket by georocket.
the class GeoJsonSplitterTest method multiPolygon.
/**
* Test if a MultiPolygon can be split correctly
* @throws IOException if the test file could not be read
*/
@Test
public void multiPolygon() throws IOException {
String filename = "multipolygon.json";
long size = getFileSize(filename);
List<Tuple2<GeoJsonChunkMeta, JsonObject>> chunks = split(filename);
assertEquals(1, chunks.size());
Tuple2<GeoJsonChunkMeta, JsonObject> t1 = chunks.get(0);
GeoJsonChunkMeta m1 = t1.v1;
assertNull(m1.getParentFieldName());
assertEquals(0, m1.getStart());
assertEquals(size, m1.getEnd());
assertEquals("MultiPolygon", m1.getType());
JsonObject o1 = t1.v2;
assertEquals("MultiPolygon", o1.getString("type"));
assertEquals(1, o1.getJsonArray("coordinates").size());
assertEquals(1, o1.getJsonArray("coordinates").getJsonArray(0).size());
assertEquals(13, o1.getJsonArray("coordinates").getJsonArray(0).getJsonArray(0).size());
}
Aggregations