public void createBaseSchema(Connection conn) { Statement stmt; if (!isLoaded()) { throw new TajoInternalError("Database schema files are not loaded."); } try { stmt = conn.createStatement(); } catch (SQLException e) { throw new TajoInternalError(e); } for (DatabaseObject object : catalogStore.getSchema().getObjects()) { try { String[] params; if (DatabaseObjectType.INDEX == object.getType()) { params = new String[2]; params[0] = object.getDependsOn(); params[1] = object.getName(); } else { params = new String[1]; params[0] = object.getName(); } if (checkExistence(conn, object.getType(), params)) { LOG.info("Skip to create " + object.getName() + " databse object. Already exists."); } else { stmt.executeUpdate(object.getSql()); LOG.info(object.getName() + " " + object.getType() + " is created."); } } catch (SQLException e) { throw new TajoInternalError(e); } } CatalogUtil.closeQuietly(stmt); }
public boolean isInitialized(Connection conn) { if (!isLoaded()) { throw new TajoInternalError("Database schema files are not loaded."); } boolean result = true; for (DatabaseObject object : catalogStore.getSchema().getObjects()) { try { if (DatabaseObjectType.INDEX == object.getType()) { result &= checkExistence(conn, object.getType(), object.getDependsOn(), object.getName()); } else { result &= checkExistence(conn, object.getType(), object.getName()); } } catch (SQLException e) { throw new TajoInternalError(e); } if (!result) { break; } } return result; }