@Override public boolean matches() { if (selector.isNull()) { return false; } return selector.getLong() == matchValLong; }
@Override public boolean isNull() { return selector.isNull(); } };
@Override public ValueGetter makeValueGetter(final BaseLongColumnValueSelector selector) { return () -> { if (selector.isNull()) { return null; } return new String[]{Long.toString(selector.getLong())}; }; } }
@Override public void hashRow(BaseLongColumnValueSelector selector, Hasher hasher) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { hasher.putLong(selector.getLong()); } }
@Override public boolean matches() { if (selector.isNull()) { return predicate.applyNull(); } return predicate.applyLong(selector.getLong()); }
@Override public void hashValues(BaseLongColumnValueSelector selector, HyperLogLogCollector collector) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.add(CardinalityAggregator.hashFn.hashLong(selector.getLong()).asBytes()); } } }
@Override public void aggregate() { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.addLong(selector.getLong()); } else { collector.addBytes(null, 0, 0); } } }
@Override public void bufferAdd(ByteBuffer buf) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { BloomKFilter.addLong(buf, selector.getLong()); } else { BloomKFilter.addBytes(buf, null, 0, 0); } } }
@Test public void testLongSelectorWithConstantNullArithmetic() { final BaseLongColumnValueSelector selector = CONSTANT_NULL_ARITHMETIC.makeColumnValueSelector("expr", COLUMN_SELECTOR_FACTORY); CURRENT_ROW.set(ROW0); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(2L, selector.getLong()); Assert.assertFalse(selector.isNull()); } else { Assert.assertTrue(selector.isNull()); } }
@Test public void testLongSelectorUsingStringFunction() { final BaseLongColumnValueSelector selector = Z_CONCAT_X.makeColumnValueSelector("expr", COLUMN_SELECTOR_FACTORY); CURRENT_ROW.set(ROW0); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(0L, selector.getLong()); } else { Assert.assertTrue(selector.isNull()); } CURRENT_ROW.set(ROW1); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(4L, selector.getLong()); } else { // y is null for row1 Assert.assertTrue(selector.isNull()); } CURRENT_ROW.set(ROW2); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(0L, selector.getLong()); } else { Assert.assertTrue(selector.isNull()); } CURRENT_ROW.set(ROW3); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(0L, selector.getLong()); } else { Assert.assertTrue(selector.isNull()); } }
@Test public void testLongSelector() { final BaseLongColumnValueSelector selector = X_PLUS_Y.makeColumnValueSelector("expr", COLUMN_SELECTOR_FACTORY); CURRENT_ROW.set(ROW0); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(0L, selector.getLong()); } else { Assert.assertTrue(selector.isNull()); } CURRENT_ROW.set(ROW1); if (NullHandling.replaceWithDefault()) { Assert.assertEquals(4L, selector.getLong()); } else { // y is null for row1 Assert.assertTrue(selector.isNull()); } CURRENT_ROW.set(ROW2); Assert.assertEquals(5L, selector.getLong()); CURRENT_ROW.set(ROW3); Assert.assertEquals(5L, selector.getLong()); }
@Override public ValueGetter makeValueGetter(final BaseLongColumnValueSelector selector) { return () -> { if (selector.isNull()) { return null; } return new String[]{Long.toString(selector.getLong())}; }; } }
@Override public boolean matches() { if (selector.isNull()) { return predicate.applyNull(); } return predicate.applyLong(selector.getLong()); }
@Override public void hashRow(BaseLongColumnValueSelector selector, Hasher hasher) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { hasher.putLong(selector.getLong()); } }
@Override public void hashValues(BaseLongColumnValueSelector selector, HyperLogLogCollector collector) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.add(CardinalityAggregator.hashFn.hashLong(selector.getLong()).asBytes()); } } }