@Test public void testStringLikeMultiByte() throws HiveException { FilterStringColLikeStringScalar expr; VectorizedRowBatch batch; // verify that a multi byte LIKE expression matches a matching string batch = makeStringBatchMixedCharSize(); expr = new FilterStringColLikeStringScalar(0, ('%' + new String(multiByte) + '%').getBytes(StandardCharsets.UTF_8)); expr.transientInit(); expr.evaluate(batch); Assert.assertEquals(1, batch.size); // verify that a multi byte LIKE expression doesn't match a non-matching string batch = makeStringBatchMixedCharSize(); expr = new FilterStringColLikeStringScalar(0, ('%' + new String(multiByte) + 'x').getBytes(StandardCharsets.UTF_8)); expr.transientInit(); expr.evaluate(batch); Assert.assertEquals(0, batch.size); }
FilterStringColLikeStringScalar expr = new FilterStringColLikeStringScalar(0, mixPercentPattern); expr.transientInit(); expr.evaluate(batch); expr.evaluate(batch); initialBatchSize = batch.size; batch.cols[0].isRepeating = true; expr.evaluate(batch); batch.cols[0].isRepeating = true; batch.cols[0].isNull[0] = true; expr.evaluate(batch); batch.cols[0].isRepeating = true; batch.cols[0].noNulls = true; expr.evaluate(batch);
expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.BeginChecker.class, expr.checker.getClass()); expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.EndChecker.class, expr.checker.getClass()); expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.MiddleChecker.class, expr.checker.getClass()); expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.ChainedChecker.class, expr.checker.getClass()); expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.ComplexChecker.class, expr.checker.getClass()); expr.evaluate(vrb); Assert.assertEquals(FilterStringColLikeStringScalar.NoneChecker.class, expr.checker.getClass());