@Override public final boolean existDatabase(final String databaseName) { try { final BlockingInterface stub = getStub(); final ReturnState state = stub.existDatabase(null, ProtoUtil.convertString(databaseName)); if (isThisError(state, UNDEFINED_DATABASE)) { return false; } ensureOk(state); return true; } catch (ServiceException e) { throw new RuntimeException(e); } }
public Map<String, String> getAllSessionVariables() { NettyClientBase client = getTajoMasterConnection(); checkSessionAndGet(client); BlockingInterface stub = client.getStub(); KeyValueSetResponse response; try { response = stub.getAllSessionVariables(null, sessionId); } catch (ServiceException e) { throw new RuntimeException(e); } ensureOk(response.getState()); return ProtoUtil.convertToMap(response.getValue()); }
@Override public LogicalNode visitEvalExpr(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, EvalExprNode exprEval, Stack<LogicalNode> stack) throws TajoException { PlanProto.EvalExprNode.Builder exprEvalBuilder = PlanProto.EvalExprNode.newBuilder(); exprEvalBuilder.addAllTargets( ProtoUtil.<PlanProto.Target>toProtoObjects(exprEval.getTargets().toArray(new ProtoObject[exprEval.getTargets().size()]))); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, exprEval); nodeBuilder.setExprEval(exprEvalBuilder); context.treeBuilder.addNodes(nodeBuilder); return exprEval; }
break; case UNSET_PROPERTY: Collection<String> strings = ProtoUtil.convertStrings(alterTableProto.getUnsetPropertyKeys()); alterTable.setUnsetPropertyKeys(strings.toArray(new String[strings.size()])); break;
@Override public CreateSessionResponse createSession(RpcController controller, CreateSessionRequest request) throws ServiceException { try { // create a new session with base database name. If no database name is give, we use default database. String databaseName = request.hasBaseDatabaseName() ? request.getBaseDatabaseName() : DEFAULT_DATABASE_NAME; if (!context.getCatalog().existDatabase(databaseName)) { LOG.info("Session creation is canceled due to absent base database \"" + databaseName + "\"."); throw new UndefinedDatabaseException(databaseName); } String sessionId = context.getSessionManager().createSession(request.getUsername(), databaseName); CreateSessionResponse.Builder builder = CreateSessionResponse.newBuilder(); builder.setState(OK); builder.setSessionId(TajoIdProtos.SessionIdProto.newBuilder().setId(sessionId).build()); builder.setSessionVars(ProtoUtil.convertFromMap(context.getSessionManager().getAllVariables(sessionId))); return builder.build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); CreateSessionResponse.Builder builder = CreateSessionResponse.newBuilder(); builder.setState(returnError(t)); return builder.build(); } }
builder.setUnsetPropertyKeys(ProtoUtil.convertStrings(unsetPropertyKeys));
@Override public CreateSessionResponse createSession(RpcController controller, CreateSessionRequest request) throws ServiceException { try { // create a new session with base database name. If no database name is give, we use default database. String databaseName = request.hasBaseDatabaseName() ? request.getBaseDatabaseName() : DEFAULT_DATABASE_NAME; if (!context.getCatalog().existDatabase(databaseName)) { LOG.info("Session creation is canceled due to absent base database \"" + databaseName + "\"."); throw new UndefinedDatabaseException(databaseName); } String sessionId = context.getSessionManager().createSession(request.getUsername(), databaseName); CreateSessionResponse.Builder builder = CreateSessionResponse.newBuilder(); builder.setState(OK); builder.setSessionId(TajoIdProtos.SessionIdProto.newBuilder().setId(sessionId).build()); builder.setSessionVars(ProtoUtil.convertFromMap(context.getSessionManager().getAllVariables(sessionId))); return builder.build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); CreateSessionResponse.Builder builder = CreateSessionResponse.newBuilder(); builder.setState(returnError(t)); return builder.build(); } }
@Override public final boolean existDatabase(final String databaseName) { try { final BlockingInterface stub = getStub(); final ReturnState state = stub.existDatabase(null, ProtoUtil.convertString(databaseName)); if (isThisError(state, UNDEFINED_DATABASE)) { return false; } ensureOk(state); return true; } catch (ServiceException e) { throw new RuntimeException(e); } }
public Map<String, String> getAllSessionVariables() { NettyClientBase client = getTajoMasterConnection(); checkSessionAndGet(client); BlockingInterface stub = client.getStub(); KeyValueSetResponse response; try { response = stub.getAllSessionVariables(null, sessionId); } catch (ServiceException e) { throw new RuntimeException(e); } ensureOk(response.getState()); return ProtoUtil.convertToMap(response.getValue()); }
private PlanProto.LogicalNode.Builder buildGroupby(SerializeContext context, GroupbyNode node) throws TajoException { int [] childIds = registerGetChildIds(context, node); PlanProto.GroupbyNode.Builder groupbyBuilder = PlanProto.GroupbyNode.newBuilder(); groupbyBuilder.setChildSeq(childIds[0]); groupbyBuilder.setDistinct(node.isDistinct()); if (node.groupingKeyNum() > 0) { groupbyBuilder.addAllGroupingKeys( ProtoUtil.<CatalogProtos.ColumnProto>toProtoObjects(node.getGroupingColumns())); } if (node.hasAggFunctions()) { groupbyBuilder.addAllAggFunctions( ProtoUtil.<PlanProto.EvalNodeTree>toProtoObjects(node.getAggFunctions().toArray(new ProtoObject[node.getAggFunctions().size()]))); } if (node.hasTargets()) { groupbyBuilder.addAllTargets(ProtoUtil.<PlanProto.Target>toProtoObjects(node.getTargets().toArray(new ProtoObject[node.getTargets().size()]))); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setGroupby(groupbyBuilder); return nodeBuilder; }
case UNSET_PROPERTY: alterTableBuilder.setSetType(PlanProto.AlterTableNode.Type.UNSET_PROPERTY); alterTableBuilder.setUnsetPropertyKeys(ProtoUtil.convertStrings(Arrays.asList(node.getUnsetPropertyKeys()))); break; case ADD_PARTITION:
response.setSessionVars(ProtoUtil.convertFromMap(session.getAllVariables()));
@Override public final boolean existTablespace(final String tablespaceName) { try { final BlockingInterface stub = getStub(); final ReturnState state = stub.existTablespace(null, ProtoUtil.convertString(tablespaceName)); if (isThisError(state, UNDEFINED_TABLESPACE)) { return false; } ensureOk(state); return true; } catch (ServiceException e) { throw new RuntimeException(e); } }
@Override public boolean updateQuery(final String sql) throws TajoException { final BlockingInterface stub = conn.getTMStub(); final QueryRequest request = buildQueryRequest(sql, false); UpdateQueryResponse response; try { response = stub.updateQuery(null, request); } catch (ServiceException e) { throw new RuntimeException(e); } throwIfError(response.getState()); conn.updateSessionVarsCache(ProtoUtil.convertToMap(response.getSessionVars())); return true; }
@Override public LogicalNode visitEvalExpr(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, EvalExprNode exprEval, Stack<LogicalNode> stack) throws TajoException { PlanProto.EvalExprNode.Builder exprEvalBuilder = PlanProto.EvalExprNode.newBuilder(); exprEvalBuilder.addAllTargets( ProtoUtil.<PlanProto.Target>toProtoObjects(exprEval.getTargets())); PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, exprEval); nodeBuilder.setExprEval(exprEvalBuilder); context.treeBuilder.addNodes(nodeBuilder); return exprEval; }
response.setSessionVars(ProtoUtil.convertFromMap(session.getAllVariables()));
@Override public final boolean existTablespace(final String tablespaceName) { try { final BlockingInterface stub = getStub(); final ReturnState state = stub.existTablespace(null, ProtoUtil.convertString(tablespaceName)); if (isThisError(state, UNDEFINED_TABLESPACE)) { return false; } ensureOk(state); return true; } catch (ServiceException e) { throw new RuntimeException(e); } }
@Override public SubmitQueryResponse executeQuery(final String sql) { final BlockingInterface stub = conn.getTMStub(); final QueryRequest request = buildQueryRequest(sql, false); SubmitQueryResponse response; try { response = stub.submitQuery(null, request); } catch (ServiceException e) { throw new RuntimeException(e); } if (isSuccess(response.getState())) { conn.updateSessionVarsCache(ProtoUtil.convertToMap(response.getSessionVars())); } return response; }
@Override public LogicalNode visitWindowAgg(SerializeContext context, LogicalPlan plan, LogicalPlan.QueryBlock block, WindowAggNode windowAgg, Stack<LogicalNode> stack) throws TajoException { super.visitWindowAgg(context, plan, block, windowAgg, stack); int [] childIds = registerGetChildIds(context, windowAgg); PlanProto.WindowAggNode.Builder windowAggBuilder = PlanProto.WindowAggNode.newBuilder(); windowAggBuilder.setChildSeq(childIds[0]); if (windowAgg.hasPartitionKeys()) { windowAggBuilder.addAllPartitionKeys( ProtoUtil.<CatalogProtos.ColumnProto>toProtoObjects(windowAgg.getPartitionKeys())); } if (windowAgg.hasAggFunctions()) { windowAggBuilder.addAllWindowFunctions( ProtoUtil.<PlanProto.EvalNodeTree>toProtoObjects(windowAgg.getWindowFunctions())); } windowAggBuilder.setDistinct(windowAgg.isDistinct()); if (windowAgg.hasSortSpecs()) { windowAggBuilder.addAllSortSpecs( ProtoUtil.<CatalogProtos.SortSpecProto>toProtoObjects(windowAgg.getSortSpecs())); } if (windowAgg.hasTargets()) { windowAggBuilder.addAllTargets( ProtoUtil.<PlanProto.Target>toProtoObjects(windowAgg.getTargets().toArray(new ProtoObject[windowAgg.getTargets().size()]))); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, windowAgg); nodeBuilder.setWindowAgg(windowAggBuilder); context.treeBuilder.addNodes(nodeBuilder); return windowAgg; }
@Override public final Collection<String> getAllTableNames(final String databaseName) { try { final BlockingInterface stub = getStub(); final StringListResponse response = stub.getAllTableNames(null, ProtoUtil.convertString(databaseName)); ensureOk(response.getState()); return response.getValuesList(); } catch (ServiceException e) { throw new RuntimeException(e); } }