NewExtendedColumnFactory returns an extendedColumnFactory instance.
Datum wraps a tree.Datum. This is the struct that datumVec.Get() returns.
BinFn evaluates the provided binary function between the receiver and other. other can either be nil, tree.Datum, or *Datum.
Cast returns the result of casting d to the type toType. dVec is the datumVec that stores d and is used to supply the eval context.
CompareDatum returns the comparison between d and other. The other is assumed to be tree.Datum. dVec is the datumVec that stores either d or other (it doesn't matter which one because it is used only to supply the eval context). Note that the method is named differently from "Compare" so that we do not overload tree.Datum.Compare method.
Hash returns the hash of the datum as a byte slice.