private Table getTable() throws HiveException {
    try {
      return context.getDb().getTable(desc.getTableName());
    } catch (InvalidTableException e) {
      return null;
    }
  }
DROP TABLE FOR REPLICATION behaves differently from DROP TABLE IF EXISTS - it more closely
matches a DROP TABLE IF OLDER THAN(x) semantic.

Ideally, commands executed under the scope of replication need to be idempotent and resilient
to repeats. What can happen, sometimes, is that a drone processing a replication task can
have been abandoned for not returning in time, but still execute its task after a while,
which should not result in it mucking up data that has been impressed later on. So, for eg.,
if we create partition P1, followed by dropping it, followed by creating it yet again,
the replication of that drop should not drop the newer partition if it runs after the destination
object is already in the newer state.

Thus, we check the replicationSpec.allowEventReplacementInto to determine whether or not we can
drop the object in question(will return false if object is newer than the event, true if not)

In addition, since DROP TABLE FOR REPLICATION can result in a table not being dropped, while DROP
TABLE will always drop the table, and the included partitions, DROP TABLE FOR REPLICATION must
do one more thing - if it does not drop the table because the table is in a newer state, it must
drop the partitions inside it that are older than this event. To wit, DROP TABLE FOR REPL
acts like a recursive DROP TABLE IF OLDER.
ql/src/java/org/apache/hadoop/hive/ql/ddl/table/drop/DropTableOperation.java