public static Tuple getTableSpecWithTimeTravel()

in services/library/src/main/java/com/google/cloud/pso/bq_snapshot_manager/helpers/Utils.java [142:163]


    public static Tuple<TableSpec, Long> getTableSpecWithTimeTravel(TableSpec table, TimeTravelOffsetDays timeTravelOffsetDays, Timestamp referencePoint) {
        Long timeTravelMs;
        Long refPointMs = timestampToUnixTimeMillis(referencePoint);

        if (timeTravelOffsetDays.equals(TimeTravelOffsetDays.DAYS_0)) {
            // always use time travel for consistency and traceability
            timeTravelMs = refPointMs;
        }else{
            // use a buffer (milliseconds) to count for the operation time. 1 MIN = 60000 MILLISECONDS
            Long bufferMs = timeTravelOffsetDays.equals(TimeTravelOffsetDays.DAYS_7) ? 60 * 60000L : 0L;
            // milli seconds per day * number of days
            Long timeTravelOffsetMs = (Utils.MILLI_SECONDS_IN_DAY * Long.parseLong(timeTravelOffsetDays.getText()));
            timeTravelMs = (refPointMs - timeTravelOffsetMs) + bufferMs;
        }

        return Tuple.of(new TableSpec(
                        table.getProject(),
                        table.getDataset(),
                        String.format("%s@%s", table.getTable(), timeTravelMs)),
                timeTravelMs
        );
    }