package com.alibaba.doris.dataserver.store.innodb.db; import java.math.BigInteger; import java.util.Arrays; import java.util.Map; import com.alibaba.doris.common.data.Key; import com.alibaba.doris.common.data.Value; import com.alibaba.doris.dataserver.store.BaseStorage; import com.alibaba.doris.dataserver.store.serialize.KeyValueSerializerFactory; /** * @author long.mal long.mal@alibaba-inc.com */ public abstract class InnoDBBase extends BaseStorage{ protected long getHash(Key key) { return Arrays.hashCode(key.getPhysicalKeyBytes()); } protected Value getValueFromResult(Map<String, Object> row) { byte[] valueBytes = (byte[]) row.get(InnoDBBuilder.FIELD_VALUE); Value value = serializerFactory.decodeValue(valueBytes); value.setTimestamp(getVersionFromResult(row)); return value; } protected byte[] getKeyBytesFromResult(Map<String, Object> row) { return (byte[]) row.get(InnoDBBuilder.FIELD_KEY); } protected String getKeyStringFromResult(Map<String, Object> row) { return new String(getKeyBytesFromResult(row)); } protected long getVersionFromResult(Map<String, Object> row){ BigInteger versionBigInteger = (BigInteger)row.get(InnoDBBuilder.FIELD_VERSION); return versionBigInteger.longValue(); } protected static final KeyValueSerializerFactory serializerFactory = KeyValueSerializerFactory.getInstance(); }