@Override public Response run(JerseyResourceDelegateContext context) { JerseyResourceDelegateContextKey<MasterContext> masterContextKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.MasterContextKey, MasterContext.class); MasterContext masterContext = context.get(masterContextKey); JerseyResourceDelegateContextKey<String> databaseNameKey = JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); String databaseName = context.get(databaseNameKey); CatalogService catalogService = masterContext.getCatalog(); if (!catalogService.existDatabase(databaseName)) { return Response.status(Status.NOT_FOUND).build(); } Collection<String> tableNames = catalogService.getAllTableNames(databaseName); Map<String, Collection<String>> tableNamesMap = new HashMap<String, Collection<String>>(); tableNamesMap.put(tablesKeyName, tableNames); return Response.ok(tableNamesMap).build(); }
@Override public Response run(JerseyResourceDelegateContext context) { JerseyResourceDelegateContextKey<MasterContext> masterContextKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.MasterContextKey, MasterContext.class); MasterContext masterContext = context.get(masterContextKey); JerseyResourceDelegateContextKey<String> databaseNameKey = JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); String databaseName = context.get(databaseNameKey); CatalogService catalogService = masterContext.getCatalog(); if (!catalogService.existDatabase(databaseName)) { return Response.status(Status.NOT_FOUND).build(); } Collection<String> tableNames = catalogService.getAllTableNames(databaseName); Map<String, Collection<String>> tableNamesMap = new HashMap<>(); tableNamesMap.put(tablesKeyName, tableNames); return Response.ok(tableNamesMap).build(); }
@AfterClass public static void tearDownClass() throws Exception { for (String tableName : createdTableGlobalSet) { client.updateQuery("DROP TABLE IF EXISTS " + IdentifierUtil.denormalizeIdentifier(tableName)); } createdTableGlobalSet.clear(); // if the current database is "default", shouldn't drop it. if (!currentDatabase.equals(TajoConstants.DEFAULT_DATABASE_NAME)) { for (String tableName : catalog.getAllTableNames(currentDatabase)) { try { client.updateQuery("DROP TABLE IF EXISTS " + tableName); } catch (InsufficientPrivilegeException i) { LOG.warn("relation '" + tableName + "' is read only."); } } client.selectDatabase(TajoConstants.DEFAULT_DATABASE_NAME); try { client.dropDatabase(currentDatabase); } catch (InsufficientPrivilegeException e) { LOG.warn("database '" + currentDatabase + "' is read only."); } } client.close(); }
@Override public StringListResponse getTableList(RpcController controller, SessionedStringProto request) throws ServiceException { try { Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String databaseName; if (request.hasValue()) { databaseName = request.getValue(); } else { databaseName = session.getCurrentDatabase(); } Collection<String> tableNames = catalog.getAllTableNames(databaseName); return StringListResponse.newBuilder() .setState(OK) .addAllValues(tableNames) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return StringListResponse.newBuilder() .setState(returnError(t)) .build(); } }
@Override public StringListResponse getTableList(RpcController controller, SessionedStringProto request) throws ServiceException { try { Session session = context.getSessionManager().getSession(request.getSessionId().getId()); String databaseName; if (request.hasValue()) { databaseName = request.getValue(); } else { databaseName = session.getCurrentDatabase(); } Collection<String> tableNames = catalog.getAllTableNames(databaseName); return StringListResponse.newBuilder() .setState(OK) .addAllValues(tableNames) .build(); } catch (Throwable t) { printStackTraceIfError(LOG, t); return StringListResponse.newBuilder() .setState(returnError(t)) .build(); } }