Summary:
When a table under xcluster replication is dropped, the table along with all its tablets is marked as `HIDDEN`. These hidden tablets are retained for replication even though from a user's POV the table has been dropped. Since the table is kept hidden, its entries are not deleted from the stream metadata and the replica identity map.
When both CDC and Xcluster are run simultaneously on the same DB, and a table which is part of both replication mechanisms is dropped, walsender restart fails with `dropped_table not running: OBJECT_NOT_FOUND` error. This is because, during initialisation, walsender calls GetCDCStream, where we try to find the pg_table_oid for every table present in the replica identity map. This is done by calling `GetYBTableInfoById()` which in turn calls the `GetTableSchema()` master rpc. However such a call fails for the dropped table as `GetTableSchema` does not return the information about hidden tables by default.
This same issue is seen when CDC is run simultaneously with DB clone.
To fix this, during GetCDCStream we pass the `include_hidden` option as true to fetch the table_info for a table even if it is hidden.
Jira: DB-16332
Test Plan: ./yb_build.sh --cxx-test integration-tests_cdcsdk_ysql-test --gtest_filter CDCSDKYsqlTest.TestDropTableWithXcluster
Reviewers: skumar, asrinivasan, vkushwaha
Reviewed By: asrinivasan
Subscribers: ycdcxcluster
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D44071