Java Code Examples for org.apache.kylin.common.util.BytesUtil#compareByteUnsigned()
The following examples show how to use
org.apache.kylin.common.util.BytesUtil#compareByteUnsigned() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CoprocessorProjector.java From Kylin with Apache License 2.0 | 6 votes |
@Override public int compareTo(AggrKey o) { int comp = this.length() - o.length(); if (comp != 0) return comp; int n = this.length(); for (int i = 0, j = offset, k = o.offset; i < n; i++, j++, k++) { if (groupByMask[i] != 0) { comp = BytesUtil.compareByteUnsigned(this.data[j], o.data[k]); if (comp != 0) return comp; } } return 0; }
Example 2
Source File: AggrKey.java From kylin-on-parquet-v2 with Apache License 2.0 | 5 votes |
@Override public int compareTo(AggrKey o) { int comp = this.length() - o.length(); if (comp != 0) return comp; for (int i = 0; i < groupByMaskSet.length; i++) { comp = BytesUtil.compareByteUnsigned(this.data[this.offset + groupByMaskSet[i]], o.data[o.offset + groupByMaskSet[i]]); if (comp != 0) return comp; } return 0; }
Example 3
Source File: AggrKey.java From kylin with Apache License 2.0 | 5 votes |
@Override public int compareTo(AggrKey o) { int comp = this.length() - o.length(); if (comp != 0) return comp; for (int i = 0; i < groupByMaskSet.length; i++) { comp = BytesUtil.compareByteUnsigned(this.data[this.offset + groupByMaskSet[i]], o.data[o.offset + groupByMaskSet[i]]); if (comp != 0) return comp; } return 0; }
Example 4
Source File: AppendDictSlice.java From kylin-on-parquet-v2 with Apache License 2.0 | 4 votes |
/** * returns a code point from [0, nValues), preserving order of value * * @param n -- the offset of current node * @param inp -- input value bytes to lookup * @param o -- offset in the input value bytes matched so far * @param inpEnd -- end of input * @param roundingFlag -- =0: return -1 if not found * -- <0: return closest smaller if not found, return -1 * -- >0: return closest bigger if not found, return nValues */ private int lookupSeqNoFromValue(int n, byte[] inp, int o, int inpEnd, int roundingFlag) { while (true) { // match the current node int p = n + firstByteOffset; // start of node's value int end = p + BytesUtil.readUnsigned(trieBytes, p - 1, 1); // end of node's value for (; p < end && o < inpEnd; p++, o++) { // note matching start from [0] if (trieBytes[p] != inp[o]) { return -1; // mismatch } } // node completely matched, is input all consumed? boolean isEndOfValue = checkFlag(n, BIT_IS_END_OF_VALUE); if (o == inpEnd) { return p == end && isEndOfValue ? BytesUtil.readUnsigned(trieBytes, end, sizeOfId) : -1; } // find a child to continue int c = headSize + (int) (BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); if (c == headSize) // has no children return -1; byte inpByte = inp[o]; int comp; while (true) { p = c + firstByteOffset; comp = BytesUtil.compareByteUnsigned(trieBytes[p], inpByte); if (comp == 0) { // continue in the matching child, reset n and loop again n = c; break; } else if (comp < 0) { // try next child if (checkFlag(c, BIT_IS_LAST_CHILD)) return -1; c = p + BytesUtil.readUnsigned(trieBytes, p - 1, 1) + (checkFlag(c, BIT_IS_END_OF_VALUE) ? sizeOfId : 0); } else { // children are ordered by their first value byte return -1; } } } }
Example 5
Source File: AppendDictSlice.java From kylin with Apache License 2.0 | 4 votes |
/** * returns a code point from [0, nValues), preserving order of value * * @param n -- the offset of current node * @param inp -- input value bytes to lookup * @param o -- offset in the input value bytes matched so far * @param inpEnd -- end of input * @param roundingFlag -- =0: return -1 if not found * -- <0: return closest smaller if not found, return -1 * -- >0: return closest bigger if not found, return nValues */ private int lookupSeqNoFromValue(int n, byte[] inp, int o, int inpEnd, int roundingFlag) { while (true) { // match the current node int p = n + firstByteOffset; // start of node's value int end = p + BytesUtil.readUnsigned(trieBytes, p - 1, 1); // end of node's value for (; p < end && o < inpEnd; p++, o++) { // note matching start from [0] if (trieBytes[p] != inp[o]) { return -1; // mismatch } } // node completely matched, is input all consumed? boolean isEndOfValue = checkFlag(n, BIT_IS_END_OF_VALUE); if (o == inpEnd) { return p == end && isEndOfValue ? BytesUtil.readUnsigned(trieBytes, end, sizeOfId) : -1; } // find a child to continue int c = headSize + (int) (BytesUtil.readLong(trieBytes, n, sizeChildOffset) & childOffsetMask); if (c == headSize) // has no children return -1; byte inpByte = inp[o]; int comp; while (true) { p = c + firstByteOffset; comp = BytesUtil.compareByteUnsigned(trieBytes[p], inpByte); if (comp == 0) { // continue in the matching child, reset n and loop again n = c; break; } else if (comp < 0) { // try next child if (checkFlag(c, BIT_IS_LAST_CHILD)) return -1; c = p + BytesUtil.readUnsigned(trieBytes, p - 1, 1) + (checkFlag(c, BIT_IS_END_OF_VALUE) ? sizeOfId : 0); } else { // children are ordered by their first value byte return -1; } } } }