@Override public List<String> getDimension(final String dimension) { return row.getDimension(dimension); }
@Override public List<String> getDimension(String dimension) { return row.getDimension(dimension); }
@Override public List<String> getDimension(String dimension) { return delegate.getDimension(dimension); }
private static String getDimensionValue(Row row, String column) { List<String> values = row.getDimension(column); return values.isEmpty() ? null : values.get(0); }
@Nullable @Override public Object getObject() { List<String> dimensionValues = row.get().getDimension(dimension); if (dimensionValues == null) { return null; } if (dimensionValues.size() == 1) { return dimensionValues.get(0); } return dimensionValues; }
@Override public IndexedInts getRow() { final List<String> dimensionValues = row.get().getDimension(dimension); indexedInts.setSize(dimensionValues != null ? dimensionValues.size() : 0); return indexedInts; }
@Override public String lookupName(int id) { final String value = NullHandling.emptyToNullIfNeeded(row.get().getDimension(dimension).get(id)); return extractionFn == null ? value : extractionFn.apply(value); }
@Override public boolean eval(Row row) { List<String> dimRowValList = row.getDimension(dimension); if (dimRowValList == null || dimRowValList.isEmpty()) { return Strings.isNullOrEmpty(value); } for (String rowVal : dimRowValList) { String extracted = getExtractionFn().apply(rowVal); if (value != null && value.equals(extracted)) { return true; } if (extracted == null || extracted.isEmpty()) { return Strings.isNullOrEmpty(value); } } return false; }
private static void assertResult(List<Row> rows) { Assert.assertEquals(10000, rows.size()); rows.sort((r1, r2) -> { int c = r1.getTimestamp().compareTo(r2.getTimestamp()); if (c != 0) { return c; } c = Integer.valueOf(r1.getDimension("a").get(0)).compareTo(Integer.valueOf(r2.getDimension("a").get(0))); if (c != 0) { return c; } return Integer.valueOf(r1.getDimension("b").get(0)).compareTo(Integer.valueOf(r2.getDimension("b").get(0))); }); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { final Row row = rows.get(i * 100 + j); Assert.assertEquals(DateTimes.utc(20171220 + i), row.getTimestamp()); Assert.assertEquals(i, Integer.valueOf(row.getDimension("a").get(0)).intValue()); Assert.assertEquals(j, Integer.valueOf(row.getDimension("b").get(0)).intValue()); } } }
private void assertResult(List<Row> rows, List<String> sqls) { Assert.assertEquals(10 * sqls.size(), rows.size()); rows.sort((r1, r2) -> { int c = r1.getTimestamp().compareTo(r2.getTimestamp()); if (c != 0) { return c; } c = Integer.valueOf(r1.getDimension("a").get(0)).compareTo(Integer.valueOf(r2.getDimension("a").get(0))); if (c != 0) { return c; } return Integer.valueOf(r1.getDimension("b").get(0)).compareTo(Integer.valueOf(r2.getDimension("b").get(0))); }); int rowCount = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < sqls.size(); j++) { final Row row = rows.get(rowCount); String timestampSt = StringUtils.format("2011-01-12T00:0%s:00.000Z", i); Assert.assertEquals(timestampSt, row.getTimestamp().toString()); Assert.assertEquals(i, Integer.valueOf(row.getDimension("a").get(0)).intValue()); Assert.assertEquals(i, Integer.valueOf(row.getDimension("b").get(0)).intValue()); rowCount++; } } }
@Test public void testCaseSensitivity() throws Exception { long timestamp = System.currentTimeMillis(); IncrementalIndex index = closerRule.closeLater(indexCreator.createIndex(defaultAggregatorFactories)); populateIndex(timestamp, index); Assert.assertEquals(Arrays.asList("dim1", "dim2"), index.getDimensionNames()); Assert.assertEquals(2, index.size()); final Iterator<Row> rows = index.iterator(); Row row = rows.next(); Assert.assertEquals(timestamp, row.getTimestampFromEpoch()); Assert.assertEquals(Collections.singletonList("1"), row.getDimension("dim1")); Assert.assertEquals(Collections.singletonList("2"), row.getDimension("dim2")); row = rows.next(); Assert.assertEquals(timestamp, row.getTimestampFromEpoch()); Assert.assertEquals(Collections.singletonList("3"), row.getDimension("dim1")); Assert.assertEquals(Collections.singletonList("4"), row.getDimension("dim2")); }
rows.sort(Comparator.comparing(Row::getTimestamp)); for (int i = 0; i < 5; i++) { final List<String> dimVals = rows.get(i).getDimension("a"); Assert.assertEquals(1, dimVals.size()); Assert.assertEquals(i + "th test file", dimVals.get(0));
Row row = rows.next(); Assert.assertEquals(timestamp, row.getTimestampFromEpoch()); Assert.assertEquals(Collections.singletonList("1"), row.getDimension("dim1")); Assert.assertEquals(Collections.singletonList("2"), row.getDimension("dim2")); Assert.assertEquals(Arrays.asList("a", "b"), row.getDimension("dim3")); Assert.assertEquals(1L, row.getMetric("count")); Assert.assertEquals(1L, row.getMetric("count_selector_filtered")); Assert.assertEquals(Collections.singletonList("3"), row.getDimension("dim1")); Assert.assertEquals(Collections.singletonList("4"), row.getDimension("dim2")); Assert.assertEquals(Arrays.asList("c", "d"), row.getDimension("dim3")); Assert.assertEquals(1L, row.getMetric("count")); Assert.assertEquals(0L, row.getMetric("count_selector_filtered"));
@Override public List<String> getDimension(final String dimension) { return row.getDimension(dimension); }
@Override public List<String> getDimension(String dimension) { return row.getDimension(dimension); }
@Override public List<String> getDimension(String dimension) { return delegate.getDimension(dimension); }
private static String getDimensionValue(Row row, String column) { List<String> values = row.getDimension(column); return values.isEmpty() ? null : values.get(0); }
@Nullable @Override public Object getObject() { List<String> dimensionValues = row.get().getDimension(dimension); if (dimensionValues == null) { return null; } if (dimensionValues.size() == 1) { return dimensionValues.get(0); } return dimensionValues; }
@Override public IndexedInts getRow() { final List<String> dimensionValues = row.get().getDimension(dimension); indexedInts.setSize(dimensionValues != null ? dimensionValues.size() : 0); return indexedInts; }
@Override public String lookupName(int id) { final String value = NullHandling.emptyToNullIfNeeded(row.get().getDimension(dimension).get(id)); return extractionFn == null ? value : extractionFn.apply(value); }