Focus in this phase: fixed problems that were pointed out in the last PR (big thank to Andy & the alter table team!); added more tests to ensure the correctness of our solutions; came up with a method for the 100% and 125% goal (still implementing as you will see more commits to the PR very soon).
Dev notes:
During one of the tests, Xingyu discovered that in catalog level, creating index after inserting some entries into the table will result in the index not being populated. At first I thought Peloton doesn’t have logic for populating the index and tried to write one myself in the catalog level, but I discovered later that the populate table logic was written in separate parsers and executors. We decided to follow the original code structure and try to fix the PopulateIndexExecutor together with CreateExecutor, but that requires careful attention for other developers who tries to call create index related functions in levels lower than planner, since that will result in the index not being properly populated.
Two of the major issues originated in the previous PR was resolved, we used shared_ptr for locks to avoid freeing locks still held by other transactions when we drop tables, and we used variable life cycle to automatically unlock locks once out of scope.
Some very minor issues brought up in the last PR may not be addressed(mainly style differences based on different personal preferences).
PR for 2nd code review, Group Add/Drop Index
Member: Xingyu Jin, Rong Huang, Ziheng Liao
Focus in this phase: fixed problems that were pointed out in the last PR (big thank to Andy & the alter table team!); added more tests to ensure the correctness of our solutions; came up with a method for the 100% and 125% goal (still implementing as you will see more commits to the PR very soon).
Dev notes: