Summary:
Leverage Postgres' TidScan node to fetch rows from YB tables by their ybctids.
TidScan supports OR'ed equality conditions and IN operators where ybctid column is compared to a constant expression.
Semantics is similar to conditions on Postgres tables' ctid columns: invalid ybctids are ignored, if there multiple ybctids
they are sorted and deduplicated. As in Postgres, it is beneficial in Yugabyte to fetch rows by sorted ybctids.
Additionally, when scanning Yugabyte tables, TidScan can pushdown filters and aggregates, just like the other YB scans.
In Postgres TidScan is used to implement WHERE CURRENT OF clause, this clause is not supported yet (see GHI #737).
Jira: DB-17645
Test Plan: ./yb_build.sh --java-test 'org.yb.pgsql.TestPgRegressYbctid'
Reviewers: aagrawal, jason, mtakahara
Reviewed By: mtakahara
Subscribers: smishra, yql
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D45488