You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2015/04/28 02:51:07 UTC
[jira] [Commented] (PHOENIX-1931) IDE compilation errors after UDF
check-in
[ https://issues.apache.org/jira/browse/PHOENIX-1931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14516078#comment-14516078 ]
James Taylor commented on PHOENIX-1931:
---------------------------------------
Also, not sure what to do about the warning that cacheKey is not used here. Should it be used or do you use lockKey instead. I've removed it in the patch I attached. Please commit whatever the right fix is, [~rajeshbabu].
{code}
@Override
public void dropFunction(RpcController controller, DropFunctionRequest request,
RpcCallback<MetaDataResponse> done) {
byte[][] rowKeyMetaData = new byte[2][];
byte[] functionName = null;
try {
List<Mutation> functionMetaData = ProtobufUtil.getMutations(request);
MetaDataUtil.getTenantIdAndFunctionName(functionMetaData, rowKeyMetaData);
byte[] tenantIdBytes = rowKeyMetaData[PhoenixDatabaseMetaData.TENANT_ID_INDEX];
functionName = rowKeyMetaData[PhoenixDatabaseMetaData.FUNTION_NAME_INDEX];
byte[] lockKey = SchemaUtil.getFunctionKey(tenantIdBytes, functionName);
HRegion region = env.getRegion();
MetaDataMutationResult result = checkFunctionKeyInRegion(lockKey, region);
if (result != null) {
done.run(MetaDataMutationResult.toProto(result));
return;
}
List<RowLock> locks = Lists.newArrayList();
long clientTimeStamp = MetaDataUtil.getClientTimeStamp(functionMetaData);
try {
acquireLock(region, lockKey, locks);
ImmutableBytesPtr cacheKey = new FunctionBytesPtr(lockKey);
List<byte[]> keys = new ArrayList<byte[]>(1);
keys.add(lockKey);
List<ImmutableBytesPtr> invalidateList = new ArrayList<ImmutableBytesPtr>();
result = doDropFunction(clientTimeStamp, keys, functionMetaData, invalidateList);
if (result.getMutationCode() != MutationCode.FUNCTION_ALREADY_EXISTS) {
done.run(MetaDataMutationResult.toProto(result));
return;
}
region.mutateRowsWithLocks(functionMetaData, Collections.<byte[]> emptySet());
Cache<ImmutableBytesPtr,PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache();
long currentTime = MetaDataUtil.getClientTimeStamp(functionMetaData);
for(ImmutableBytesPtr ptr: invalidateList) {
metaDataCache.invalidate(ptr);
metaDataCache.put(ptr, newDeletedFunctionMarker(currentTime));
}
done.run(MetaDataMutationResult.toProto(result));
return;
} finally {
region.releaseRowLocks(locks);
}
} catch (Throwable t) {
logger.error("dropFunction failed", t);
ProtobufUtil.setControllerException(controller,
ServerUtil.createIOException(Bytes.toString(functionName), t));
}
}
{code}
> IDE compilation errors after UDF check-in
> -----------------------------------------
>
> Key: PHOENIX-1931
> URL: https://issues.apache.org/jira/browse/PHOENIX-1931
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Rajeshbabu Chintaguntla
>
> Description Resource Path Location Type
> The method getExpressionCtor(Class<? extends FunctionExpression>) from the type FunctionParseNode is never used locally FunctionParseNode.java /phoenix-core/src/main/java/org/apache/phoenix/parse line 119 Java Problem
> The value of the field MetaDataEndpointImpl.TYPE_INDEX is not used MetaDataEndpointImpl.java /phoenix-core/src/main/java/org/apache/phoenix/coprocessor line 347 Java Problem
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)