This change makes all ScriptDocValues purely a wrapper around a supplier. (Similar to what FieldValues was.) However, there are some important differences: * This is meant to be transitory. As more DocValuesFields are completed, more of the simple suppliers (ones that aren't DocValuesFields) can be removed. * ScriptDocValues is the wrapper rather than the supplier. DocValuesFields are eventually the target suppliers which makes it really easy to remove the simple suppliers once they are no longer necessary. * ScriptDocValues can be easily deprecated and removed without having to move their code to DocValuesFields. Once ScriptDocValues is removed we can remove the supplier code from DocValuesFields. * DelegateDocValuesField ensures that any ScriptDocValues field are not supplied by another DocValuesField with an assert statement. This helps us to identify bugs during testing. * ScriptDocValues no longer have setNextDocId. This helps us identify bugs during compilation. * Conversions will not share/wrap suppliers since the suppliers are transitory. |
||
---|---|---|
.. | ||
src | ||
build.gradle |