Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
* </p>
*
*/
public class GenericQueryConfiguration implements Serializable {
public class GenericQueryConfiguration implements Serializable, ImmutableGenericQueryConfiguration {
// is this execution expected to be checkpointable (changes how we allocate ranges to scanners)
private boolean checkpointable = false;

Expand Down Expand Up @@ -132,6 +132,7 @@ public void copyFrom(GenericQueryConfiguration other) {
this.setTableHints(other.getTableHints());
}

@Override
public Collection<QueryData> getQueries() {
return queries;
}
Expand All @@ -145,6 +146,7 @@ public void setQueries(Collection<QueryData> queries) {
*
* @return An iterator of query ranges
*/
@Override
public Iterator<QueryData> getQueriesIter() {
if ((queriesIter == null || !queriesIter.hasNext()) && queries != null) {
return Iterators.unmodifiableIterator(queries.iterator());
Expand All @@ -163,6 +165,7 @@ public void setQueriesIter(Iterator<QueryData> queriesIter) {
this.queriesIter = queriesIter;
}

@Override
public boolean isCheckpointable() {
return checkpointable;
}
Expand All @@ -171,6 +174,7 @@ public void setCheckpointable(boolean checkpointable) {
this.checkpointable = checkpointable;
}

@Override
public AccumuloClient getClient() {
return client;
}
Expand All @@ -179,6 +183,7 @@ public void setClient(AccumuloClient client) {
this.client = client;
}

@Override
public Query getQuery() {
return query;
}
Expand All @@ -191,10 +196,12 @@ public void setQueryString(String query) {
this.queryString = query;
}

@Override
public String getQueryString() {
return queryString;
}

@Override
public Set<String> getAuths() {
if (auths == null && authorizations != null) {
auths = authorizations.stream().flatMap(a -> a.getAuthorizations().stream()).map(b -> new String(b, StandardCharsets.UTF_8))
Expand All @@ -209,6 +216,7 @@ public void setAuths(Set<String> auths) {
getAuthorizations();
}

@Override
public Set<Authorizations> getAuthorizations() {
if (authorizations == null && auths != null) {
authorizations = Collections
Expand All @@ -223,6 +231,7 @@ public void setAuthorizations(Set<Authorizations> authorizations) {
getAuths();
}

@Override
public int getBaseIteratorPriority() {
return baseIteratorPriority;
}
Expand All @@ -231,6 +240,7 @@ public void setBaseIteratorPriority(final int baseIteratorPriority) {
this.baseIteratorPriority = baseIteratorPriority;
}

@Override
public Date getBeginDate() {
return beginDate;
}
Expand All @@ -239,6 +249,7 @@ public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}

@Override
public Date getEndDate() {
return endDate;
}
Expand All @@ -247,6 +258,7 @@ public void setEndDate(Date endDate) {
this.endDate = endDate;
}

@Override
public Long getMaxWork() {
return maxWork;
}
Expand All @@ -255,6 +267,7 @@ public void setMaxWork(Long maxWork) {
this.maxWork = maxWork;
}

@Override
public String getTableName() {
return tableName;
}
Expand All @@ -263,6 +276,7 @@ public void setTableName(String tableName) {
this.tableName = tableName;
}

@Override
public boolean getBypassAccumulo() {
return bypassAccumulo;
}
Expand All @@ -274,10 +288,12 @@ public void setBypassAccumulo(boolean bypassAccumulo) {
/**
* @return - the accumulo password
*/
@Override
public String getAccumuloPassword() {
return this.accumuloPassword;
}

@Override
public boolean isReduceResults() {
return reduceResults;
}
Expand All @@ -296,6 +312,7 @@ public void setAccumuloPassword(String password) {
this.accumuloPassword = EnvProvider.resolve(password);
}

@Override
public String getConnPoolName() {
return connPoolName;
}
Expand All @@ -304,6 +321,7 @@ public void setConnPoolName(String connPoolName) {
this.connPoolName = connPoolName;
}

@Override
public Map<String,ScannerBase.ConsistencyLevel> getTableConsistencyLevels() {
return tableConsistencyLevels;
}
Expand All @@ -312,6 +330,7 @@ public void setTableConsistencyLevels(Map<String,ScannerBase.ConsistencyLevel> t
this.tableConsistencyLevels = tableConsistencyLevels;
}

@Override
public Map<String,Map<String,String>> getTableHints() {
return tableHints;
}
Expand All @@ -325,6 +344,7 @@ public void setTableHints(Map<String,Map<String,String>> tableHints) {
*
* @return True if all of the encapsulated values have legitimate values, otherwise false
*/
@Override
public boolean canRunQuery() {
// Ensure we were given connector and authorizations
if (null == this.getClient() || null == this.getAuthorizations()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package datawave.core.query.configuration;

import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.apache.accumulo.core.client.AccumuloClient;
import org.apache.accumulo.core.client.ScannerBase;
import org.apache.accumulo.core.security.Authorizations;

import datawave.microservice.query.Query;

public interface ImmutableGenericQueryConfiguration {
Collection<QueryData> getQueries();

Iterator<QueryData> getQueriesIter();

boolean isCheckpointable();

AccumuloClient getClient();

Query getQuery();

String getQueryString();

Set<String> getAuths();

Set<Authorizations> getAuthorizations();

int getBaseIteratorPriority();

Date getBeginDate();

Date getEndDate();

Long getMaxWork();

String getTableName();

boolean getBypassAccumulo();

String getAccumuloPassword();

boolean isReduceResults();

String getConnPoolName();

Map<String,ScannerBase.ConsistencyLevel> getTableConsistencyLevels();

Map<String,Map<String,String>> getTableHints();

boolean canRunQuery();
}
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ protected DatawaveFieldIndexCachingIteratorJexl(Builder builder) {
this.termNumber = builder.termNumber;

// Note: We have already selected the control directory at random in the DefaultQueryPlanner
// @see DefaultQueryPlanner#getShuffledIvaratoCacheDirConfigs(ShardQueryConfiguration)
// @see DefaultQueryPlanner#getShuffledIvaratoCacheDirConfigs(ImmutableShardQueryConfiguration)
if (ivaratorCacheDirs.size() > 0) {
this.controlFs = ivaratorCacheDirs.get(0).getFs();
this.controlDir = new Path(ivaratorCacheDirs.get(0).getPathURI());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import datawave.next.scanner.DocumentScanner;
import datawave.next.scanner.DocumentScheduler;
import datawave.query.config.ShardQueryConfiguration;
import datawave.query.config.ImmutableShardQueryConfiguration;

public class CountScheduler extends DocumentScheduler {

public CountScheduler(ShardQueryConfiguration config) {
public CountScheduler(ImmutableShardQueryConfiguration config) {
super(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import datawave.core.query.configuration.Result;
import datawave.core.query.logic.QueryCheckpoint;
import datawave.core.query.logic.QueryKey;
import datawave.query.config.ShardQueryConfiguration;
import datawave.query.config.ImmutableShardQueryConfiguration;
import datawave.query.scheduler.PushdownScheduler;
import datawave.query.scheduler.Scheduler;
import datawave.query.tables.ScannerFactory;
Expand All @@ -39,7 +39,7 @@ public class DocumentScheduler extends Scheduler {
protected DocumentScanner scanner;
protected VisitorFunction visitorFunction;

public DocumentScheduler(ShardQueryConfiguration config) {
public DocumentScheduler(ImmutableShardQueryConfiguration config) {
this.config = config.getDocumentScannerConfig();
this.config.setClient(config.getClient());
this.config.setAuthorizations(AuthorizationsMinimizer.minimize(config.getAuthorizations()).iterator().next());
Expand All @@ -53,7 +53,7 @@ public void setVisitorFunction(VisitorFunction visitorFunction) {
}

@Override
public BatchScanner createBatchScanner(ShardQueryConfiguration config, ScannerFactory scannerFactory, QueryData qd) throws TableNotFoundException {
public BatchScanner createBatchScanner(ImmutableShardQueryConfiguration config, ScannerFactory scannerFactory, QueryData qd) throws TableNotFoundException {
throw new RuntimeException("Not implemented");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import org.apache.commons.jexl3.parser.ASTAndNode;
import org.apache.commons.jexl3.parser.ASTOrNode;

import datawave.query.config.ShardQueryConfiguration;
import datawave.query.config.ImmutableShardQueryConfiguration;
import datawave.query.index.lookup.AncestorIndexStream;
import datawave.query.index.lookup.IndexStream;
import datawave.query.index.lookup.RangeStream;
Expand All @@ -14,7 +14,7 @@
* Prevent ranges that are from the same document from both being returned, resulting in duplicate rows across the ancestor
*/
public class AncestorRangeStream extends RangeStream {
public AncestorRangeStream(ShardQueryConfiguration config, ScannerFactory scanners, MetadataHelper metadataHelper) {
public AncestorRangeStream(ImmutableShardQueryConfiguration config, ScannerFactory scanners, MetadataHelper metadataHelper) {
super(config, scanners, metadataHelper);
}

Expand Down
Loading
Loading