Re: WIP: Covering + unique indexes.
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
30.03.2017 19:49, Robert Haas: > On Thu, Mar 30, 2017 at 11:26 AM, Teodor Sigaev <teodor@sigaev.ru> wrote: >> I had a look on patch and played with it, seems, it looks fine. I splitted >> it to two patches: core changes (+bloom index fix) and btree itself. All >> docs are left in first patch - I'm too lazy to rewrite documentation which >> is changed in second patch. >> Any objection from reviewers to push both patches? > Has this really had enough review and testing? The last time it was > pushed, it didn't go too well. And laziness is not a very good excuse > for not dividing up patches properly. Well, I don't know how can we estimate the quality of the review or testing. The patch was reviewed by many people. Here are those who marked themselves as reviewers on this and previous committfests: Stephen Frost (sfrost), Andrew Dunstan (adunstan), Aleksander Alekseev (a.alekseev), Amit Kapila (amitkapila), Andrey Borodin (x4m), Peter Geoghegan (pgeoghegan), David Rowley (davidrowley). For me it looks serious enough. These people, as well as many others, shared their thoughts on this topic and pointed out various mistakes. I fixed all the issues as soon as I could. And I'm not going to disappear when it will be committed. Personally, I always thought that we have Alpha and Beta releases for integration testing. Speaking of the feature itself, it is included into our fork of PostgreSQL 9.6 since it was released. And as far as I know, there were no complaints from users. It makes me believe that there are no critical bugs there. While there may be conflicts with some other features of v10.0. > It seems highly surprising to me that CheckIndexCompatible() only gets > a one line change in this patch. That seems unlikely to be correct. What makes you think so? CheckIndexCompatible() only cares about possible opclasses' changes. For covering indexes opclasses are only applicable to indnkeyatts. And that is exactly what was changed in this patch. Do you think it needs some other changes? > Has anybody done some testing of this patch with the WAL consistency > checker? Like, create some tables with indexes that have INCLUDE > columns, set up a standby, enable consistency checking, pound the > master, and see if the standby bails? Good point. I missed this feature, I wish someone mentioned this issue a bit earlier. And as Alexander's test shows there is some problem with my patch, indeed. I'll fix it and send updated patch. > Has anybody tested this patch with amcheck? Does it break amcheck? Yes, it breaks amcheck. Amcheck should be patched in order to work with covering indexes. We've discussed it with Peter before and I even wrote small patch. I'll attach it in the following message. > A few minor comments: > > - foreach(lc, constraint->keys) > + else foreach(lc, constraint->keys) > > That doesn't look like a reasonable way of formatting the code. > > + /* Here is some code duplication. But we do need it. */ > > That is not a very informative comment. > > + * NOTE It is not crutial for reliability in present, > > Spelling, punctuation. > Will be fixed as well. -- Anastasia Lubennikova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Adjust INCLUDE index truncation comments and code.
- 075aade4361b 11.0 landed
-
Add commentary explaining why MaxIndexTuplesPerPage calculation is safe.
- 2a67d6440db4 11.0 cited
-
Indexes with INCLUDE columns and their support in B-tree
- 8224de4f42cc 11.0 landed
-
Add amcheck verification of heap relations belonging to btree indexes.
- 7f563c09f890 11.0 cited
-
Doc: move info for btree opclass implementors into main documentation.
- 3785f7eee3d9 11.0 cited
-
Doc: mention that you can't PREPARE TRANSACTION after NOTIFY.
- e4fbf22831c2 11.0 cited
-
Remove dedicated B-tree root-split record types.
- 0c504a80cf2e 11.0 cited
-
Restructure index access method API to hide most of it at the C level.
- 65c5fcd353a8 9.6.0 cited
-
Split _bt_insertonpg to two functions.
- bc292937ae6a 8.3.0 cited
-
Major overhaul of btree index code. Eliminate special BTP_CHAIN logic for
- 9e85183bfc31 7.1.1 cited