For some reason version buffer is not turned up for update queries which
means that the version number for dictionary blocks is not changed.
This can lead to dirty cache reads resulting in _CpNoTf_ in the results.
This patch turns on version buffer for updates.
Squashed commit of the following:
commit faaee9141af019363cbe207e4cdbe01e01493d0f
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Wed Oct 3 13:03:02 2018 -0500
Commented a debugging printout.
commit e47e784c53705463696916f5c8dae1c014732f77
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Wed Oct 3 12:13:23 2018 -0500
Moved the SKIP_OAM_INIT check for cleanliness, added 'config.h' to
other places that need it.
commit 662604553538795f9a03e1167c7b44376349a56a
Author: Patrick LeBlanc <patrick.leblanc@mariadb.com>
Date: Tue Oct 2 16:33:06 2018 -0500
WIP. First cut of excising OAM and root access from the dev process.
This passes most tests; need to make sure that the tests that fail
have nothing to do with this change.
DMLProc is doing something that results in a sudo password prompt.
Will obliterate that next.
This adds options which are user enabled to debug the LRU cache inside
ColumnStore. Specifically cache flushing.
It adds the following:
* PrimProc flush information when SIGUSR2 mode is enabled
* cpimport dictionary flush information when -d2 is used
* WriteEngineServer DML flush information to STDERR
Fixes the following:
* Generate error if calculateRowId fails
* No data written when first extent is completely full on a write, all
data going to second extent.
* 0 byte valArray malloc
* valArray free() on no malloc
* Column touched but no data written if all data going to second extent
* Wrong colWidth used on second extent calculateRowId
* Out of bounds memory write (crash) when no data for first extent
* Extent not committed if all data going to second extent
HWM for DML and API was being calculated using the first column in a
table instead of the smallest column. This shifts the calculation to the
correct column.
It turns out -c wasn't actually connected to anything and now with have
BLOB/TEXT it is pretty useful. If -c is set to < 1MB then 1MB is used,
otherwise it will use the selected buffer size.