blob: 9f9c776b3cc6da201669c7f58bd19936e068606c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FuzzyRowFilter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="FuzzyRowFilter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":9,"i8":10,"i9":10,"i10":9,"i11":10,"i12":10,"i13":9,"i14":9,"i15":9,"i16":9,"i17":10,"i18":10,"i19":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FuzzyRowFilter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" target="_top">Frames</a></li>
<li><a href="FuzzyRowFilter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.filter</div>
<h2 title="Class FuzzyRowFilter" class="title">Class FuzzyRowFilter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">org.apache.hadoop.hbase.filter.Filter</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">org.apache.hadoop.hbase.filter.FilterBase</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.filter.FuzzyRowFilter</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Public
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.59">FuzzyRowFilter</a>
extends <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></pre>
<div class="block">This is optimized version of a standard FuzzyRowFilter Filters data based on fuzzy row key.
Performs fast-forwards during scanning. It takes pairs (row key, fuzzy info) to match row keys.
Where fuzzy info is a byte array with 0 or 1 as its values:
<ul>
<li>0 - means that this byte in provided row key is fixed, i.e. row key's byte at same position
must match</li>
<li>1 - means that this byte in provided row key is NOT fixed, i.e. row key's byte at this
position can be different from the one in provided row key</li>
</ul>
Example: Let's assume row key format is userId_actionId_year_month. Length of userId is fixed and
is 4, length of actionId is 2 and year and month are 4 and 2 bytes long respectively. Let's
assume that we need to fetch all users that performed certain action (encoded as "99") in Jan of
any year. Then the pair (row key, fuzzy info) would be the following: row key = "????_99_????_01"
(one can use any value instead of "?") fuzzy info =
"\x01\x01\x01\x01\x00\x00\x00\x00\x01\x01\x01\x01\x00\x00\x00" I.e. fuzzy info tells the matching
mask is "????_99_????_01", where at ? can be any value.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.Order</a></span></code>
<div class="block">Abstracts directional comparisons based on scan direction.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter.RowTracker</a></span></code>
<div class="block">If we have multiple fuzzy keys, row tracker should improve overall performance.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.filter.Filter">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#done">done</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#fuzzyKeysData">fuzzyKeysData</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#lastFoundIndex">lastFoundIndex</a></span></code>
<div class="block">The index of a last successfully found matching fuzzy string (in fuzzyKeysData).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter.RowTracker</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#tracker">tracker</a></span></code>
<div class="block">Row tracker (keeps all next rows after SEEK_NEXT_USING_HINT was returned)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#UNSAFE_UNALIGNED">UNSAFE_UNALIGNED</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.filter.Filter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#reversed">reversed</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#FuzzyRowFilter-java.util.List-">FuzzyRowFilter</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;fuzzyKeysData)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#areSerializedFieldsEqual-org.apache.hadoop.hbase.filter.Filter-">areSerializedFieldsEqual</a></span>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;o)</code>
<div class="block">Default implementation so that writers of custom filters aren't forced to implement.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterAllRemaining--">filterAllRemaining</a></span>()</code>
<div class="block">Filters that never filter all remaining can inherit this implementation that
never stops the filter early.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>
<div class="block">A way to filter based on the column family, column qualifier and/or the column value.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</code>
<div class="block">Filters that are not sure which key must be next seeked to, can inherit
this implementation that, by default, returns a null Cell.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextForFuzzyRule-boolean-byte:A-byte:A-byte:A-">getNextForFuzzyRule</a></span>(boolean&nbsp;reverse,
byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextForFuzzyRule-boolean-byte:A-int-int-byte:A-byte:A-">getNextForFuzzyRule</a></span>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>(package private) static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#getNextForFuzzyRule-byte:A-byte:A-byte:A-">getNextForFuzzyRule</a></span>(byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#isPreprocessedMask-byte:A-">isPreprocessedMask</a></span>(byte[]&nbsp;mask)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#parseFrom-byte:A-">parseFrom</a></span>(byte[]&nbsp;pbBytes)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#preprocessMask-byte:A-">preprocessMask</a></span>(byte[]&nbsp;mask)</code>
<div class="block">We need to preprocess mask array, as since we treat 2's as unfixed positions and -1 (0xff) as
fixed positions</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#preprocessSearchKey-org.apache.hadoop.hbase.util.Pair-">preprocessSearchKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&nbsp;p)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#satisfies-boolean-byte:A-byte:A-byte:A-">satisfies</a></span>(boolean&nbsp;reverse,
byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#satisfies-boolean-byte:A-int-int-byte:A-byte:A-">satisfies</a></span>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#satisfies-byte:A-byte:A-byte:A-">satisfies</a></span>(byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#satisfiesNoUnsafe-boolean-byte:A-int-int-byte:A-byte:A-">satisfiesNoUnsafe</a></span>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#toByteArray--">toByteArray</a></span>()</code>
<div class="block">Return length 0 byte array for Filters that don't require special serialization</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#toString--">toString</a></span>()</code>
<div class="block">Return filter's info for debugging and logging purpose.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#trimTrailingZeroes-byte:A-byte:A-int-">trimTrailingZeroes</a></span>(byte[]&nbsp;result,
byte[]&nbsp;fuzzyKeyMeta,
int&nbsp;toInc)</code>
<div class="block">For forward scanner, next cell hint should not contain any trailing zeroes
unless they are part of fuzzyKeyMeta
hint = '\x01\x01\x01\x00\x00'
will skip valid row '\x01\x01\x01'</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.filter.FilterBase">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#createFilterFromArguments-java.util.ArrayList-">createFilterFromArguments</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#filterRow--">filterRow</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#filterRowCells-java.util.List-">filterRowCells</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#filterRowKey-org.apache.hadoop.hbase.Cell-">filterRowKey</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#hasFilterRow--">hasFilterRow</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#isFamilyEssential-byte:A-">isFamilyEssential</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#reset--">reset</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#transformCell-org.apache.hadoop.hbase.Cell-">transformCell</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.filter.Filter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#isReversed--">isReversed</a>, <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#setReversed-boolean-">setReversed</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="UNSAFE_UNALIGNED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNSAFE_UNALIGNED</h4>
<pre>private static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.60">UNSAFE_UNALIGNED</a></pre>
</li>
</ul>
<a name="fuzzyKeysData">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fuzzyKeysData</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.61">fuzzyKeysData</a></pre>
</li>
</ul>
<a name="done">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>done</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.62">done</a></pre>
</li>
</ul>
<a name="lastFoundIndex">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lastFoundIndex</h4>
<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.69">lastFoundIndex</a></pre>
<div class="block">The index of a last successfully found matching fuzzy string (in fuzzyKeysData). We will start
matching next KV with this one. If they do not match then we will return back to the one-by-one
iteration over fuzzyKeysData.</div>
</li>
</ul>
<a name="tracker">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>tracker</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.RowTracker.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter.RowTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.74">tracker</a></pre>
<div class="block">Row tracker (keeps all next rows after SEEK_NEXT_USING_HINT was returned)</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FuzzyRowFilter-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FuzzyRowFilter</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.76">FuzzyRowFilter</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;fuzzyKeysData)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="preprocessSearchKey-org.apache.hadoop.hbase.util.Pair-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>preprocessSearchKey</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.102">preprocessSearchKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&nbsp;p)</pre>
</li>
</ul>
<a name="preprocessMask-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>preprocessMask</h4>
<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.123">preprocessMask</a>(byte[]&nbsp;mask)</pre>
<div class="block">We need to preprocess mask array, as since we treat 2's as unfixed positions and -1 (0xff) as
fixed positions</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mask</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>mask array</dd>
</dl>
</li>
</ul>
<a name="isPreprocessedMask-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPreprocessedMask</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.139">isPreprocessedMask</a>(byte[]&nbsp;mask)</pre>
</li>
</ul>
<a name="filterCell-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterCell</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.149">filterCell</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">Filter</a></code></span></div>
<div class="block">A way to filter based on the column family, column qualifier and/or the column value. Return
code is described below. This allows filters to filter only certain number of columns, then
terminate without matching ever column.
If filterRowKey returns true, filterCell needs to be consistent with it.
filterCell can assume that filterRowKey has already been called for the row.
If your filter returns <code>ReturnCode.NEXT_ROW</code>, it should return
<code>ReturnCode.NEXT_ROW</code> until <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#reset--"><code>Filter.reset()</code></a> is called just in case the caller calls
for the next row.
Concrete implementers can signal a failure condition in their code by throwing an
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-">filterCell</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the Cell in question</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>code as described below</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><code>Filter.ReturnCode</code></a></dd>
</dl>
</li>
</ul>
<a name="getNextCellHint-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextCellHint</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.175">getNextCellHint</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentCell)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">FilterBase</a></code></span></div>
<div class="block">Filters that are not sure which key must be next seeked to, can inherit
this implementation that, by default, returns a null Cell.
If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
the next key it must seek to. After receiving the match code SEEK_NEXT_USING_HINT, the
QueryMatcher would call this function to find out which key it must next seek to.
Concrete implementers can signal a failure condition in their code by throwing an
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#getNextCellHint-org.apache.hadoop.hbase.Cell-">getNextCellHint</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>KeyValue which must be next seeked. return null if the filter is not sure which key to
seek to next.</dd>
</dl>
</li>
</ul>
<a name="filterAllRemaining--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filterAllRemaining</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.251">filterAllRemaining</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#filterAllRemaining--">FilterBase</a></code></span></div>
<div class="block">Filters that never filter all remaining can inherit this implementation that
never stops the filter early.
If this returns true, the scan will terminate.
Concrete implementers can signal a failure condition in their code by throwing an
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io"><code>IOException</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#filterAllRemaining--">filterAllRemaining</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true to end scan, false to continue.</dd>
</dl>
</li>
</ul>
<a name="toByteArray--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.259">toByteArray</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#toByteArray--">FilterBase</a></code></span></div>
<div class="block">Return length 0 byte array for Filters that don't require special serialization</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#toByteArray--">toByteArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The filter serialized using pb</dd>
</dl>
</li>
</ul>
<a name="parseFrom-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseFrom</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.276">parseFrom</a>(byte[]&nbsp;pbBytes)
throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions">DeserializationException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pbBytes</code> - A pb serialized <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>FuzzyRowFilter</code></a> instance</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An instance of <a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>FuzzyRowFilter</code></a> made from <code>bytes</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/exceptions/DeserializationException.html" title="class in org.apache.hadoop.hbase.exceptions">DeserializationException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#toByteArray--"><code>toByteArray()</code></a></dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.295">toString</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#toString--">FilterBase</a></code></span></div>
<div class="block">Return filter's info for debugging and logging purpose.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#toString--">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></code></dd>
</dl>
</li>
</ul>
<a name="satisfies-byte:A-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfies</h4>
<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.318">satisfies</a>(byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="satisfies-boolean-byte:A-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfies</h4>
<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.322">satisfies</a>(boolean&nbsp;reverse,
byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="satisfies-boolean-byte:A-int-int-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfies</h4>
<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.327">satisfies</a>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="satisfiesNoUnsafe-boolean-byte:A-int-int-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>satisfiesNoUnsafe</h4>
<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.391">satisfiesNoUnsafe</a>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="getNextForFuzzyRule-byte:A-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextForFuzzyRule</h4>
<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.437">getNextForFuzzyRule</a>(byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="getNextForFuzzyRule-boolean-byte:A-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextForFuzzyRule</h4>
<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.441">getNextForFuzzyRule</a>(boolean&nbsp;reverse,
byte[]&nbsp;row,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
</li>
</ul>
<a name="getNextForFuzzyRule-boolean-byte:A-int-int-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextForFuzzyRule</h4>
<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.527">getNextForFuzzyRule</a>(boolean&nbsp;reverse,
byte[]&nbsp;row,
int&nbsp;offset,
int&nbsp;length,
byte[]&nbsp;fuzzyKeyBytes,
byte[]&nbsp;fuzzyKeyMeta)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>greater byte array than given (row) which satisfies the fuzzy rule if it exists, null
otherwise</dd>
</dl>
</li>
</ul>
<a name="trimTrailingZeroes-byte:A-byte:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trimTrailingZeroes</h4>
<pre>private static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.603">trimTrailingZeroes</a>(byte[]&nbsp;result,
byte[]&nbsp;fuzzyKeyMeta,
int&nbsp;toInc)</pre>
<div class="block">For forward scanner, next cell hint should not contain any trailing zeroes
unless they are part of fuzzyKeyMeta
hint = '\x01\x01\x01\x00\x00'
will skip valid row '\x01\x01\x01'</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - </dd>
<dd><code>fuzzyKeyMeta</code> - </dd>
<dd><code>toInc</code> - - position of incremented byte</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>trimmed version of result</dd>
</dl>
</li>
</ul>
<a name="areSerializedFieldsEqual-org.apache.hadoop.hbase.filter.Filter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areSerializedFieldsEqual</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.620">areSerializedFieldsEqual</a>(<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;o)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#areSerializedFieldsEqual-org.apache.hadoop.hbase.filter.Filter-">FilterBase</a></code></span></div>
<div class="block">Default implementation so that writers of custom filters aren't forced to implement.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html#areSerializedFieldsEqual-org.apache.hadoop.hbase.filter.Filter-">areSerializedFieldsEqual</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if and only if the fields of the filter that are serialized are equal to the
corresponding fields in other. Used for testing.</dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.638">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/FuzzyRowFilter.html#line.643">hashCode</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FuzzyRowFilter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" target="_top">Frames</a></li>
<li><a href="FuzzyRowFilter.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>