use of datawave.query.util.MockMetadataHelper in project datawave by NationalSecurityAgency.
the class AllTermsIndexedVisitorTest method beforeClass.
@BeforeClass
public static void beforeClass() {
helper = new MockMetadataHelper();
helper.setIndexedFields(indexedFields);
config = new ShardQueryConfiguration();
}
use of datawave.query.util.MockMetadataHelper in project datawave by NationalSecurityAgency.
the class GeoWaveFunctionsDescriptorTest method convertFunctionToIndexQuery.
public static String convertFunctionToIndexQuery(String queryStr, ShardQueryConfiguration config) throws ParseException {
ASTJexlScript script = JexlASTHelper.parseJexlQuery(queryStr);
ASTFunctionNode func = find(script);
JexlArgumentDescriptor desc = new GeoWaveFunctionsDescriptor().getArgumentDescriptor(func);
MockMetadataHelper helper = new MockMetadataHelper();
helper.addField("GEO_FIELD", "datawave.data.type.GeometryType");
JexlNode indexQuery = desc.getIndexQuery(config, helper, null, null);
return JexlStringBuildingVisitor.buildQuery(indexQuery);
}
use of datawave.query.util.MockMetadataHelper in project datawave by NationalSecurityAgency.
the class RangeStreamTest method testGuardAgainstVeryOddlyFormedJexlQueriesLikeFoo.
@Test
public void testGuardAgainstVeryOddlyFormedJexlQueriesLikeFoo() throws Exception {
String originalQuery = "foo";
ASTJexlScript script = JexlASTHelper.parseJexlQuery(originalQuery);
config.setBeginDate(new Date(0));
config.setEndDate(new Date(System.currentTimeMillis()));
Multimap<String, Type<?>> dataTypes = HashMultimap.create();
dataTypes.putAll("FOO", Sets.newHashSet(new LcNoDiacriticsType()));
config.setQueryFieldsDatatypes(dataTypes);
config.setIndexedFields(dataTypes);
MockMetadataHelper helper = new MockMetadataHelper();
helper.setIndexedFields(dataTypes.keySet());
RangeStream rangeStream = new RangeStream(config, new ScannerFactory(config.getConnector()), helper);
rangeStream.streamPlans(script);
assertEquals(IndexStream.StreamContext.UNINDEXED, rangeStream.context());
assertEquals(Collections.emptyIterator(), rangeStream.iterator());
}
use of datawave.query.util.MockMetadataHelper in project datawave by NationalSecurityAgency.
the class RangeStreamTest method testNegatedNonIndexed.
@Test
public void testNegatedNonIndexed() throws Exception {
String originalQuery = "FOO == 'bag' && TACO != 'tacocat'";
ASTJexlScript script = JexlASTHelper.parseJexlQuery(originalQuery);
config.setBeginDate(new Date(0));
config.setEndDate(new Date(System.currentTimeMillis()));
Multimap<String, Type<?>> dataTypes = HashMultimap.create();
dataTypes.putAll("FOO", Sets.newHashSet(new LcNoDiacriticsType()));
config.setQueryFieldsDatatypes(dataTypes);
config.setIndexedFields(dataTypes);
MockMetadataHelper helper = new MockMetadataHelper();
helper.setIndexedFields(dataTypes.keySet());
Range range1 = makeTestRange("20190314", "datatype1\u0000234");
Range range2 = makeTestRange("20190314", "datatype1\u0000345");
Set<Range> expectedRanges = Sets.newHashSet(range1, range2);
RangeStream rangeStream = new RangeStream(config, new ScannerFactory(config.getConnector()), helper).setLimitScanners(true);
for (QueryPlan queryPlan : rangeStream.streamPlans(script)) {
for (Range range : queryPlan.getRanges()) {
assertTrue("Tried to remove unexpected range " + range.toString() + " from expected ranges: " + expectedRanges.toString(), expectedRanges.remove(range));
}
}
assertTrue("Expected ranges not found in query plan: " + expectedRanges.toString(), expectedRanges.isEmpty());
}
use of datawave.query.util.MockMetadataHelper in project datawave by NationalSecurityAgency.
the class RangeStreamTest method testOrOneFieldIndexed.
@Test
public void testOrOneFieldIndexed() throws Exception {
String originalQuery = "(FOO == 'bag' || TACO == 'ba')";
ASTJexlScript script = JexlASTHelper.parseJexlQuery(originalQuery);
config.setBeginDate(new Date(0));
config.setEndDate(new Date(System.currentTimeMillis()));
Multimap<String, Type<?>> dataTypes = HashMultimap.create();
dataTypes.putAll("FOO", Sets.newHashSet(new LcNoDiacriticsType()));
dataTypes.putAll("NUM", Sets.newHashSet(new NumberType()));
config.setQueryFieldsDatatypes(dataTypes);
config.setIndexedFields(dataTypes);
MockMetadataHelper helper = new MockMetadataHelper();
helper.setIndexedFields(dataTypes.keySet());
helper.addFields(ImmutableSet.of("TACO"));
assertFalse(new RangeStream(config, new ScannerFactory(config.getConnector()), helper).streamPlans(script).iterator().hasNext());
}
Aggregations