public static Expression kvColumn(PColumn c) { return new KeyValueColumnExpression(c); }
if (kvExp.evaluate(tuple, ptr)) { ListIterator<Cell> itr = result.listIterator(); while (itr.hasNext()) { Cell kv = itr.next(); if (Bytes.equals(kvExp.getColumnFamily(), 0, kvExp.getColumnFamily().length, kv.getFamilyArray(), kv.getFamilyOffset(), kv.getFamilyLength()) && Bytes.equals(kvExp.getColumnQualifier(), 0, kvExp.getColumnQualifier().length, kv.getQualifierArray(), kv.getQualifierOffset(), kv.getQualifierLength())) {
@Override public <T> T accept(ExpressionVisitor<T> visitor) { //FIXME: this is ugly but can't think of a good solution. if (visitor instanceof ViewWhereExpressionVisitor) { return visitor.visit(this); } else { return super.accept(visitor); } }
@Override public Void visit(KeyValueColumnExpression expression) { cf = expression.getColumnFamily(); cq = expression.getColumnQualifier(); return null; } };
@Override public Void visit(KeyValueColumnExpression expression) { if (indexedColumns.add(new ColumnReference(expression.getColumnFamily(), expression.getColumnQualifier()))) { indexedColumnTypes.add(expression.getDataType()); } return null; } };
PTable.ImmutableStorageScheme scheme = EncodedColumnsUtil.getImmutableStorageScheme(scan); KeyValueColumnExpression kvExp = scheme != PTable.ImmutableStorageScheme.ONE_CELL_PER_COLUMN ? new SingleCellColumnExpression(scheme) : new KeyValueColumnExpression(); kvExp.readFields(input); arrayKVRefs.add(kvExp);
? new SingleCellColumnExpression(nameColumn, "NAME", table.getEncodingScheme(), table.getImmutableStorageScheme()) : new KeyValueColumnExpression(nameColumn); ImmutableBytesPtr ptr = new ImmutableBytesPtr(); colExpression.evaluate(new ResultTuple(rs), ptr); assertEquals(new ImmutableBytesPtr(PVarchar.INSTANCE.toBytes("v1")), ptr); rs = scanner.next(); if (colExpression.evaluate(new ResultTuple(rs), ptr)) { assertEquals(new ImmutableBytesPtr(ByteUtil.EMPTY_BYTE_ARRAY), ptr);
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { if (!super.evaluate(tuple, ptr)) { return false; } else if (ptr.getLength() == 0) { return true; } // the first position is reserved and we offset maxEncodedColumnQualifier by ENCODED_CQ_COUNTER_INITIAL_VALUE (which is the minimum encoded column qualifier) int index = decodedColumnQualifier-QueryConstants.ENCODED_CQ_COUNTER_INITIAL_VALUE+1; // Given a ptr to the entire array, set ptr to point to a particular element within that array ColumnValueDecoder encoderDecoder = immutableStorageScheme.getDecoder(); return encoderDecoder.decode(ptr, index); }
public void increment(KeyValueColumnExpression column) { switch (count) { case NONE: count = Count.SINGLE; this.column = column; break; case SINGLE: count = column.equals(this.column) ? Count.SINGLE : Count.MULTIPLE; break; case MULTIPLE: break; } }
@Override public void write(DataOutput output) throws IOException { super.write(output); WritableUtils.writeVInt(output, decodedColumnQualifier); WritableUtils.writeVInt(output, -encodingScheme.ordinal()); //negative since PHOENIX-4432 WritableUtils.writeVInt(output, immutableStorageScheme.getSerializedMetadataValue()); }
@Override public int hashCode() { return keyValueColumnExpression.hashCode(); }
@Override public void readFields(DataInput input) throws IOException { super.readFields(input); this.decodedColumnQualifier = WritableUtils.readVInt(input); int serializedEncodingScheme = WritableUtils.readVInt(input); // prior to PHOENIX-4432 we weren't writing out the immutableStorageScheme in write(), // so we use the decodedColumnQualifier sign to determine whether it's there if (Integer.signum(serializedEncodingScheme) == -1) { this.immutableStorageScheme = ImmutableStorageScheme .fromSerializedValue((byte) WritableUtils.readVInt(input)); serializedEncodingScheme = -serializedEncodingScheme; } else { this.immutableStorageScheme = ImmutableStorageScheme.SINGLE_CELL_ARRAY_WITH_OFFSETS; } this.encodingScheme = QualifierEncodingScheme.values()[serializedEncodingScheme]; setKeyValueExpression(); }
} else { byte[] emptyCF = SchemaUtil.getEmptyColumnFamily(table); if (Bytes.compareTo(emptyCF, counter.getColumn().getColumnFamily()) != 0) { essentialCF = emptyCF; count = Counter.Count.MULTIPLE;
@Override public Void visit(KeyValueColumnExpression expression) { inputTuple.addColumn(expression.getColumnFamily(), expression.getColumnQualifier()); return null; } };
@Override public Void visit(KeyValueColumnExpression expression) { if (indexedColumns.add(new ColumnReference(expression.getColumnFamily(), expression.getColumnQualifier()))) { indexedColumnTypes.add(expression.getDataType()); } return null; } };
PTable.ImmutableStorageScheme scheme = EncodedColumnsUtil.getImmutableStorageScheme(scan); KeyValueColumnExpression kvExp = scheme != PTable.ImmutableStorageScheme.ONE_CELL_PER_COLUMN ? new SingleCellColumnExpression(scheme) : new KeyValueColumnExpression(); kvExp.readFields(input); arrayKVRefs.add(kvExp);
localIndex2.getImmutableStorageScheme()); ImmutableBytesPtr ptr = new ImmutableBytesPtr(); colExpression.evaluate(new ResultTuple(result), ptr); colValue = ptr.copyBytesIfNecessary();
@Override public boolean equals(Object obj) { if (obj.getClass() != SingleCellColumnExpression.class) return false; return keyValueColumnExpression.equals(((SingleCellColumnExpression)obj).getKeyValueExpression()); }
@Override public void write(DataOutput output) throws IOException { super.write(output); WritableUtils.writeVInt(output, decodedColumnQualifier); WritableUtils.writeVInt(output, -encodingScheme.ordinal()); //negative since PHOENIX-4432 WritableUtils.writeVInt(output, immutableStorageScheme.getSerializedMetadataValue()); }
@Override public int hashCode() { return keyValueColumnExpression.hashCode(); }