The fixed-length column-store reconciliation process overwrites original
on-page values with any globally visible updated values, in which case
older readers in the system can potentially read the wrong value.
Every btree page found in a snapshot should be located in the
file before the recorded maximum file size, so, each snapshot's
pages must be less than the snapshot's recorded file size.
The sum of the allocation lists in every snapshot minus the sum
of the discard lists in every snapshot should map one-to-one to
the tree pages in that snapshot.
The sum of all the pages allocated by every snapshot plus the
pages on the avail list (plus blocks used to hold extent lists),
should map one-to-one to the entire file.
Salvage has to create valid alloc/discard/avail lists, so it starts off
with the entire file on the alloc list, and then "frees" any pages it
doesn't want.
Don't read the avail list when we're deleting snapshots, it doesn't
ever change and there's no reason to read or re-write it.
Fix a bug where the live system's alloc/discard lists weren't merged
during a snapshot, if no snapshot was being deleted.
We no longer reset the snapshot's file size when writing a snapshot,
we want to check the snapshot's blocks against a reasonable maximum
file size during verification. This won't work if there's ever an
API to roll-forward from an intermediate snapshot.
Pass the snapshot-array into the verify-start routine: we have to read
the avail list from the last snapshot, those are blocks that must not
be allocated in any snapshot.
Add a check: the earliest snapshot in the system should never have
blocks on its discard list.
Replace the __wt_block_free_ext() function with the more general-purpose
__wt_block_insert_ext() function, which inserts a range onto an extent
list.
Change the copyright check script to always use the current year.
Change the example code copyright notices to document them as freeware,
anybody using WiredTiger example code is free to use it in any way they
choose, including commercially, WiredTiger claims no rights in such a
copy.
Minor re-ordering of the standard copyright notice so the preamble is
always the copyright notice itself, not the mention of the LICENSE file.
column-store append/update lists from WT_PAGE into WT_PAGE_MODIFY in
order to shrink WT_PAGE.
--HG--
extra : rebase_source : 6d7df0f5b50351cabfec464eccfa0b49b8b0f35a
enough we should notice them. I looked at slice-and-dice for the rest of
the field sizes, but it's going to require tests (if not a loop), and I bet
the compiler is going to do a better job than I will.
uint32_t max-bits instead of "int", and rename include/bitstring.h
to include/bitstring.i.
Change the names of the fixed-length column-store get/set value
functions to match the other bitstring functions, and move them
from include/btree.i to include/bitstring.i.
--HG--
rename : src/include/bitstring.h => src/include/bitstring.i