Re: Index AM API cleanup
Alexandra Wang <alexandra.wang.oss@gmail.com>
Attachments
- 0001-Fixup-make-check-for-xash-and-xtree.patch (application/octet-stream) patch 0001
- 0002-Fixup-treeb-compilation.patch (application/octet-stream) patch 0002
Hi Mark, On Wed, Aug 21, 2024 at 2:25 PM Mark Dilger <mark.dilger@enterprisedb.com> wrote: > > > For validation purposes, the first patch creates shallow copies of hash and btree named "xash" and "xtree" and introduces some infrastructure to run the src/test/regress and src/test/isolation tests against them without needing to duplicate those tests. Numerous failures like "unexpected non-btree AM" can be observed in the test results. > > Also for validation purposes, the second patch creates a deep copy of btree named "treeb" which uses modified copies of the btree implementation rather than using the btree implementation by reference. This allows for more experimentation, but might be more code than the community wants. Since this is broken into its own patch, it can be excluded from what eventually gets committed. Even if we knew a priori that this "treeb" test would surely never be committed, it still serves to help anybody reviewing the patch series to experiment with those other changes without having to construct such a test index AM individually. Thank you for providing an infrastructure that allows modules to test by reference and re-use existing regression and isolation tests. I believe this approach ensures great coverage for the API cleanup. I was very excited to compare the “make && make check” results in the test modules - ‘xash,’ ‘xtree,’ and ‘treeb’ - before and after the series of AM API fixes. Here are my results: Before the fixes: - xash: # 20 of 223 tests failed. - xtree: # 95 of 223 tests failed. - treeb: # 47 of 223 tests failed. After the fixes: - xash: # 21 of 223 tests failed. - xtree: # 58 of 223 tests failed. - treeb: # 58 of 223 tests failed. I expected the series of fixes to eliminate all failed tests, but that wasn’t the case. It's nice to see the failures for ‘xtree’ have significantly decreased as the ‘unexpected non-btree AM’ errors have been resolved. I noticed some of the remaining test failures are due to trivial index name changes, like hash -> xash and btree -> treeb. If we keep xtree and xash for testing, is there a way to ensure all tests pass instead of excluding them from "make check-world"? On that note, I ran ‘make check-world’ on the final patch, and everything looks good. I had to make some changes to the first two patches in order to run "make check" and compile the treeb code on my machine. I’ve attached my changes. "make installcheck" for treeb is causing issues on my end. I can investigate further if it’s not a problem for others. Best, Alex
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Relax ordering-related hardcoded btree requirements in planning
- a8025f544854 18.0 landed
-
Support non-btree indexes in get_actual_variable_range()
- 9ef1851685b7 18.0 landed
-
Convert PathKey to use CompareType
- 8123e91f5aeb 18.0 landed
-
Generalize index support in network support function
- be1cc9aaf5b7 18.0 landed
-
Update a code comment
- 190dc27998d5 18.0 landed
-
Allow non-btree unique indexes for matviews
- 9d6db8bec194 18.0 landed
-
Allow non-btree unique indexes for partition keys
- f278e1fe300a 18.0 landed
-
Add some opfamily support functions to lsyscache.c
- 7317e641268f 18.0 landed
-
Simplify and generalize PrepareSortSupportFromIndexRel()
- a359d3701991 18.0 landed
-
Generalize hash and ordering support in amapi
- ce62f2f2a0a4 18.0 landed
-
Drop opcintype from index AM strategy translation API
- 7d6d2c4bbd73 18.0 landed
-
Allow non-btree speculative insertion indexes
- b92c03342dcd 18.0 landed
-
Support non-btree indexes for foreign keys
- bfe21b760e03 18.0 landed
-
Integrate GistTranslateCompareType() into IndexAmTranslateCompareType()
- 622f678c1020 18.0 landed
-
Convert strategies to and from compare types
- c09e5a6a0165 18.0 landed
-
Move CompareType to separate header file
- 119fc30dd5bd 18.0 landed
-
Add get_opfamily_name() function
- 43493cceda2f 18.0 landed
-
Rename GistTranslateStratnum() to GistTranslateCompareType()
- a5709b5bb293 18.0 landed
-
Change gist stratnum function to use CompareType
- 630f9a43cece 18.0 landed
-
Rename RowCompareType to CompareType
- 6339f6468e82 18.0 landed
-
Improve slightly misleading internal error message
- 63e10988f870 18.0 landed
-
Track scan reversals in MergeJoin
- c594f1ad2ba7 18.0 landed
-
Track sort direction in SortGroupClause
- 0d2aa4d4937b 18.0 landed
-
Add stratnum GiST support function
- 7406ab623fee 18.0 cited
-
Add amgettreeheight index AM API routine
- 56fead44dcc7 18.0 landed