private Filter constructTableFilter(Table table) { List<String> values = Lists.newArrayList(); StringBuilder sb = new StringBuilder(); boolean hasNamespace = table.hasNamespace(); if (hasNamespace) { sb.append("table_namespace=?"); values.add(table.getNamespace()); } boolean hasName = table.hasName(); if (hasName) { if (hasNamespace) { sb.append(" AND "); } sb.append("table_name=?"); values.add(table.getName()); } if (table.hasType()) { if (hasName) { sb.append(" AND "); } sb.append("table_type=?"); values.add(table.getType().name()); } if (sb.length() > 0) { return new Filter(sb.toString(), values); } return Filter.MISSING; }
private Filter constructTableFilter(Table table) { List<String> values = Lists.newArrayList(); StringBuilder sb = new StringBuilder(); boolean hasNamespace = table.hasNamespace(); if (hasNamespace) { sb.append("table_namespace=?"); values.add(table.getNamespace()); } boolean hasName = table.hasName(); if (hasName) { if (hasNamespace) { sb.append(" AND "); } sb.append("table_name=?"); values.add(table.getName()); } if (table.hasType()) { if (hasName) { sb.append(" AND "); } sb.append("table_type=?"); values.add(table.getType().name()); } if (sb.length() > 0) { return new Filter(sb.toString(), values); } return Filter.MISSING; }
private void addTaskExecutionInfoToBatch(PreparedStatement upsertStatement, TaskExecutionInfo info) throws SQLException { Preconditions.checkArgument(info.hasTaskId()); Preconditions.checkArgument(info.hasJobId()); int index = 0; upsertStatement.setString(++index, info.getTaskId()); upsertStatement.setString(++index, info.getJobId()); upsertStatement.setTimestamp(++index, info.hasStartTime() ? new Timestamp(info.getStartTime()) : null, getCalendarUTCInstance()); upsertStatement.setTimestamp(++index, info.hasEndTime() ? new Timestamp(info.getEndTime()) : null, getCalendarUTCInstance()); upsertStatement.setLong(++index, info.hasDuration() ? info.getDuration() : -1); upsertStatement.setString(++index, info.hasState() ? info.getState().name() : null); upsertStatement.setString(++index, info.hasFailureException() ? info.getFailureException() : null); upsertStatement.setLong(++index, info.hasLowWatermark() ? info.getLowWatermark() : -1); upsertStatement.setLong(++index, info.hasHighWatermark() ? info.getHighWatermark() : -1); upsertStatement.setString(++index, info.hasTable() && info.getTable().hasNamespace() ? info.getTable().getNamespace() : null); upsertStatement.setString(++index, info.hasTable() && info.getTable().hasName() ? info.getTable().getName() : null); upsertStatement.setString(++index, info.hasTable() && info.getTable().hasType() ? info.getTable().getType().name() : null); upsertStatement.addBatch(); }
private static void insertTaskExecutionInfo(Connection connection, TaskExecutionInfo info) throws SQLException { Preconditions.checkArgument(info.hasTaskId()); Preconditions.checkArgument(info.hasJobId()); try (PreparedStatement insertStatement = connection.prepareStatement(TASK_EXECUTION_INSERT_STATEMENT_TEMPLATE)) { int index = 0; insertStatement.setString(++index, info.getTaskId()); insertStatement.setString(++index, info.getJobId()); insertStatement .setTimestamp(++index, info.hasStartTime() ? new Timestamp(info.getStartTime()) : DEFAULT_TIMESTAMP, getCalendarUTCInstance()); insertStatement.setTimestamp(++index, info.hasEndTime() ? new Timestamp(info.getEndTime()) : DEFAULT_TIMESTAMP, getCalendarUTCInstance()); insertStatement.setLong(++index, info.hasDuration() ? info.getDuration() : -1); insertStatement.setString(++index, info.hasState() ? info.getState().name() : null); insertStatement.setString(++index, info.hasFailureException() ? info.getFailureException() : null); insertStatement.setLong(++index, info.hasLowWatermark() ? info.getLowWatermark() : -1); insertStatement.setLong(++index, info.hasHighWatermark() ? info.getHighWatermark() : -1); insertStatement.setString(++index, info.hasTable() && info.getTable().hasNamespace() ? info.getTable().getNamespace() : null); insertStatement .setString(++index, info.hasTable() && info.getTable().hasName() ? info.getTable().getName() : null); insertStatement .setString(++index, info.hasTable() && info.getTable().hasType() ? info.getTable().getType().name() : null); insertStatement.executeUpdate(); } }
private static void updateTaskExecutionInfo(Connection connection, TaskExecutionInfo info) throws SQLException { Preconditions.checkArgument(info.hasTaskId()); try (PreparedStatement updateStatement = connection.prepareStatement(TASK_EXECUTION_UPDATE_STATEMENT_TEMPLATE)) { int index = 0; updateStatement .setTimestamp(++index, info.hasStartTime() ? new Timestamp(info.getStartTime()) : DEFAULT_TIMESTAMP, getCalendarUTCInstance()); updateStatement.setTimestamp(++index, info.hasEndTime() ? new Timestamp(info.getEndTime()) : DEFAULT_TIMESTAMP, getCalendarUTCInstance()); updateStatement.setLong(++index, info.hasDuration() ? info.getDuration() : -1); updateStatement.setString(++index, info.hasState() ? info.getState().name() : null); updateStatement.setString(++index, info.hasFailureException() ? info.getFailureException() : null); updateStatement.setLong(++index, info.hasLowWatermark() ? info.getLowWatermark() : -1); updateStatement.setLong(++index, info.hasHighWatermark() ? info.getHighWatermark() : -1); updateStatement.setString(++index, info.hasTable() && info.getTable().hasNamespace() ? info.getTable().getNamespace() : null); updateStatement .setString(++index, info.hasTable() && info.getTable().hasName() ? info.getTable().getName() : null); updateStatement .setString(++index, info.hasTable() && info.getTable().hasType() ? info.getTable().getType().name() : null); updateStatement.setString(++index, info.getTaskId()); updateStatement.executeUpdate(); } }