@agorrod, here are my suggestions for your consideration.
First, I would move the WT_CBT_CONFLICT_CHECK into the WT_CURSOR structure (with a minor name change so it's not too long). It seems to me the WT_CURSOR_BTREE flags are more about things going on in the structure itself rather than the operation the cursor is performing, and it seems to me like we're creating a "conflict check" cursor operation here. I realize that's a fine line to draw, and I don't mind at all if you and michaelcahill decide I'm on the wrong side of that line.
Second, I think we have to check if cbt->ins is non-NULL before indirecting through it, if the row-search routine returns an exact match from somewhere other than an insert list, I would expect cbt->ins to be NULL.
Third, while looking at the lsm changes, I tossed in a couple of gratuitous white-space cleanups as a separate commit.
- related to
-
WT-1 placeholder WT-1
- Closed
-
WT-2 What does metadata look like?
- Closed
-
WT-3 What file formats are required?
- Closed
-
WT-4 Flexible cursor traversals
- Closed
-
WT-5 How does pget work: is it necessary?
- Closed
-
WT-6 Complex schema example
- Closed
-
WT-7 Do we need the handle->err/errx methods?
- Closed
-
WT-8 Do we need table load, bulk-load and/or dump methods?
- Closed
-
WT-1057 Support snapshots in LSM via update checks, rather than actual updates.
- Closed