Hi,
While testing UPDATE FOR PORTION OF, I started wondering whether REPACK supports temporal tables. In theory, it should,
becausetemporal WITHOUT OVERLAPS indexes can be used as replica identity indexes. So I created a test script,
repack_temporal.spec,which is included in the attached patch, and it failed.
I found that REPACK hard-codes BTEqualStrategyNumber when calling get_opfamily_member(). That seems wrong, because
build_replindex_scan_key()uses IndexAmTranslateCompareType() to get the equality strategy for COMPARE_EQ.
After fixing the hard-coded BTEqualStrategyNumber, the temporal test passed. Then I added another test for multirange,
repack_temporal_multirange.spec,which also failed. The reason is that find_target_tuple() uses the identity index to
findthe first tuple and returns it directly, but a lossy index scan may return false positives and require recheck.
Please see the attached patch for the fix details and test scripts.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/