Details
-
Bug
-
Resolution: Unresolved
-
Trivial
-
None
-
0.10.0.Beta4, 0.10.0.CR1, 0.10.0.CR2, 0.10.0.Final, 1.0.0.Beta1, 1.0.0.Beta2, 1.0.0.Beta3, 1.0.0.CR1, 1.0.0.Final
-
None
Description
The core connector that handles relational sources snapshots (io/debezium/relational/RelationalSnapshotChangeEventSource.java) is responsible for marking the last snapshot record.
It is done by checking a flag to determine if the table being snapshotted is the last table. If yes, then the last record published for that table is marked as the last snapshot record.
But before all this is done there is an early return if custom snapshot query was enabled but was not provided for the current table.
This means that if the above conditions are combined, ie. the last table to be snapshotted has a missing snapshot query, then NO record will be marked as last snapshot record.
Since this condition is so difficult to invoke (custom snapshot mode + select statement override + somehow missing snapshot query for last table) I don't think this is a priority. Also, I'm not sure what the impact is of SnapshotRecord.LAST not being set. I cannot see it being in any place except isSnapshot() method but that will still work since it returns true for both SnapshotRecord.TRUE and SnapshotRecord.LAST.