@Override public ReturnState existIndexesByTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String databaseName = request.getDatabaseName(); String tableName = request.getTableName(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexesByTable(databaseName, tableName) ? OK : errUndefinedIndex(tableName); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState existIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNames = request.getColumnNamesList(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexByColumns(databaseName, tableName, columnNames.toArray(new String[columnNames.size()])) ? OK : errUndefinedIndex(tableName, columnNames); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState existIndexesByTable(RpcController controller, TableIdentifierProto request) throws ServiceException { String databaseName = request.getDatabaseName(); String tableName = request.getTableName(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexesByTable(databaseName, tableName) ? OK : errUndefinedIndex(tableName); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public ReturnState existIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNames = request.getColumnNamesList(); try { // linked meta data do not support index. The request will be failed. if (linkedMetadataManager.existsDatabase(databaseName)) { return errUndefinedIndex(tableName); } } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } rlock.lock(); try { return store.existIndexByColumns(databaseName, tableName, columnNames.toArray(new String[columnNames.size()])) ? OK : errUndefinedIndex(tableName, columnNames); } catch (Throwable t) { printStackTraceIfError(LOG, t); return returnError(t); } finally { rlock.unlock(); } }
@Override public IndexResponse getIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNamesList = request.getColumnNamesList(); String[] columnNames = new String[columnNamesList.size()]; columnNames = columnNamesList.toArray(columnNames); rlock.lock(); try { if (!store.existIndexByColumns(databaseName, tableName, columnNames)) { return IndexResponse.newBuilder() .setState(errUndefinedIndex(tableName, columnNamesList)) .build(); } return IndexResponse.newBuilder() .setState(OK) .setIndexDesc(store.getIndexByColumns(databaseName, tableName, columnNames)) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return IndexResponse.newBuilder() .setState(returnError(t)) .build(); } finally { rlock.unlock(); } }
@Override public IndexResponse getIndexByColumnNames(RpcController controller, GetIndexByColumnNamesRequest request) throws ServiceException { TableIdentifierProto identifier = request.getTableIdentifier(); String databaseName = identifier.getDatabaseName(); String tableName = identifier.getTableName(); List<String> columnNamesList = request.getColumnNamesList(); String[] columnNames = new String[columnNamesList.size()]; columnNames = columnNamesList.toArray(columnNames); rlock.lock(); try { if (!store.existIndexByColumns(databaseName, tableName, columnNames)) { return IndexResponse.newBuilder() .setState(errUndefinedIndex(tableName, columnNamesList)) .build(); } return IndexResponse.newBuilder() .setState(OK) .setIndexDesc(store.getIndexByColumns(databaseName, tableName, columnNames)) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return IndexResponse.newBuilder() .setState(returnError(t)) .build(); } finally { rlock.unlock(); } }
@Override public ReturnState existIndexWithColumns(RpcController controller, GetIndexWithColumnsRequest request) throws ServiceException { try { context.getSessionManager().touch(request.getSessionId().getId()); Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String tableName, databaseName; if (IdentifierUtil.isFQTableName(request.getTableName())) { String [] splitted = IdentifierUtil.splitFQTableName(request.getTableName()); databaseName = splitted[0]; tableName = splitted[1]; } else { databaseName = session.getCurrentDatabase(); tableName = request.getTableName(); } String[] columnNames = new String[request.getColumnNamesCount()]; columnNames = request.getColumnNamesList().toArray(columnNames); if (catalog.existIndexByColumnNames(databaseName, tableName, columnNames)) { return OK; } else { return errUndefinedIndex(tableName, request.getColumnNamesList()); } } catch (Throwable t) { return returnError(t); } }
@Override public ReturnState existIndexWithColumns(RpcController controller, GetIndexWithColumnsRequest request) throws ServiceException { try { context.getSessionManager().touch(request.getSessionId().getId()); Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String tableName, databaseName; if (CatalogUtil.isFQTableName(request.getTableName())) { String [] splitted = CatalogUtil.splitFQTableName(request.getTableName()); databaseName = splitted[0]; tableName = splitted[1]; } else { databaseName = session.getCurrentDatabase(); tableName = request.getTableName(); } String[] columnNames = new String[request.getColumnNamesCount()]; columnNames = request.getColumnNamesList().toArray(columnNames); if (catalog.existIndexByColumnNames(databaseName, tableName, columnNames)) { return OK; } else { return errUndefinedIndex(tableName, request.getColumnNamesList()); } } catch (Throwable t) { return returnError(t); } }
@Override public ReturnState existIndexesForTable(RpcController controller, SessionedStringProto request) throws ServiceException { try { context.getSessionManager().touch(request.getSessionId().getId()); Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String tableName, databaseName; if (IdentifierUtil.isFQTableName(request.getValue())) { String [] splitted = IdentifierUtil.splitFQTableName(request.getValue()); databaseName = splitted[0]; tableName = splitted[1]; } else { databaseName = session.getCurrentDatabase(); tableName = request.getValue(); } if (catalog.existIndexesByTable(databaseName, tableName)) { return OK; } else { return errUndefinedIndex(tableName); } } catch (Throwable t) { return returnError(t); } }
.setState(errUndefinedIndex(tableName)) .build();
.setState(errUndefinedIndex(tableName)) .build();
@Override public ReturnState existIndexesForTable(RpcController controller, SessionedStringProto request) throws ServiceException { try { context.getSessionManager().touch(request.getSessionId().getId()); Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String tableName, databaseName; if (CatalogUtil.isFQTableName(request.getValue())) { String [] splitted = CatalogUtil.splitFQTableName(request.getValue()); databaseName = splitted[0]; tableName = splitted[1]; } else { databaseName = session.getCurrentDatabase(); tableName = request.getValue(); } if (catalog.existIndexesByTable(databaseName, tableName)) { return OK; } else { return errUndefinedIndex(tableName); } } catch (Throwable t) { return returnError(t); } }