I am doubtful about option A.
Consider a scenario, the user logged in at time A and the row was retrieved by the listener. The same row can be retrieved again if the user logs in later sometime (the logged in column gets updated to the latest time for the same row and possibly greater than watermarking column value), but the question says "each row should be retrieved at most one time".
Example:
UserId LoginTime
1 10:00 AM
At this point of time, watermarking column value = 10:00 AM
Later some time same user again logs in then
UserId LoginTime
1 12:00 AM
This time as the column value is greater than the watermark column value, it will be again retrieved which is against question statement.
Is this a valid scenario, can someone please explain?
Thanks