Automated collection of necessary statistics When the optimizer requests a histogram for a given column, and that histogram does not exist, it may (depending on the cqds in effect) register a request for the histogram to be created at a later time, or utilize a small sample to generate a rudimentary histogram on the fly. In either case, when a subsequent Update Statistics statements specifies the ON NECESSARY COLUMNS clause, any column of the target table that has been the subject of one of these actions will have a bona fide histogram created.
enable embedded compiler support for fetch histogram queries The fetch histogram logic executes queries against the user metadata tables HISTOGAMS and HISTORAGM_INTERVALS that require the spawning of external arkcmp processes. The work in this check-in enables embedded compiler for these queries so the spawning of external arkcmps is avoided. The change introduces a "switch context" to a meta data context when compiling the user metadata queries and "switch back" to the user context prior to fetching the rows from the cursors on the user metadata tables. The main change is implemented in the "readHistogram" function in hs_read.cpp file.
A new method (switchBackContext) was added to class CmpContext class to enable switching back to a previous context. The purpose of the new method is to ensure that thread globals are appropriately reset when reverting back to a previous context.
The checkin also turns OFF CQD HBASE_SERIALIZATION in file regress/tools/sbdefs as the hbase serialization feature is not enabled yet. The feature (CQD) was enabled during regression testing prior to this checkin.