[
https://issues.apache.org/jira/browse/PHOENIX-1287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14363816#comment-14363816
]
ASF GitHub Bot commented on PHOENIX-1287:
-----------------------------------------
Github user JamesRTaylor commented on a diff in the pull request:
https://github.com/apache/phoenix/pull/46#discussion_r26522574
--- Diff:
phoenix-core/src/main/java/org/apache/phoenix/expression/util/regex/JavaRegexWrapper.java
---
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.phoenix.expression.util.regex;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
+import org.apache.phoenix.schema.SortOrder;
+
+import com.google.common.base.Preconditions;
+
+public class JavaRegexWrapper {
+ static class JavaPattern extends AbstractBasePattern {
+
+ private final Pattern pattern;
+ private boolean isLastMatcherStringNull;
+
+ JavaPattern(String patternString) {
+ this(patternString, 0);
+ }
+
+ JavaPattern(String patternString, int flags) {
+ if (patternString != null) {
+ pattern = Pattern.compile(patternString, flags);
+ } else {
+ pattern = null;
+ }
+ isLastMatcherStringNull = false;
+ }
+
+ @Override
+ public AbstractBaseMatcher macher(ImmutableBytesWritable ptr,
SortOrder sortOrder) {
+ Preconditions.checkNotNull(ptr);
+ Preconditions.checkNotNull(sortOrder);
+ String matcherSourceStr =
Utils.immutableBytesWritableToString(ptr, sortOrder);
+ if (matcherSourceStr == null) {
+ isLastMatcherStringNull = true;
+ return null;
+ }
+ isLastMatcherStringNull = false;
+ return new JavaMatcher(pattern.matcher(matcherSourceStr));
+ }
+
+ @Override
+ public boolean isPatternStringNull() {
--- End diff --
Do we need this method and isMatcherSourceStrNull here, or can we do this
check in the LikeExpression.evaluate method?
> Use the joni byte[] regex engine in place of j.u.regex
> ------------------------------------------------------
>
> Key: PHOENIX-1287
> URL: https://issues.apache.org/jira/browse/PHOENIX-1287
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Shuxiong Ye
> Labels: gsoc2015
>
> See HBASE-11907. We'd get a 2x perf benefit plus it's driven off of byte[]
> instead of strings.Thanks for the pointer, [~apurtell].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)