@Override public PerformanceCharacteristics getPerformanceCharacteristics() { boolean queryOptimizationPreferred = true; boolean naturalRecordOrderConsistent = true; for (final Datastore datastore : _datastores) { final PerformanceCharacteristics performanceCharacteristics = datastore.getPerformanceCharacteristics(); queryOptimizationPreferred = queryOptimizationPreferred && performanceCharacteristics.isQueryOptimizationPreferred(); naturalRecordOrderConsistent = naturalRecordOrderConsistent && performanceCharacteristics.isNaturalRecordOrderConsistent(); } return new PerformanceCharacteristicsImpl(queryOptimizationPreferred, naturalRecordOrderConsistent); }
if (!_datastore.getPerformanceCharacteristics().isQueryOptimizationPreferred()) {
public SimpleDictionary loadIntoMemory(final DatastoreConnection datastoreConnection) { final DataContext dataContext = datastoreConnection.getDataContext(); final Column column = getColumn(datastoreConnection); final Query query = dataContext.query().from(column.getTable()).select(column).toQuery(); if (datastoreConnection.getDatastore().getPerformanceCharacteristics().isQueryOptimizationPreferred()) { query.getSelectClause().setDistinct(true); } final Set<String> values = new HashSet<>(); try (DataSet dataSet = dataContext.executeQuery(query)) { while (dataSet.next()) { final Object value = dataSet.getRow().getValue(0); if (value != null) { values.add(value.toString()); } } } return new SimpleDictionary(getName(), values); }